MySQL中DML操作(九)
DML语言是操作数据的语言
一、添加数据(INSERT)
1.1 选择插入
INSERT INTO 表名(列名 1 ,列名 2 ,列名
3.....) VALUES(值 1 ,值 2 ,值 3......);
1.2 完成插入
INSERT INTO 表名 VALUES(值 1 ,值 2 ,值
3......);
如果主键是自动增长,需要使用 default 或者 null 或者 0 占位。
二、默认值处理(DEFAULT)
在 MySQL 中可以使用 DEFAULT 为列设定一个默认值。如果在插入数据时并未指定该列的值,那么 MySQL 会将默认值添加到该列中。
2.1 创建表时指定列的默认值
CREATE TABLE 表名(列名 类型 default 默认
值,......);
2.2 修改表添加新列并指定默认值
ALTER TABLE 表名 ADD COLUMN 列名 类型 DEFAULT
默认值;
2.3 插入数据时的默认值处理
如果在插入数据时并未指定该列的值,那么MySQL 会将默认值添加到该列中。如果是 完全项插入需要使用 default 占位。
三、更新数据(UPDATE)
UPDATE 表名 SET 列名=值,列名=值 WHERE 条件;
更新语句中一定要给定更新条件,否则表中的所有数据都会被更新。
四、删除数据(DELETE)
DELETE FROM 表名 WHERE 条件;
在DELETE语句中,如果没有给定删除条件则会删除表中的所有数据。
五、TRUNCATE清空表
TRUNCATE TABLE 表名;
六、清空表时DELETE与 TRUNCATE 区别
-
truncate 是整体删除(速度较快), delete 是逐条删除(速度较慢);
-
truncate 不写服务器 log,delete 写服务器 log,也就是 truncate 效率比 delete 高的原因;
-
truncate 是会重置自增值,相当于自增列会被置为初始值,又重新从 1 开始记录,而 不是接着原来的值。而 delete 删除以后, 自增值仍然会继续累加。