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

(之前在hexo上写的MySQL笔记,还是放到CSDN看比较方便一点)

Hexo上的地址:https://genmcai.github.io/2019/08/17/MySqlDML2/

INSERT语句

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

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

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

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

方言

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

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

IGNORE关键字

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

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

例:

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

UPDATE语句

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

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

UPDATE语句的表连接(一)

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

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

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

UPDATE语句的表连接(二)

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

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

UPDATE语句的表连接(三)

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

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

DELETE语句

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

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

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

DELETE语句的表连接(一)

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

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

DELETE语句的表连接(二)

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

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

快速删除数据表全部记录

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

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

TRUNCATE TABLE 表名;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值