DML 数据操作语言

插入insert

  • 语法一:insert into 表名(列名,...)values(值1,...);
  • 语法二:insert into 表名 set 列名=值,列名=值,...
  • 插入的值的类型要与列的类型一致或兼容
# 语法一:支持多行插入;语法二不支持
INSERT INTO beauty VALUES
(23,'唐艺昕1','女','1990-4-23','1898888888',NULL,2),
(24,'唐艺昕2','女','1990-4-23','1898888888',NULL,2),
(25,'唐艺昕3','女','1990-4-23','1898888888',NULL,2);
# 语法一:支持子查询,语法二不支持
INSERT INTO beauty(id,NAME,phone)
SELECT 26,'宋茜','11809866'; INSERT INTO beauty(id,NAME,phone)
SELECT id,boyname,'1234567' FROM boys WHERE id<3;

删除delete,truncate

  • 删除-->语法1:delete from 表名 where 筛选条件
  • 删除-->语法2:truncate(截断) table 表名:删除整张表
# 删除手机号带9的女生信息
DELETE FROM beauty WHERE phone LIKE '%9%';
  • 多表删除,语法:
      sq192语法:
# 删除表1的信息就是 delete 表1的别名 ...
# 删除表2的信息就是 delete 表2的别名 ...
# 两个表信息都删除则 delete 表1的别名 表2的别名 ...
delete 表1的别名,表2的别名 from 表1 别名,表2 别名 where 连接条件 and 筛选条件; sq199语法:
delete 表1的别名,表2的别名 from 表1 别名 inner|left|right join 表2别名 on 连接条件 where 筛选条件; ## 例子:
# 多表删除:删除张无忌的女朋友 只删除女朋友信息
DELETE b
FROM beauty b
INNER JOIN boys bo
ON b.`boyfriend_id` = bo.`id`
WHERE bo.`boyName` = '张无忌';
# 删除黄晓明的信息以及他女朋友的信息
DELETE bo,b
FROM boys bo
INNER JOIN beauty b
ON b.`boyfriend_id` = bo.`id`
WHERE bo.`boyName` = '黄晓明';

truncate和delete区别

  • delete 可以加where条件,truncate不能加
  • truncate删除,效率高一点
  • 假如要删除的表中有自增长列,如果用delete删除后,再插入数据,自增长列的值从断点开始,而truncate删除后,再插入数据,自增长列的值从1开始。
  • truncate删除没有返回值,delete删除有返回值
  • truncate删除不能回滚,delete删除可以回滚
CREATE TABLE major(
id INT,
mName VARCHAR(20)
);
# 使用delete 删除后 同时用回滚操作,则数据没有被删除
SET autocommit = 0;
START TRANSACTION;
DELETE FROM major
ROLLBACK
# 使用truncate 删除后 同时用回滚操作,则数据被删除
SET autocommit = 0; # 关闭事务的自动提交
START TRANSACTION; # 开始事务
TRUNCATE TABLE major; #删除表中所有数据
ROLLBACK # 回滚

修改update

  • 修改单表,语法:update 表名 set 列=新值,列=新值,... where 筛选条件;
  • 修改多表,语法:
/*
sq192语法:
update 表1 别名,表2 别名
set 列=值,.…
where 连接条件 and 筛选条件;
sq199语法:
update 表1 别名
inner|left|right join 表2 别名
on 连接条件
set 列=值,.…
where 筛选条件
*/ # 修改多表 例子:
# 修改
# 1. 修改张无忌的女朋友的手机号为110
UPDATE boys bo, beauty b
SET phone = 110
WHERE bo.`id` = b.`boyfriend_id` AND b.`boyfriend_id`= (
SELECT `id` FROM boys WHERE boyName = '张无忌'
);
# 2. 修改没有男朋友的女生,让其男朋友编号都为2号
UPDATE beauty b
LEFT JOIN boys bo
ON b.`boyfriend_id` = bo.`id`
SET b.`boyfriend_id` = 2
WHERE b.`boyfriend_id` IS NULL

最新文章

  1. div中设置滚动条的问题
  2. Oracle XE手动建立数据库实例
  3. 移动端H5-第一课css篇
  4. POJ 2186-Popular Cows (图论-强联通分量Korasaju算法)
  5. 二元查找树转变成排序的双向链表之C#算法实现
  6. IEnumerable和IEnumerator 详解 (转)
  7. 浅谈Java回调机制
  8. 打开新窗口(window.open) 用法
  9. Java多态的体现之继承
  10. 【矩阵乘法经典应用】【ZOJ3497】【Mistwa】
  11. kotlin 语言入门指南(二)--代码风格
  12. 第一章:火狐浏览器 : 环境配置: FireFox 版本38 + jdk 7 + selenium 2.53.6 + selenum-version 2.48.2
  13. Apache Kafka系列(三) Java API使用
  14. 大数据学习之hdfs集群安装部署04
  15. opencv图像融合(大头)
  16. 阅读:ECMAScript 6 入门(3)
  17. C# Select
  18. AndroidStudio配置LitePal
  19. 学习MongoDB 六: MongoDB查询(游标操作、游标信息)(三)
  20. HTML5开发——轻量级JSON存储解决方案Lawnchair.js

热门文章

  1. ajax - xhr level2新特性 json等众多内容
  2. Python 中的鸭子类型和猴子补丁
  3. ES 文档与索引介绍
  4. C#二次开发BIMFACE系列60 File Management文件管理服务及应用场景
  5. Ubuntu Qt5 Firebird 数据库驱动安装
  6. iOS全埋点解决方案-手势采集
  7. .NET Core企业微信网页授权登录
  8. 如何在Web前端实现CAD图文字全文搜索功能之技术分享
  9. oauth协议原理
  10. Docker被禁了!只能靠它了......