MySQL-3-DML
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
MySQL-3-DML的更多相关文章
- [Sqoop]利用sqoop对mysql运行DML操作
业务背景 利用sqoop对mysql进行查询.加入.删除等操作. 业务实现 select操作: sqoop eval \ --connect jdbc:mysql://127.0.0.1:3306/m ...
- 利用sqoop对mysql执行DML操作
业务背景 利用Sqoop对MySQL进行查询.添加.删除等操作. 业务实现 select操作: sqoop eval \ --connect jdbc:mysql://127.0.0.1:3306/m ...
- MySQL的DML常用语法格式
MySQL的DML常用语法格式 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 我们知道MySQL的查询大致分为单表查询,多表查询以及联合查询.多表查询,顾名思义,就是查询的结果可能 ...
- MySQL的DML语言(增删改)
MySQL的DML语言(增删改) 补充说明,外键:不要使用外键,一切外键概念都在应用层解决. 补充说明,数据库的列,也就是字段名,尽量带上飘符号` 数据库存在的意义:数据存储和数据管理. 数据库:行( ...
- MySQL之DML语句(insert update delete)
DML主要针对数据库表对象的数据而言的,一般DML完成: 插入新数据 修改已添加的数据 删除不需要的数据 1.insert into插入语句 //主键自增可以不插入,所以用null代替 ); //指定 ...
- (MariaDB/MySQL)之DML(1):数据插入
本文目录: 1.insert和replace插入数据 1.1 insert into values() 1.2 insert into set 1.3 insert into select_state ...
- (MariaDB/MySQL)之DML(2):数据更新、删除
本文目录:1.update语句2.delete语句 2.1 单表删除 2.2 多表删除3.truncate table 1.update语句 update用于修改表中记录. # 单表更新语法: UPD ...
- mysql语句-DML语句
DML语句 DML是指对数据库中表记录的操作,主要包括数据的增删改查以及更新,下面依次介绍 首先创建一张表:: 表名:emp 字段:ename varchar(20),hiredate date ,s ...
- Mysql笔记——DML
数据操纵语言DML(Data Manipulation Language),用户通过它可以实现对数据库的基本操作. ========================== 1 插入数据 语法:INSER ...
- MySQL基础 (DML)
DML语句 DML操作是指对数据库中表记录的操作,主要包括表记录的插入(insert).更新(update).删除(delete)和查询(select) 1.插入记录 插入一条 ...
随机推荐
- 安卓记账本开发学习day4
在代码层面,展示出来的界面应该如下图 但是实际运行效果如下图 很明显,"其他"都没有显示出来,经过一点点排查,发现是IncomeFragment.java文件的代码存在错误 @Nu ...
- vue 跨域配置代理 get/post 请求
1.第一步要有 axios 插件 : npm i axios 首先要在自己的项目手动添加一个文件 vue.config.js 个人理解的为 这是axios 封装的跨域文件. 2.vue.config. ...
- JDBC中常用的类和接口
<零基础学Java> JDBC中常用的类和接口 利用JDBC的这些类和接口可以更方便地访问并处理存储在数据库中的数据. DriverManager类 DriverManager类 是JDB ...
- SQL语言学习-DQL条件查询
条件查询 1. where子句后跟条件 2. 运算符 * > .< .<= .>= .= .<> * BETWEEN...AND * IN( 集合) * LIKE: ...
- baiyang网站二代域名及短链接
http://985.so/wesv https://cloud.tencent.com/developer/column/93900
- Kernel pwn 基础教程之 Heap Overflow
一.前言 在如今的CTF比赛大环境下,掌握glibc堆内存分配已经成为了大家的必修课程.然而在内核态中,堆内存的分配策略发生了变化.笔者会在介绍内核堆利用方式之前先简单的介绍一下自己了解的内核内存分配 ...
- 数据结构篇(3)ts 实现双向链表
如今终于到了双向链表了,此前在Node结构中的prev指针终于派上了用场.由于双向链表多了一个前向指针,所以有些操作和单向链表比较起来反而更加的简单. class DbList extends Cir ...
- 原来 Linux 日志文件系统是这样工作的~
关注「开源Linux」,选择"设为星标" 回复「学习」,有我为您特别筛选的学习资料~ 作者:Linux Performance 链接:http://linuxperf.com/?p ...
- uniapp封装request方法及调用
export default { doRequest(method, url, data) { // 如果data为空 if (!data) var data = [] var arr = [] ar ...
- 机构:DARPA
DARPA,美国国防部高级研究计划局. 2021年3月19日,英特尔(Intel)宣布与美国国防部高级研究计划局(DARPA)达成的一项新合作,旨在推动在美制造的专用集成电路(ASIC)芯片的开发. ...