菜鸟学SQL之——DML语言的学习(MySQL)

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语言的重点就在于一句话查询语句,所以主要重点是查询。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章