MySQL——数据的增删改

news/2025/3/19 11:09:07/

2023.9.12

        本章开始学习DML (数据操纵语言) 语言。相关学习笔记如下:

#DML语言
/*
数据操作语言:
插入:insert
修改:update
删除:delete
*/#一、插入语句
#方式一:经典的插入
/*
语法:
insert into 表名(列名,...) values(值1,...);*/
SELECT * FROM beauty;
#1.插入的值的类型要与列的类型一致或兼容
INSERT INTO beauty(id,NAME,sex,borndate,phone,photo,boyfriend_id)
VALUES(13,'唐艺昕','女','1990-4-23','1898888888',NULL,2);#2.不可以为null的列必须插入值。可以为null的列如何插入值?
#1:值设为NULL
INSERT INTO beauty(id,NAME,sex,borndate,phone,photo,boyfriend_id)
VALUES(13,'唐艺昕','女','1990-4-23','1898888888',NULL,2);#2:直接不含列和值INSERT INTO beauty(id,NAME,sex,phone)
VALUES(15,'娜扎','女','1388888888');#3.列的顺序可以调换
INSERT INTO beauty(NAME,sex,id,phone)
VALUES('蒋欣','女',16,'110');#4.列数和值的个数必须一致INSERT INTO beauty(NAME,sex,id,phone)
VALUES('关晓彤','女',17,'110');#5.可以省略列名,默认所有列,而且列的顺序和表中列的顺序一致INSERT INTO beauty
VALUES(18,'张飞','男',NULL,'119',NULL,NULL);#方式二:
/*语法:
insert into 表名
set 列名=值,列名=值,...
*/INSERT INTO beauty
SET id=19,NAME='刘涛',phone='999';#两种插入方式对比 ★#1、方式一支持插入多行,方式二不支持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);#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;#二、修改语句/*
1.修改单表的记录★语法:
update 表名
set 列=新值,列=新值,...
where 筛选条件;2.修改多表的记录【补充】语法:
sql92语法:
update 表1 别名,表2 别名
set 列=值,...
where 连接条件
and 筛选条件;sql99语法:
update 表1 别名
inner|left|right join 表2 别名
on 连接条件
set 列=值,...
where 筛选条件;
*/#1.修改单表的记录
#案例1:修改beauty表中姓唐的女神的电话为13899888899UPDATE beauty SET phone = '13899888899'
WHERE NAME LIKE '唐%';#案例2:修改boys表中id好为2的名称为张飞,魅力值 10
UPDATE boys SET boyname='张飞',usercp=10
WHERE id=2;#2.修改多表的记录#案例 1:修改张无忌的女朋友的手机号为114UPDATE boys bo
INNER JOIN beauty b ON bo.`id`=b.`boyfriend_id`
SET b.`phone`='119',bo.`userCP`=1000
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;#三、删除语句
/*方式一:delete
语法:1、单表的删除【★】
delete from 表名 where 筛选条件2、多表的删除【补充】sql92语法:
delete 表1的别名,表2的别名
from 表1 别名,表2 别名
where 连接条件
and 筛选条件;sql99语法:delete 表1的别名,表2的别名
from 表1 别名
inner|left|right join 表2 别名 on 连接条件
where 筛选条件;方式二:truncate
语法:truncate table 表名;*/#方式一:delete
#1.单表的删除
#案例:删除手机号以9结尾的女神信息DELETE FROM beauty WHERE phone LIKE '%9';
SELECT * FROM beauty;#2.多表的删除#案例:删除张无忌的女朋友的信息DELETE b
FROM beauty b
INNER JOIN boys bo ON b.`boyfriend_id` = bo.`id`
WHERE bo.`boyName`='张无忌';#案例:删除黄晓明的信息以及他女朋友的信息
DELETE b,bo
FROM beauty b
INNER JOIN boys bo ON b.`boyfriend_id`=bo.`id`
WHERE bo.`boyName`='黄晓明';#方式二:truncate语句#案例:将魅力值>100的男神信息删除
TRUNCATE TABLE boys ;#delete 和 truncate对比【面试题★】/*1.delete 可以加where 条件,truncate不能加2.truncate删除,效率高一丢丢
3.假如要删除的表中有自增长列,
如果用delete删除后,再插入数据,自增长列的值从断点开始,
而truncate删除后,再插入数据,自增长列的值从1开始。
4.truncate删除没有返回值,delete删除有返回值5.truncate删除不能回滚,delete删除可以回滚.*/SELECT * FROM boys;DELETE FROM boys;
TRUNCATE TABLE boys;
INSERT INTO boys (boyname,usercp)
VALUES('张飞',100),('刘备',100),('关云长',100);

        课后习题:

