六、MySQL DML数据操纵语言学习笔记(插入、修改、删除详解 + 强化复习)

DML语言

数据操作语言:

  • 插入:insert
  • 修改:update
  • 删除:delete

一、插入语句

(1)方式一:经典的插入方式
语法:
insert into 表名(列名,…)values(值1,…);

(2)方式二:
语法:
insert into 表名
set 列名=值,列名=值,…

两种方式大PK:
1、方式一 支持一次性插入多行数据,但方式二不支持
2、方式一支持子查询,但方式二不支持

# 一、插入语句# (1)方式一:经典的插入方式
# 语法:
#				insert into 表名(列名,...)values(值1,...);# 1.插入的值的类型要与列的类型一致或者兼容
INSERT INTO beauty(id,name,sex,borndate,phone,photo,boyfriend_id)
VALUES(13,'唐艺昕','女','1990-4-23','18988888888',null,2);
SELECT * FROM beauty;# 2.不可以为null的列必须插入值,但是可以为null的列如何才能达到不插入值的目的?# 方法一:该列对应的值用null填充。例如 phone 列,为其 赋值为null
INSERT INTO beauty(id,name,sex,borndate,phone,photo,boyfriend_id)
VALUES(13,'唐艺昕','女','1990-4-23','18988888888',null,2);# 方法二:干脆直接不写列名,省略该列名和该列对应的值。例如 直接将photo列名去掉
INSERT INTO beauty(id,name,sex,borndate,phone,boyfriend_id)
VALUES(14,'金星','女','1990-4-23','13888888888',9);# 3. 列的顺序可以调换,列数和值的个数必须保持一致,否则会报错
INSERT INTO beauty(name,sex,id,phone)
VALUES('蒋欣','女',16,'110');# 4. 可以省略列名,默认列名是所有列,并且列名的顺序和表中列名的顺序一致
INSERT INTO beauty 
VALUES(18,'张飞','男',NULL,'119',NULL,NULL);# (2)方式二:
#  语法:
#				insert into 表名
#				set 列名=值,列名=值,...INSERT INTO beauty
SET id=19,name='刘涛',phone='999';
SELECT * FROM beauty;# 两种方式PK
# 1、方式一 支持一次性插入多行数据,但方式二不支持
INSERT INTO beauty
VALUES(23,'唐艺昕1','女','1990-4-23','18988888888',null,2)
,(24,'唐艺昕2','女','1990-4-23','18988888888',null,2)
,(25,'唐艺昕3','女','1990-4-23','18988888888',null,2)
,(26,'唐艺昕4','女','1990-4-23','18988888888',null,2);# 2、方式一支持子查询,但方式二不支持
INSERT INTO beauty(id,NAME,phone)
SELECT 35,'宋茜1','118098661';# 此处会报错,报错原因为id在表中被设置成了主键
INSERT INTO beauty(id,NAME,phone)
SELECT id, boyname ,'118098661'
FROM boys 
WHERE id<3;

二、修改语句
1.修改单表的记录★
语法:
update表名set列=新值,列=新值,.…
where 筛选条件;

2.修改多表的记录【补充】
语法:

sql 92语法:
update 表1别名,表2别名set 列=值,.….
where 连接条件
and 筛选条件;

sql 99语法:
update 表1别名
inner/left/right join 表2 别名
on连接条件
where 筛选条件;

#1.修改单表的记录
#【案例1】 修改beauty表中姓唐的女神的电话为1389999999
UPDATE beauty
SET phone='1389999999'
WHERE name LIKE '唐%';SELECT * FROM beauty;#案例2:修改boys表中id好为2的名称为张飞,魅力值10
UPDATE boys 
SET boyname='张飞',usercp=10
WHERE id=2;SELECT * FROM boys;# 2.修改多表的记录# 【案例1】 修改张无忌的女朋友的手机号为114
UPDATE boys bo
INNER JOIN beauty b
ON bo.id = b.boyfriend_id
SET b.phone = '114'
WHERE bo.boyName = '张无忌';# 【案例2】 修改没有男朋友的女神的男朋友的编号为2号
UPDATE boys bo
RIGHT JOIN beauty b
ON bo.id = b.boyfriend_id 
SET b.boyfriend_id = 2
WHERE bo.id IS NULL;SELECT * FROM beauty;

三、删除语句

