一、DML(Data Manipulate Language):数据操作语言
(一)主要操作: insert 、update、delete
1.插入
(1)方式一
语法:
insert into 表名(字段名,...) values(值,...);
特点:
①要求值的类型和字段的类型要一致或兼容;
②字段的个数和顺序不一定与原始表中的字段个数和顺序一致但必须保证值和字段一一对应;
③假如表中有可以为null的字段,注意可以通过以下两种方式插入null值:
- 字段和值都省略
- 字段写上,值使用null
④字段和值的个数必须一致;
⑤字段名可以省略,默认所有列;
(2)方式二
语法:
insert into 表名 set 字段1=值1,字段2=值2,...;
(3)两种方式 的区别:
- 方式一支持一次插入多行,语法如下:
insert into 表名【(字段名,..)】 values(值,..),(值,...),...;
- 方式一还支持子查询,语法如下:
insert into 表名
2.删除
方式一:使用delete
(1)删除单表的记录★
语法([]中为可选项):
delete from 表名
[where 筛选条件]
[limit 条目数]
(2)级联删除[了解]
语法:
delete 别名1,别名2 from 表1 别名
inner/left/right join 表2 别名
on 连接条件
[where 筛选条件]
方式二:使用truncate
语法:
truncate table 表名
两种方式的区别【面试题】★
- truncate删除后,如果再插入,标识列从1开始 ;delete删除后,如果再插入,标识列从断点开始
- delete可以添加筛选条件;truncate不可以添加筛选条件
- truncate效率较高
- truncate没有返回值
- delete可以返回受影响的行数
- truncate不可以回滚;delete可以回滚
3.修改
(1)修改单表的记录 ★
语法:
update 表名 set 字段=值,字段=值
[where 筛选条件];
(2)修改多表的记录(了解)
语法:
update 表1 别名
left|right|inner join 表2 别名
on 连接条件
set 字段=值,字段=值
[where 筛选条件];
二、DDL(Data Define Languge):数据定义语言
(一)主要操作 create、drop、alter
1.创建
(1)创建表 ★
create table [if not exists] 表名(
字段名 字段类型 [约束],
字段名 字段类型 [约束],
……
字段名 字段类型 [约束]
);
(2)创建库
create database [if not exists] 库名 [character set 字符集名];
2.删除
(1)删除表
drop table [if exists] 表名;
(2)删除库
drop database [if exists] 库名;
3.修改
(1)修改表
①添加列
alter table 表名 add column 列名 类型 [first|after 字段名];
②修改列的类型或约束
alter table 表名 modify column 列名 新类型 [新约束];
③修改列名
alter table 表名 change column 旧列名 新列名 类型;
④删除列
alter table 表名 drop column 列名;
⑤修改表名
alter table 表名 rename [to] 新表名;
⑥复制表
- 仅复制表的结构
create table 表名 like 旧表;
- 复制表的结构+数据
create table 表名
select 查询列表 from 旧表 [where 筛选];
(2)修改库
alter database 库名 character set 字符集名;
三、DML与DDL对比分析
简单来说,DML操作对象是表中的数据,而DDL是表和数据库;
DML中对表中数据的增删改的语句分别是:
insert 、delete、update
DDL中对表和数据库的建删改的语句分别是:
create、drop、alter
不要搞混!!!