# 习题
#1.	运行以下脚本创建表my_employeesUSE 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);#4.	 向users表中插入数据
/*
1	Rpatel	10
2	Bdancs	10
3	Bbiri	20
4	Cnewman	30
5	Aropebur	40
*/
INSERT INTO users
VALUES(1,'Rpatel',10),
(2,'Bdancs',10),
(3,'Bbiri',20),
(4,'Cnewman',30),
(5,'Aropebur',40);#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 e,u
FROM `my_employees` e
JOIN `users` u
ON e.`Userid` = u.`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.ppmy.cn/news/1107281.html

相关文章

Spring Bean的获取方式

参考https://juejin.cn/post/7251780545972994108?searchId2023091105493913AF7C1E3479BB943C80#heading-12 记录并补充 1.通过BeanFactoryAware package com.toryxu.demo1.beans;import org.springframework.beans.BeansException; import org.springframework.beans.facto…

青春不一young——建行江门市分行“爱·”时光音乐会圆满成功!

为进一步贯彻落实党的二十大精神&#xff0c;传承和发扬“五四”精神&#xff0c;落实市分行党委关心关爱青年员工工作要求及省分行团委“五四”活动要求&#xff0c;引领青年思想&#xff0c;凝聚青春力量&#xff0c;激发奋斗精神&#xff0c;为市分行高质量发展贡献青春力量…

从构建者到设计者的低代码之路

低代码开发技术&#xff0c;是指无需编码或通过少量代码就可以快速生成应用程序的工具&#xff0c;一方面可降低企业应用开发人力成本和对专业软件人才的需求&#xff0c;另一方面可将原有数月甚至数年的开发时间成倍缩短&#xff0c;帮助企业实现降本增效、灵活迭代。那么&…

干货分享 | 一文了解TSMaster中Seedkey的两种处理方法

在UDS诊断过程中&#xff0c;会涉及到安全访问的问题&#xff0c;也就是常说的Seed&Key。TSMaster中提供了两种 Seed&Key 的处理方法&#xff1a;第一种是直接加载DLL文件&#xff1b;第二种是直接在TSMaster的编译器中直接添加安全算法。 一、加载外部 Seed&Key D…

华为再放大招“重新造车”,这次能否延续手机辉煌?

最近&#xff0c;华为余承东出席AITO问界新M7新车发布仪式。他声称继续在该系列车型投超五亿资金&#xff0c;扬言打造智能座舱天花板。 继华为手机成为世界新闻后&#xff0c;近期这家公司连放大招。理性的看&#xff0c;华为造车能否延续手机辉煌? 01 汽车是大招的集合体 …

易基因: WGBS等揭示DNA甲基化调控林地草莓植株高度和果实大小的分子机制|植物发育

大家好&#xff0c;这里是专注表观组学十余年&#xff0c;领跑多组学科研服务的易基因。 DNA甲基化影响基因组稳定性、转座子沉默和基因表达&#xff1b;它主要发生在对称CG和CHG以及不对称CHH (H A, C或T)中的胞嘧啶上。RNA介导的DNA甲基化(RNA-directed DNA methylation&am…

Linux——环境变量

✅<1>主页&#xff1a;&#xff1a;我的代码爱吃辣 &#x1f4c3;<2>知识讲解&#xff1a;Linux——环境变量 ☂️<3>开发环境&#xff1a;Centos7 &#x1f4ac;<4>前言&#xff1a;环境变量(environment variables)一般是指在操作系统中用来指定操作…

【Python】爬虫基础

爬虫是一种模拟浏览器实现&#xff0c;用以抓取网站信息的程序或者脚本。常见的爬虫有三大类&#xff1a; 通用式爬虫&#xff1a;通用式爬虫用以爬取一整个网页的信息。 聚焦式爬虫&#xff1a;聚焦式爬虫可以在通用式爬虫爬取到的一整个网页的信息基础上只选取一部分所需的…