方式一:delete
注意:
1、如果不加where筛选条件的话,delete会删除整张表中的数据(保留表的结构)
2、并且delete会记录日志,意味着删除后的数据还可以恢复,但是效率低。

语法:
1、单表的删除
delete from 表名
where 筛选条件;

2、多表的删除【补充】

sql 92语法:
delete表1的别名,表2的别名
from表1 别名,表2 别名
where 连接条件
and 筛选条件;

sql 99语法:
delete表1的别名,表2的别名
from表1别名
inner/left/right join表2 别名
on连接条件
where 筛选条件;

方式二: truncate

语法:truncate table 表名;

注意:
1、truncate不会记录日志,删除后的数据不能恢复,但是效率高;truncate不能用于有外键约束引用的表。
2、truncate语句后面不允许加筛选条件

#delete pk truncate:

1.delete 可以加where条件,truncate不能加
2.truncate删除,效率高一丢丢
3.假如要删除的表中有自增长列,如果用delete删除后,再插入数据,自增长列的值从断点开始,而truncate删除后,再插入数据,自增长列(比如索引)的值从1开始。
4.truncate 删除后没有返回值,而delete删除后有返回值(比如:删除了几行数据)
5.truncate 删除不能回滚,delete删除可以回滚

# 方式一:delete
#   1、单表的删除
# 【案例1】 删除手机号以9结尾的女神信息
DELETE FROM beauty
WHERE phone LIKE '%9';SELECT * FROM beauty;#   2、多表的删除
# 【案例2】 删除张无忌的女朋友的信息
DELETE b
FROM beauty b
LEFT JOIN boys bo
ON b.boyfriend_id = bo.id
WHERE bo.boyName = '张无忌';# 【案例3】 删除黄晓明的信息以及他的女朋友的信息(级联删除)
DELETE b,bo
FROM beauty b
INNER JOIN boys bo
ON b.boyfriend_id = bo.id
WHERE bo.boyName = '黄晓明';# 方式二:truncate语句# 【案例】 将魅力值 > 100 的男神信息删除
TRUNCATE TABLE boys;

数据的插入修改删除强化练习:

# 数据的插入修改删除强化练习
# 1、运行以下脚本创建表 my_employees
USE myemployees;
CREATE TABLE my_employees(Id INT(10),First_name VARCHAR(10),Last_name VARCHAR(10),Userid VARCHAR(10),Salary DOUBLE(10,2)
);
CREATE TABLE users(id INT,userid VARCHAR(10),department_id INT
);#2.	显示表my_employees的结构
DESC my_employees;#3.	向my_employees表中插入下列数据
ID	FIRST_NAME	LAST_NAME	USERID	SALARY
1		patel				Ralph		Rpatel	 895
2		Dancs				Betty		Bdancs	 860
3		Biri				Ben			Bbiri		 1100
4		Newman	  	Chad		Cnewman	 750
5		Ropeburn		Audrey	Aropebur 1550#方式一:
INSERT INTO my_employees
VALUES(1,'patel','Ralph','Rpatel',895),
(2,'Dancs','Betty','Bdancs',860),
(3,'Biri','Ben','Bbiri',1100),
(4,'Newman','Chad','Cnewman',750),
(5,'Ropeburn','Audrey','Aropebur',1550);
DELETE FROM my_employees;#方式二:
INSERT INTO my_employees
SELECT 1,'patel','Ralph','Rpatel',895 UNION
SELECT 2,'Dancs','Betty','Bdancs',860 UNION
SELECT 3,'Biri','Ben','Bbiri',1100 UNION
SELECT 4,'Newman','Chad','Cnewman',750 UNION
SELECT 5,'Ropeburn','Audrey','Aropebur',1550;#4.	 向users表中插入数据
1	Rpatel	10
2	Bdancs	10
3	Bbiri	20
4	Cnewman	30
5	Aropebur	40INSERT INTO users
VALUES(1,'Rpatel',10),
(2,'Bdancs',10),
(3,'Bbiri',20);#5.将3号员工的last_name修改为“drelxer”
UPDATE my_employees SET last_name='drelxer' WHERE id = 3;#6.将所有工资少于900的员工的工资修改为1000
UPDATE my_employees SET salary=1000 WHERE salary<900;#7.将userid 为Bbiri的user表和my_employees表的记录全部删除
DELETE u,e
FROM users u
JOIN my_employees e 
ON u.`userid`=e.`Userid`
WHERE u.`userid`='Bbiri';#8.删除所有数据
DELETE FROM my_employees;
DELETE FROM users;#9.检查所作的修正
SELECT * FROM my_employees;
SELECT * FROM users;#10.清空表my_employees
TRUNCATE TABLE my_employees;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/471352.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode 2125. 银行中的激光束数量

