数据操纵语言(DML)
数据操纵语(Data Manipulation Language),简称DML。
DML主要有四个常用功能。
增 |
删 |
改 |
查 |
insert |
delete |
update |
select |
# 创建数据库
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;
下面的操作都是基于这个student表进行的。
增添数据(insert)
全列插入(全字段插入)
-- insert into 表名 values(...);
insert into student values(0,'张三','男');
注意,表结构中有id
字段,虽然设置了主键、自增,MySQL可以自动维护,但是,在全列插入的时候,这个位置还必须写(通常写 0 ,插入后以实际为准),起到站位作用
结果如下:

部分列插入(插入部分列字段)
-- insert into 表名(列1,列2,...) values(值1,值2,...);
insert into student(sname, sex) values('李四', '男');
insert into student(sname) values('王五');
结果如下:

同时插入多条数据
-- insert into 表名(列1,...) values(值1,...),(值2,...),(值3,...),...;
insert into student(sname,sex) values
("刘备","男"),("貂蝉","女"),("诸葛亮","男");
结果如下:

复制已有表,生成新表
复制已有表的结构和数据。
-- create table 新表名 select * from 已有表名;
-- 创建一个student1表,表的结构和数据均来自于student表。
create table student1 select * from student;
结果如下:

只复制已有表的结构(得到的是一个空结构表)。
-- create table 新表名 selsct * from 已有表名 where 0;
-- 创建一个student2表,只复制student表的结构,不要里面的数据。
create table student2 select * from student where 0;
结果如下:

简单的查询语句(select)
全字段查询
-- srcect * from 表名;
-- * 表示全部
select * from student;
结果如下:

指定字段查询
-- select 列名 from 表名;
select sname from student;
select sname, sex from student;
结果如下:

带条件的查询
-- select 列名 from 表名 where 查询条件;
-- 查询sex为女的人
select sname from student where sex='女';
结果如下:

修改数据update
update语句要配合where筛选,进行使用,否则修改的就是整张表的记录。
-- update 表名 set 列1=值1,列2=值2,列3=值3,…… where 条件;
-- 把sid为3的王五的姓名,改为赵六。
update student set sname="王八" where sid = 3;
-- 把sid为6的诸葛亮的名字改为孔明,性别改为猛男。
update student set sname="孔明",sex="猛男" where sid=6;
结果如下:

删除数据delete
- update和delete语句要配合where筛选,进行使用,否则删除的就是整张表的记录。
-- delete from 表名 where 条件;
delete from student where sname="张三";
结果如下:

truncate和delete的区别
有如下表



truncate和delete的区别: