INSERT语句
◆ INSERT语句可以向数据表写入记录,可以是一条记录,也可以是多条记录
1 | INSERT INTO 表名(字段1,字段2,......) |
PS: 虽然INSERT语句可以不带字段名,但是不写字段名,MySql无法快速的写入。
1 | INSERT INTO 表名(字段1,字段2) |
方言
◆ MYSQL的INSERT语句还有一种方言语法
1 | INSERT INTO 表名 SET 字段1=值1,字段2=值2,......; |
IGNORE关键字
◆ IGNORE关键字会让INSERT只插入数据库不存在的记录
1 | INSERT [IGNORE] INTO 表名......; |
例:
1 | INSERT IGNORE INTO t_dept(deptno,dname,loc) |
UPDATE语句
◆ UPDATE语句用于修改表的记录
1 | UPDATE [IGNORE] 表名 # IGNORE遇到冲突的忽略 |
UPDATE语句的表连接(一)
◆ 因为相关子查询效率非常低,所以我们可以利用表连接的方式来改造UPDATE语句
1 | UPDATE 表1 JOIN 表2 ON 条件 |
◆ 表连接的UPDATE语句可以修改多张表的记录
UPDATE语句的表连接(二)
◆ UPDATE语句的表连接可以演变成下面的样子
1 | UPDATE 表1,表2 |
UPDATE语句的表连接(三)
◆ UPDATE语句的表连接既可以是内连接,又可以是外连接
1 | UPDATE 表1 [LEFT|RIGHT] JOIN 表2 ON 条件 |
DELETE语句
◆ DELETE语句用于删除记录,语法如下:
1 | DELETE [IGNORE] FROM 表名 |
◆ DELETE语句无法删除子查询获取数据的表中的数据,但可以使用表连接来删除。
DELETE语句的表连接(一)
◆ 因为相关子查询效率非常低,所以我们可以利用表连接的方式来改造DELETE语句
1 | DELETE 表1, ...... FROM 表1 JOIN 表2 ON 条件 |
DELETE语句的表连接(二)
◆ DELETE语句的表连接既可以是内连接,又可以是外连接
1 | DELETE 表1, ...... FROM 表1[LEFT|RIGHT] JOIN 表2 ON 条件......; |
快速删除数据表全部记录
◆ DELETE语句是在事务机制下删除记录,删除记录之前,先把将要删除的数据保存到日志文件里,然后再删除记录。
◆ TRUNCATE语句在事务机制之外删除记录,速度远超过DELETE语句
1 | TRUNCATE TABLE 表名; |