文章目录1. 题目2. 解题1. 题目 银行内部的防盗安全装置已经激活。 给你一个下标从 0 开始的二进制字符串数组 bank &#xff0c;表示银行的平面图&#xff0c;这是一个大小为 m x n 的二维矩阵。 bank[i] 表示第 i 行的设备分布&#xff0c;由若干 ‘0’ 和若干 ‘1’ 组成。…

2-Second Scrum Meeting-20151202

任务安排 闫昊&#xff1a; 今日完成&#xff1a;设计学习进度的管理。 明日任务&#xff1a;请假。&#xff08;编译计组&#xff0c;压力有点大&#xff09; 金哉仁&#xff1a; 今日完成&#xff1a;继续商讨APP相关界面与设计&#xff0c;安装AndroidStudio。 明日任务&…

android查询所有照片,Android查询外部存储中所有照片

最近写了个自定义相册模块&#xff0c;其中比较核心的算是查询照片了&#xff0c;直接上代码吧val contentUri MediaStore.Files.getContentUri("external")val sortOrder MediaStore.Files.FileColumns.DATE_MODIFIED " DESC"val selection "(${M…

七、MySQL DDL数据定义语言 学习笔记(库和表的创建、修改、删除详解 + 强化复习)

DDL语言 数据定义语言 库和表的管理&#xff1a; 一、库的管理: 创建、修改、删除 二、表的管理: 创建、修改、删除 创建&#xff1a; create 修改&#xff1a; alter 删除&#xff1a; drop 一、库的管理 1、库的创建: 语法&#xff1a; create database [if not exists…

LeetCode 2126. 摧毁小行星(贪心)

文章目录1. 题目2. 解题1. 题目 给你一个整数 mass &#xff0c;它表示一颗行星的初始质量。 再给你一个整数数组 asteroids &#xff0c;其中 asteroids[i] 是第 i 颗小行星的质量。 你可以按 任意顺序 重新安排小行星的顺序&#xff0c;然后让行星跟它们发生碰撞。如果行星…

bzoj:2018 [Usaco2009 Nov]农场技艺大赛

Description Input 第1行&#xff1a;10个空格分开的整数: N, a, b, c, d, e, f, g, h, M Output 第1行&#xff1a;满足总重量最轻&#xff0c;且用度之和最大的N头奶牛的总体重模M后的余数。 Sample Input 2 0 1 5 55555555 0 1 0 55555555 55555555Sample Output 51HINT 样例…

android操作系统+流量,为什么我的安卓操作系统走这么多流量?

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼这是用流量管理软件拦截安卓os偷跑流量的记录&#xff01;国内的软件没个是能拦截系统联网的&#xff01; AppID :-1 应用程序名称:Kernel 总数据包阻塞:170 ff02:0000:0000:0000:0000:0000:0000:0016(1) 163.177.66.11(3) 58.250.…

八、一篇文章快速搞懂MySQL 常见的数据类型(整型、小数、字符型、日期型详解)

常见的数据类型 1、数值型&#xff1a; 整型 小数&#xff1a; 定点数 浮点数 2、字符型&#xff1a; 较短的文本&#xff1a;char、varchar 较长的文本&#xff1a;text、blob&#xff08;较长的二进制数据&#xff09; 3、日期型&#xff1a; 一、整型 1&#xff09;分类…

LeetCode 2129. 将标题首字母大写

文章目录1. 题目2. 解题1. 题目 给你一个字符串 title &#xff0c;它由单个空格连接一个或多个单词组成&#xff0c;每个单词都只包含英文字母。请你按以下规则将每个单词的首字母 大写 &#xff1a; 如果单词的长度为 1 或者 2 &#xff0c;所有字母变成小写。否则&#xf…

九、MySQL常见约束相关知识总结 学习笔记 + 强化复习(六大约束)

常见约束&#xff1a; 一、含义&#xff1a;一种限制&#xff0c;用于限制表中的数据&#xff0c;为了保证表中的数据的准确和可靠性 二、分类&#xff1a;六大约束 1、NOT NULL&#xff1a;非空&#xff0c;用于保证该字段的值不能为空 比如姓名、学号等 2、DEFAULT:默认&…

