MySql基础篇:DML篇
MySql基础篇:DML篇

MySql基础篇:DML篇

DML:数据操纵语句,用于操作数据库对象中所包含的数据

一.添加数据:INSERT

1.插入单条数据

insert into 表名(列名1,列名2,...) values(值1,值2,...);

注意:插入值的类型要与列的类型一致或兼容,插入NULL可实现为列插入NULL值。
列的顺序可以调换。列数和值的个数必须一致。可省略列名,默认所有列,并且列的顺序和表中列的顺序一致。

2. 插入单条数据

INSERT INTO 表名 SET 列名 = 值,列名 = 值;

这种方式每次只能插入一行数据,每列的值通过赋值列表制定。

3. 插入多条数据

insert into 表名 values(值1,值2,值3),(值4,值5,值6),(值7,值8,值9);

如果只想部分插入数据,需要在 Value List 之前加上 ColumnName List,

insert into 表名 (列名1,列名2) values(值1,值2);

除了列名1和列名2这两列的值,其他列的值会设为 Null。

4. 表数据复制

INSERT INTO 表名 SELECT * from 表名;

注意:两个表的字段需要一直,并尽量保证要新增的表中没有数据

二.更新数据:UPDATE

Update 语句一共有两种语法,分别用于更新单表数据和多表数据。

注意:没有 WHERE 条件的 UPDATE 会更新所有值!

1. 修改一条数据的某个字段

UPDATE 表名 SET 字段名 =值 where 字段名=值

2. 修改多个字段为同一的值

UPDATE 表名 SET 字段名= 值 WHERE 字段名 in ('值1','值2','值3');

3. 使用case when实现批量更新

update 表名 set 字段名 = case 字段名 when 值1 then '值' when 值2 then '值' when 值3 then '值' end where s_id in (值1,值2,值3);

三. 删除数据:DELETE

 1. 删除指定数据

DELETE FROM 表名 WHERE 列名=值;

注意:删除的时候如果不指定where条件,则保留数据表结构,删除全部数据行,有主外键关系的都删不了,与 SELECT 语句不同的是,DELETE 语句中不能使用 GROUP BY、HAVING 和 ORDER BY 三类子句,而只能使用WHERE 子句。

原因很简单, GROUP BY 和 HAVING 是从表中选取数据时用来改变抽取数据形式的,而 ORDER BY 是用来指定取得结果显示顺序的。因此,在删除表中数据时它们都起不到什么作用。

2. 删除表中全部数据

TRUNCATE 表名;

注意:全部删除,内存无痕迹,如果有自增会重新开始编号。

与 DELETE 不同的是,TRUNCATE 只能删除表中的全部数据,而不能通过 WHERE 子句指定条件来删除部分数据。也正是因为它不能具体地控制删除对象, 所以其处理速度比DELETE 要快得多。实际上,DELETE语句在DML语句中也属于处理时间比较长的,因此需要删除全部数据行时,使用 TRUNCATE 可以缩短 执行时间。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

隐藏
变装