MySQL数据操纵语言学习笔记(二)

MySQL数据操纵语言学习笔记(二)

INSERT语句

◆ INSERT语句可以向数据表写入记录,可以是一条记录,也可以是多条记录

1
2
INSERT INTO 表名(字段1,字段2,......)
VALUES (值1,值2,......);

PS: 虽然INSERT语句可以不带字段名,但是不写字段名,MySql无法快速的写入。

1
2
INSERT INTO 表名(字段1,字段2)
VALUES(值1,值2,......),(值1,值2,......);

方言

◆ MYSQL的INSERT语句还有一种方言语法

1
INSERT INTO 表名 SET 字段1=值1,字段2=值2,......;

IGNORE关键字

◆ IGNORE关键字会让INSERT只插入数据库不存在的记录

1
INSERT [IGNORE] INTO 表名......;

例:

1
2
INSERT IGNORE INTO t_dept(deptno,dname,loc)
VALUES(40,"技术部","北京")

UPDATE语句

◆ UPDATE语句用于修改表的记录

1
2
3
4
5
6
UPDATE [IGNORE] 表名 # IGNORE遇到冲突的忽略
SET 字段1=值1,字段2=值2,......
[WHERE 条件1 ......] # 有无条件修改
[ORDER BY ......] # 对数据排序,防止与不可重复约束的冲突
[LIMIT ......]; # 取分页数据,只能写一个参数,也就是前几条记录
# SET是最后执行的语句

UPDATE语句的表连接(一)

◆ 因为相关子查询效率非常低,所以我们可以利用表连接的方式来改造UPDATE语句

1
2
UPDATE1 JOIN2 ON 条件
SET 字段1 = 值1,字段2 = 值2, ......;

◆ 表连接的UPDATE语句可以修改多张表的记录

UPDATE语句的表连接(二)

◆ UPDATE语句的表连接可以演变成下面的样子

1
2
3
UPDATE1,表2
SET 字段1 = 值1,字段2 = 值2,......
WHERE 连接条件;

UPDATE语句的表连接(三)

◆ UPDATE语句的表连接既可以是内连接,又可以是外连接

1
2
UPDATE1 [LEFT|RIGHT] JOIN2 ON 条件 
SET 字段1 = 值1,字段2 = 值2, ......;

DELETE语句

◆ DELETE语句用于删除记录,语法如下:

1
2
3
4
5
DELETE [IGNORE] FROM 表名
[WHERE 条件1,条件2, .......]
[ORDER BY ......]
[LIMIT ......];
# FROM -> WHERE -> ORDER BY -> LIMIT

◆ DELETE语句无法删除子查询获取数据的表中的数据,但可以使用表连接来删除。

DELETE语句的表连接(一)

◆ 因为相关子查询效率非常低,所以我们可以利用表连接的方式来改造DELETE语句

1
2
3
4
DELETE1, ...... FROM1 JOIN2 ON 条件
[WHERE 条件1, 条件2, ......]
[ORDER BY ......]
[LIMIT ......];

DELETE语句的表连接(二)

◆ DELETE语句的表连接既可以是内连接,又可以是外连接

1
DELETE1, ...... FROM1[LEFT|RIGHT] JOIN2 ON 条件......;

快速删除数据表全部记录

◆ DELETE语句是在事务机制下删除记录,删除记录之前,先把将要删除的数据保存到日志文件里,然后再删除记录。

◆ TRUNCATE语句在事务机制之外删除记录,速度远超过DELETE语句

1
TRUNCATE TABLE 表名;
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×