html 获取鼠标在canvas上的坐标,html5-canvas 检测鼠标在画布上的位置

示例本示例将说明如何获取鼠标相对于画布的位置&#xff0c;例如(0,0)HTML5 Canvas的左上角。的e.clientX和e.clientY将获得相对于文档的顶部位置的鼠标&#xff0c;来改变这种是基于画布的顶部&#xff0c;我们减去left&#xff0c;并right从客户端X和Y的画布位置var canvas …

LeetCode 2130. 链表最大孪生和(链表快慢指针+反转链表+双指针)

文章目录1. 题目2. 解题1. 题目 在一个大小为 n 且 n 为 偶数 的链表中&#xff0c;对于 0 < i < (n / 2) - 1 的 i &#xff0c;第 i 个节点&#xff08;下标从 0 开始&#xff09;的孪生节点为第 (n-1-i) 个节点 。 比方说&#xff0c;n 4 那么节点 0 是节点 3 的孪…

Splay初步【bzoj1503】

做了一道水题&#xff0c;把bzoj1503用Splay重新写了一下。 1 #include <bits/stdc.h>2 #define rep(i, a, b) for (int i a; i < b; i)3 #define REP(i, a, b) for (int i a; i < b; i)4 #define drep(i, a, b) for (int i a; i > b; i--)5 #define mp make…

原生html5时间组件,JFinal遇到了原生Html5时间组件格式转换问题怎么处理?

今天JBolt种子用户群里有人提问&#xff0c;JFinal针对原生Html5的日期时间选择组件的格式转换支持有问题&#xff0c;报错。于是我在JBolt的Demo中加入了这些去测试一下&#xff0c;这里使用的都是原生Html组件。Input type“text”默认就是一个简单的单行文本输入框。如果修改…

LeetCode 2131. 连接两字母单词得到的最长回文串

文章目录1. 题目2. 解题1. 题目 给你一个字符串数组 words 。words 中每个元素都是一个包含 两个 小写英文字母的单词。 请你从 words 中选择一些元素并按 任意顺序 连接它们&#xff0c;并得到一个 尽可能长的回文串 。每个元素 至多 只能使用一次。 请你返回你能得到的最长…

十、关于MySQL 标识列,你该了解这些!

标识列: 又称为自增长列 含义&#xff1a;可以不用手动的插入值&#xff0c;系统提供默认的序列值 特点&#xff1a; 1、标识列必须和主键搭配吗&#xff1f;不一定&#xff0c;但要求是一个key 2、一个表可以有几个标识列&#xff1f;至多一个&#xff01; 3、标识列的类型只…

svg defs 进行定义 引用

svg defs 进行定义 引用&#xff1a; <% page language"java" contentType"text/html; charsetUTF-8" pageEncoding"UTF-8"%> <%String path request.getContextPath();String basePath request.getScheme() "://" reque…

LeetCode 2132. 用邮票贴满网格图(DP/二维差分)

文章目录1. 题目2. 解题1. 题目 给你一个 m x n 的二进制矩阵 grid &#xff0c;每个格子要么为 0 &#xff08;空&#xff09;要么为 1 &#xff08;被占据&#xff09;。 给你邮票的尺寸为 stampHeight x stampWidth 。我们想将邮票贴进二进制矩阵中&#xff0c;且满足以下…

blue html中转换,BlueFox Free PDF to HTML Converter(PDF文件转换软件)

BlueFox Free PDF to HTML Converter是一款pdf文件转换软件&#xff0c;能直接查看PDF文件和对PDF文件进行编辑&#xff0c;支持批量进行转换&#xff0c;使用非常方便&#xff0c;操作简单&#xff0c;有需要可以下载。软件特色通过将PDF转换为HTML网页&#xff0c;您的网站访…

二、前端pink老师的CSS定位学习笔记(超详细,简单易懂)

定位(position) 1. CSS 布局的三种机制 网页布局的核心 —— 就是用 CSS 来摆放盒子位置。 CSS 提供了 3 种机制来设置盒子的摆放位置&#xff0c;分别是普通流、浮动和定位&#xff0c;其中&#xff1a; 普通流&#xff08;标准流&#xff09; 浮动 让盒子从普通流中浮起来 …