DML语言的学习
数据操作语言(DML):
- 插入:insert into
- 修改:update…set
- 删除:delete from
一、插入语句
1.插入方式一(常用。支持插入多行、支持子查询):
语法:insert into 表名(列名 , …) values(值,…);
insert into 表名[(字段名,字段名,字段名...)] [value|values] (字段值,字段值,字段值...);//名-值要一一对应
要求:
-
插入的值的类型要与列的类型一致或兼容
-
不可以为null的列必须插入值,可以为null的列如何插入值?(要么列名和值都省略,要么列名写着,值填为null)
-
列的顺序可以乱序写,但列名和值要一一对应
-
列数和值的个数必须一致
-
可以省略列名,默认所有列,而且列的顺序和表中列的顺序一致(表中有多少字段,就需要放多少字段值)
-
被设置为主键的字段的值在一张表里是不可重复的!
-
values和value没有太大区别,就是为了区分批量插入的(一次插入多行)
支持子查询,例如插入多行数据
insert into tb_employees
select 1,'a','a','a',985 union
select 2,'b','b','b',211 union
...
2.插入方式二:
语法:insert into 表名 set 列名=值,列名=值,…
二、修改语句
语法:update 表名 set 列=新值,列=新值,… where 筛选条件;
update 表名 set 字段 = 值 where 条件;
update tb_use set name = 'hahah',pwd = '12345' where id = 2;
三、删除语句
方式一:delete
语法:delete from 表名 where 筛选条件
delete from tb_user where id = 1;
delete from tb_user; #清空表
方式二:truncate(清空表)
语法:truncate table 表名
truncate table tb_employee;
对比:
-
delete可以加where条件,truncate不可以
-
假如要删除的表中有自增长列,用delete删除数据后,再插入数据,自增长列的值从断点开始。而用truncate删除后,再插入数据,自增长列的值从1开始。
-
delete删除有返回值,truncate删除没有返回值
-
truncate删除不能回滚,delete删除可以回滚
为啥DML内容这么少🤔。没错,sql语言的重点就在于一句话查询语句,所以主要重点是查询。