MySQL学习记录 (四) ----- SQL数据管理语句(DML)
相关文章:
- 《MySQL学习记录 (一) ----- 有关数据库的基本概念和MySQL常用命令》
- 《MySQL学习记录 (二) ----- SQL数据查询语句(DQL)》
- 《MySQL学习记录 (三) ----- SQL数据定义语句(DDL)》
- 《MySQL学习记录 (四) ----- SQL数据管理语句(DML)》
- 《MySQL学习记录 (五) ----- 存储函数、存储过程和触发器》
插入语句
insert into 表名(字段名1, ...)
values(值1, ...);
插入的值的类型要与字段的类型一致,并且数量也要相同
不可以为 null 的字段必须插入值,可以为 null 的字段可以省略对应字段
insert into emp(empno, ename, job, mgr, hiredate, sal, comm, deptno) values(7370, 'Mike', 'BOSS', NULL, 1981-02-13, 8200, NULL, 30);
insert into emp(empno, ename, job, hiredate, sal, deptno) values(7370, 'Mike', 'BOSS', 1981-02-13, 8200, 30);
字段的顺序可以替换
insert into emp( ename, empno, hiredate, job, sal, deptno) values('Mike', 7370, 1981-02-13, 'BOSS', 8200, 30);
可以省略字段名,默认为所有字段,并且字段的顺序和表中的字段顺序一致
insert into emp values(7370, 'Mike', 'BOSS', NULL, 1981-02-13, 8200, NULL, 30);
修改语句
一、修改单表的记录
update 表名
set 字段名1 = 新值1, ...
where 筛选条件;
二、修改多表的记录
-- sql92 语法
update 表1 别名, 表2 别名
set 字段1 = 值1, ...
where 连接条件 and筛选条件;-- sql99 语法
update 表1 别名
inner|left|right join 表2 别名
on 连接条件
set 字段1 = 值1, ...
where 筛选条件;
三、练习
-- 1. 北京的所有仓库增加100m^2的面积
update 仓库 c
set c.面积 = c.面积 + 100
where c.城市 = '北京';-- 2. 给低于所有职工平均工资的职工提高5%的工资
-- 下面是错误答案
/*
原因:where 条件中进行了子查询,并且子查询的 from 是 update 操作的表的,mysql 不支持这种查询修改的方式
*/
update 职工 z
set z.工资 = z.工资 * (1.05)
where z.工资 < (select avg(sal) from 职工);-- 解决方案
/*
将子查询 from 的中嵌套一个查询原表所有信息的查询
*/
update 职工 z
set z.工资 = z.工资 * (1.05)
where z.工资 < (select avg(工资) from (select * from 职工) temp);-- 3. 将在北京工作的职工搬迁到上海并且工资乘2
update 职工 z
join 仓库 c
on z.仓库号 = c.仓库号
set z.工资 = z.工资 * 2, z.仓库 = 'WH2'
where c.城市 = '北京';
删除语句
一、单表的删除
-- 将满足条件的某些记录删除
delete from 表名
where 筛选条件
二、多表的删除
-- sql92 语法
-- 删表1则 delete 后面加上表1的别名,删表2则加表2的别名,两个级联删除则表1别名、表2别名都加上
delete 表1的别名 / 表2的别名 / 表1的别名, 表2的别名
from 表1 别名, 表2 别名
where 连接条件 and筛选条件;-- sql99 语法
delete 表1的别名 / 表2的别名 / 表1的别名, 表2的别名
from 表1 别名
inner|left|right join 表2 别名
on 连接条件
where 筛选条件;
三、练习
-- 删除目前没有任何订购单的供应商
delete from 供应商 g
where g.供应商号 not in(select 供应商号 from 订购单 where 供应商号 is not null)-- 删除由在上海仓库工作的职工发出的所有订购单
delete d
from 订购单 d
join 职工 z on d.职工号 = z.职工号
join 仓库 c on z.仓库号 = c.仓库号
where c.城市 = '上海';-- 在订购单表和职工表中级联删除职工号为E3的记录
delete d, z
from 订购单 d join 职工 z on d.订购单号 = z.职工号
where z.职工号 = 'E3';
MySQL学习记录 (四) ----- SQL数据管理语句(DML)相关推荐
- MySQL学习记录 (三) ----- SQL数据定义语句(DDL)
相关文章: <MySQL学习记录 (一) ----- 有关数据库的基本概念和MySQL常用命令> <MySQL学习记录 (二) ----- SQL数据查询语句(DQL)> &l ...
- MySQL学习记录 (二) ----- SQL数据查询语句(DQL)
相关文章: <MySQL学习记录 (一) ----- 有关数据库的基本概念和MySQL常用命令> <MySQL学习记录 (二) ----- SQL数据查询语句(DQL)> &l ...
- MySQL学习之一条SQL更新语句的执行
文章目录 前言 一.MySQL更新操作大致流程 二.redo log介绍 三.binlog介绍 四.MySQL更新操作的具体流程 前言 今天我们通过一条SQL更新语句,了解MySQL的日志系统 一.M ...
- MySQL学习记录 (五) ----- 存储函数、存储过程和触发器
相关文章: <MySQL学习记录 (一) ----- 有关数据库的基本概念和MySQL常用命令> <MySQL学习记录 (二) ----- SQL数据查询语句(DQL)> &l ...
- MySQL学习记录 (一) ----- 有关数据库的基本概念和MySQL常用命令
相关文章: <MySQL学习记录 (一) ----- 有关数据库的基本概念和MySQL常用命令> <MySQL学习记录 (二) ----- SQL数据查询语句(DQL)> &l ...
- MySQL学习记录04where条件子句、联表查询、子查询
文章目录 MySQL学习记录04where条件子句.联表查询.子查询 4.1DQL 4.2指定查询字段 4.3where条件子句 4.4联表查询 4.5分页和排序 4.6子查询 MySQL学习记录04 ...
- Mysql学习记录(6)
Mysql学习记录(1) Mysql学习记录(2) Mysql学习记录(3) Mysql学习记录(4) Mysql学习记录(5) Day06 12.变量 12.1系统变量 12.1.1全局变量 12. ...
- Mysql常规27种sql查询语句
Mysql常规27种sql查询语句 话不多说,直接上干货 1.查询部分列 select 列名 from 表名 例:员工表中查询员工编号.名字.邮箱 select employee_id,employe ...
- Kafka学习记录(四)——消费者
Kafka学习记录(四)--消费者 目录 Kafka学习记录(四)--消费者 对应课程 Kafka消费者工作流程 消费方式和流程 消费者组原理 消费者组初始化流程 消费者组详细消费流程 重要参数 ka ...
最新文章
- 代码生成工具的分类及比较
- 作为面试官的一些经历,希望能给找工作的朋友一些参考
- wsdl 架构验证警告:来自命名空间_Let it go: DARTS 神经网络可微架构搜索 笔记
- linkedin领英账号限制被封了怎么办?
- 北京大学软件与微电子学院嵌入式系统工程系
- [篇五章二]_使用 USB 系统安装盘在真机上安装激活 Windows 10 LTSC 2021 中文企业版系统
- 趣图:秃头程序员一问二十岁
- GAEfan qiang教程
- 木讷的程序员需要知道的事情 (五)
- 一个小工具,解析微信接龙数据,转成excel表格(附源码)
- 计算机网络的一些小知识
- pt函数html,pt是什么元素?
- Windows Server 2022 开始,DNS 客户端支持 DNS over-HTTPS (DoH)
- Stereo Parallel Tracking and Mapping for robot localization(S-PTAM)
- 网上银行在计算机应用中,基于软件工程和J2EE的网上银行系统实现计算机应用技术专业论文.docx...
- DataFrame的apply应用
- 只安装mysql数据库客户端吗_如何安装MySQL数据库和navicat客户端?
- 机器臂(二)--视觉控制关节点
- Google免费DNS
- subtance painter——2——基础贴图制作
热门文章
- BZOJ 2969 期望
- css3 -- 过渡与动画
- configure: error: MySQL library not found ,Not found mysqlclient library
- 静态Web开发 JavaScript
- 从零开始学java(2)--java中命名的明规则与潜规则
- 【区块链】区块链是什么?
- 2021总结-》2022年
- 脚本_vnote同步到hexo步骤[博]
- 一个大数据平台省了20个IT人力——敦奴数据平台建设案例分享
- 建立可视化决策平台,“数据化”首当其冲! 1