前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >带你学MySQL系列 | 学好MySQL,最重要的就是学好数据操纵语言DML

带你学MySQL系列 | 学好MySQL,最重要的就是学好数据操纵语言DML

作者头像
数据分析与统计学之美
发布2021-11-25 10:59:26
3490
发布2021-11-25 10:59:26
举报
文章被收录于专栏:Python+数据分析+可视化

1.数据操纵语言(DML)

数据操纵语言全称是Data Manipulation Language,简称是DML。DML主要有四个常用功能,如下表所示,其中DML中的查询功能是作为一名数据分析师常用的操作。查询知识会穿插在之后的所有文章中讲述,因为这个问题不是一下子可以讲的完的。今天的文章主要是讲述这几个技能的用法。

insert

delete

update

select

下面的操作都是基于这个student表进行的。

代码语言:javascript
复制
# 创建数据库
create database if not exists stu;
# 使用数据库
use stu;
# 创建一个表
create table student(
    sid int primary key auto_increment,
    sname varchar(20) not null,
    sex varchar(10)
)charset=utf8;

2.增添数据(insert)

代码语言:javascript
复制
情况一:给全部字段添加数据;
-- 有以下两种添加方式:当给所有字段插入数据的时候,可以不写字段名。
insert into student(sid,sname,sex) values (1,"张三","男");
insert into student values (2,"李莉","女");

情况二:给部分字段添加数据;
insert into student(sname) values ("王五");
insert into student(sname,sex) values ("赵六","男");

情况三:一次性插入多条数据;
insert into student(sname,sex) values 
("刘备","男"),("貂蝉","女"),("诸葛亮","男");

结果如下:

3.复制已有表,生成新表

1)复制已有表的结构和数据。
代码语言:javascript
复制
"创建一个student1表,表的结构和数据均来自于student表。"
mysql> create table student1 select * from student;

操作结果如下:

2)只复制已有表的结构(得到的是一个空结构表)。
代码语言:javascript
复制
"创建一个student2表,只复制student表的结构,不要里面的数据。"
mysql> create table student2 select * from student where 0;

操作结果如下:

3)在2的基础上,向空结构表中插入数据。
代码语言:javascript
复制
"在2基础上,向student2表中插入数据,数据来自于student表"
mysql> insert into student2 select * from student;

操作结果如下:

4.修改数据update

  • update和delete语句要配合where筛选,进行使用,否则删除的就是整张表的记录。
代码语言:javascript
复制
"语法格式:多个列之间用逗号隔开"
update 表名 set 列1=值1 [列2=值2,列3=值3…… ] where条件;

"演示示例如下"
-- 把sid为3的王五的姓名,改为王八。
update student set sname="王八" where sid = 3;
-- 把sid为7的诸葛亮的名字改为孔明,性别改为猛男。
update student set sname="孔明",sex="猛男" where sid=7;

操作结果如下:

5.删除数据delete:物理删除(一旦删除就彻底没有了)。

  • update和delete语句要配合where筛选,进行使用,否则删除的就是整张表的记录。
代码语言:javascript
复制
"语法格式:"
delete from 表名 where 条件;

"演示示例如下"
delete from student where sname="张三";

操作结果如下:

6.truncate和delete的区别

用如下数据讲述这两个的区别:

1)delete
2)truncate
3)truncate和delete的区别

① 都是不修改结构,只清除数据。 ② delete删除不释放资源,truncate释放表占用的空间(会重置主键自增) ③ delete是逐行删除,删除记录是作为事务记录在日志文件中,可进行回滚操作。truncate一次性删除表中所有数据,删除记录不会记录在日志文件中,无法恢复,删除效率高于delete。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/06/17 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.数据操纵语言(DML)
  • 2.增添数据(insert)
  • 3.复制已有表,生成新表
    • 1)复制已有表的结构和数据。
      • 2)只复制已有表的结构(得到的是一个空结构表)。
        • 3)在2的基础上,向空结构表中插入数据。
        • 4.修改数据update
        • 5.删除数据delete:物理删除(一旦删除就彻底没有了)。
        • 6.truncate和delete的区别
          • 1)delete
            • 2)truncate
              • 3)truncate和delete的区别
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档