时间:2022-07-05 13:51:23 | 栏目:Mysql | 点击:次
数据操纵语言全称是Data Manipulation Language,简称是DML。DML主要有四个常用功能,如下表所示,其中DML中的查询功能是作为一名数据分析师常用的操作。查询知识会穿插在之后的所有文章中讲述,因为这个问题不是一下子可以讲的完的。今天的文章主要是讲述增、删、改这几个技能的用法。
增 | 删 | 改 | 查 |
---|---|---|---|
insert | delete | update | select |
下面的操作都是基于这个student表进行的。
# 创建数据库 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;
情况一:给全部字段添加数据; -- 有以下两种添加方式:当给所有字段插入数据的时候,可以不写字段名。 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 ("刘备","男"),("貂蝉","女"),("诸葛亮","男");
结果如下:
"创建一个student1表,表的结构和数据均来自于student表。" mysql> create table student1 select * from student;
操作结果如下:
"创建一个student2表,只复制student表的结构,不要里面的数据。" mysql> create table student2 select * from student where 0;
操作结果如下:
"在2基础上,向student2表中插入数据,数据来自于student表" mysql> insert into student2 select * from student;
操作结果如下:
update和delete语句要配合where筛选,进行使用,否则删除的就是整张表的记录。
"语法格式:多个列之间用逗号隔开" 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;
操作结果如下:
update和delete语句要配合where筛选,进行使用,否则删除的就是整张表的记录。
"语法格式:" delete from 表名 where 条件; "演示示例如下" delete from student where sname="张三";
操作结果如下:
用如下数据讲述这两个的区别:
① 都是不修改结构,只清除数据。
② delete删除不释放资源,truncate释放表占用的空间(会重置主键自增)
③ delete是逐行删除,删除记录是作为事务记录在日志文件中,可进行回滚操作。truncate一次性删除表中所有数据,删除记录不会记录在日志文件中,无法恢复,删除效率高于delete。