数据库操作语言(DML)

数据库操作语言(DML)

一、四种操作

  1. 数据查询 (Data Querying): 从数据库中检索数据。最常用的查询语言是SQL (Structured Query Language) 中的 SELECT 语句。
  2. 数据插入 (Data Insertion): 将新数据添加到数据库中,常用的SQL语句是 INSERT INTO
  3. 数据更新 (Data Updating): 修改数据库中的现有数据,常用的SQL语句是 UPDATE
  4. 数据删除 (Data Deletion): 从数据库中删除数据,常用的SQL语句是 DELETE FROM

二、数据的插入(增)

1、语法格式。

前提:创建验证学生表

CREATE TABLE student(
id INT(3) PRIMARY KEY auto_increment,
name VARCHAR(32),
sex VARCHAR(32),
age INT(3),
salary FLOAT(8,2),
course VARCHAR(32)
)

注意:每张表必须有且只有一个主键

理解:主键上的数据不能重复且不能为空,主键就是该数据行的唯一表示

​ PRIMARY KEY – 主键

​ auto_increment – 自动增长

​ 1.1 方式一:

INSERT INTO student VALUE(1,'小雷','women','23','99999','java');

​ 1.2 方式二:

INSERT INTO student VALUES(1,'小雷','women','23','99999','java'),(2,'小杨','men','22','99999','java');

​ 1.3 方式三:

INSERT INTO student(name,sex,age,salary,course) VALUE('小雷','women','23','99999','java');
INSERT INTO student(name,sex,age,salary,course) VALUE('小杨','men','22','99999','java');
INSERT INTO student(name,sex,age,salary,course) VALUE('小刘','women','21','8000','Python');
INSERT INTO student(name,sex,age,salary,course) VALUE('小李','men','24','9999','HTML');
INSERT INTO student(name,sex,age,salary,course) VALUE('小雷','women','23','99999','HTML');

效果截图:

在这里插入图片描述

三、数据的删除(删)

1、清空表数据

方式一:

TRUNCATE student;

注意:清空表数据后,再添加数据,主键会从1开始递增

方式二:

DELETE FROM student;

经验:1、考虑到删除的数据有可能恢复,使用方式二删除数据,再恢复备份,主键不会冲突

​ 2、项目中的数据大概率不会删除,如果要做删除功能,可以在表上加一个字段来去表述该数据行是否可用(ps:0表示删除,1表示未删除)

2、单条件删除数据

DELETE FROM student WHERE id=5;

3、多条件删除数据

​ OR – 或

DELETE FROM student WHERE course='Python' OR course='HTML';

​ 效果截图:

在这里插入图片描述

​ AND – 与(并且)

DELETE FROM student WHERE course='html' and sex='women';

​ 效果截图:

在这里插入图片描述

​ IN(值1,值2,值3,…) – 删除字段上包含的数据

DELETE FROM student WHERE age IN(22,23);

​ 效果截图:
在这里插入图片描述

四、数据的修改(改)

1、修改所有数据

UPDATE student SET salary=10000;

2、单条件修改数据

UPDATE student SET salary=25000 WHERE id=1;

3、多条件修改数据

​ OR – 或

UPDATE student SET salary=30000 WHERE course='python' OR course='html';

​ 效果截图:

在这里插入图片描述

​ AND – 与(并且)

UPDATE student SET salary=40000 WHERE course='java' AND sex='women';

​ IN(值1,值2,值3,…) – 删除字段上包含的数据

UPDATE student SET salary=50000 WHERE age IN(22,23,24);

4、修改多个数据

UPDATE student SET age=20,salary=60000 WHERE id=2;

五、数据的查询(查)-- DQL

1、查询所有字段

SELECT * FROM student;

2、查询指定字段

SELECT  NAME,sex,age FROM student;

3、 查询指定字段 + 别名

SELECT name AS '姓名', sex AS '性别', age AS '年龄' FROM student;

效果截图:

在这里插入图片描述

4、单条件查询

SELECT * FROM student WHERE id=1;

5、多条件查询

OR:

SELECT * FROM student WHERE course='java' OR course='html';

AND:

SELECT * FROM student WHERE course='java' AND sex='women';

效果截图:

在这里插入图片描述

IN():

SELECT * FROM student WHERE age IN(21,22,23);

6、去重查询

需求:查询出学科

SELECT DISTINCT course FROM student;

效果截图:

在这里插入图片描述

7、模糊查询:

需求:查询出名字中带’雷’的学生信息

注意: % 表示没有或多个任意字符,_ 表示一个任意字符

SELECT * FROM student WHERE `name` LIKE '%雷%';

效果截图:

在这里插入图片描述

需求:查询出2个字的名字中最后一个字带’杨’的学生信息

SELECT * FROM student WHERE `name` LIKE '_杨';

效果截图:

在这里插入图片描述

8、单字段排序

需求:按照年龄排升序

注意:ORDER BY 排序,ASC 表示升序,DESC 表示降序

SELECT *FROM student ORDER BY age ASC;

效果截图:

在这里插入图片描述

需求:按照工资排降序

SELECT * FROM student ORDER BY salary DESC;

9、 多字段排序

需求:按照年龄排升序,年龄一致按照工资排降序

SELECT * FROM student ORDER BY age ASC,salary DESC;

效果截图:
在这里插入图片描述

10、限制查询

需求:查询出工资前三位的学生信息

SELECT * FROM student ORDER BY salary DESC LIMIT 3;

效果截图:
在这里插入图片描述

11、分页查询

分页的公式:*SELECT * FROM 表名 LIMIT (页数-1)页面条数,页面条数;

SELECT * FROM student LIMIT 0,5;
SELECT * FROM student LIMIT 5,5;
SELECT * FROM student LIMIT 10,5;

12、统计类函数查询/聚合查询

函数的理解:特定功能的代码块

需求:统计最高工资

SELECT MAX(salary) FROM student;

需求:统计最低工资

SELECT MIN(salary) FROM student;

需求:统计平均工资(保留2位小数)

SELECT ROUND(AVG(salary),2) FROM student;

需求:统计工资总和

SELECT SUM(salary) FROM student;

需求:统计学生个数

SELECT COUNT(id) FROM student;

注意:count()函数不统计字段数据为null的个数

经验:统计数据条数,count()函数中的字段使用主键(因为主键不允许重复且不能为null)

13、子查询

需求:查询最高工资的学生

SELECT * FROM student WHERE salary=(SELECT MAX(salary) FROM student);

经验:实际工作中极少使用子查询,因为效率太低

14、分组过滤查询

需求:查询出各个学科的平均工资

SELECT course ,AVG(salary) FROM student GROUP BY course;

15、分组过滤查询 + 条件

需求:查询出平均工资大于1万的学科信息

SELECT course,AVG(salary)FROM student GROUP BY course HAVING AVG(salary)>10000;

效果截图:

在这里插入图片描述

多表查询接下一章

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

科研与英文学术论文写作指南——于静老师课程

看到了一个特别棒的科研与英文学术论文写作指南,理论框架实例。主讲人是中科院信息工程研究所的于静老师。推荐理由:写论文和读论文或者讲论文是完全不一样的,即使现在还没有发过论文,但是通过于老师的课程,会给后续再…

2024最新Stable Diffusion【插件篇】:SD提示词智能生成插件教程!

前言 今天我们介绍几款可以自动生成提示词的插件。所谓智能生成提示词,就是我们只需要输入非常少量的关键字,插件就会根据关键词提示信息帮助我们生成一系列关键字或者句子作为提示词。下面来和我一起看看吧。 一. SD智能提示词工具 之前的文章中和大…

Java学习 - Redis-Cluster

为什么需要集群 为了高的处理速度 单机redis,官网宣传处理速度为10万命令/秒如果业务需要更高的处理速度,则需要使用集群 为了存储大量数据 一般机器的内存为16-256G如果想要存储更大量的数据,则需要使用集群 分布式之数据分区 因为数据需…

KEYSIGHT是德科技 E5063A ENA 系列网络分析仪

E5063A ENA 矢量网络分析仪 18GHz 2端口 降低无源射频元器件的测试成本 Keysight E5063A ENA 是一款经济适用的台式矢量网络分析仪,可用于测试简单的无源元器件,例如频率最高达到 18 GHz 的天线、滤波器、电缆或连接器。 作为业界闻名的 ENA 系列…

工具:颜色查询 / CMYK颜色查询RGB、HSL、HSV、XYZ的颜色值

一、颜色查询-网址 RGB(90,223,9),#5ADF09 颜色查询,颜色梯度,色彩搭配,色盲模拟 - RGB颜色查询 - 在线工具 - Fontke.com 二、CMYK颜色查询RGB、HSL、HSV、XYZ的颜色值 三、颜色梯度 四、色彩搭配 五、色盲模拟 六、欢迎交流指正

程序员的加油站,各类技术文章,可视化技术,在线源码资源,在线实用工具,数据爬虫接口持续集成更新中

先挂网址:https://wheart.cn 可视化大屏模板与设计,在线预览 上百例可视化模板 技术文章、资源下载等各类资源导航页 echart在线实用demo 各种在线工具提升开发效率 echart在线代码模板

服务器之BIOS基础知识总结

1.BIOS是什么? BIOS全称Basic Input Output System,即基本输入输出系统,是固化在服务器主板的专用ROM上,加载在服务器硬件系统上最基本的运行程序,它位于服务器硬件和OS之间,在服务器启动过程中首先运行&am…

配置Uptime Kuma固定前缀

在做ICT集成项目时,遇到需要对现网接口进行拨测的需求。搜索后尝试使用开源的Uptime Kuma组件完成现网接口拨测。 但该项目有个问题就是默认不支持配置固定前缀,这对现网进行请求转发会造成较大的影响。通过查看该项目的github后找到了问题的解决方案。S…

助力游戏实现应用内运营闭环,融云游戏社交方案升级!

通信能力在所有应用场景都是必备组件,这源于社交属性带给应用的增长神话。 在游戏场景,玩家从少数核心向大众用户泛化扩展的过程,就是游戏深度融合社交能力的过程。 从单机到联机,游戏乐趣的升级 1996 年,游戏界顶流…

Laravel swagger接口文档生成和管理

Laravel swagger接口文档生成和管理 接口开发随着时间推移接口会越来越多,随着多部门之间的协作越来越频繁, 维护成本越来越高, 文档的可维护性越来越差, 需要一个工具来管理这些接口的文档, 并能够充当mock server给调用方使用 这里推荐swagger生成和管理接口文档&…

硅纪元视角 | 1 分钟搞定 3D 创作,Meta 推出革命性 3D Gen AI 模型

在数字化浪潮的推动下,人工智能(AI)正成为塑造未来的关键力量。硅纪元视角栏目紧跟AI科技的最新发展,捕捉行业动态;提供深入的新闻解读,助您洞悉技术背后的逻辑;汇聚行业专家的见解,…

Arthas实战(2)- OOM问题排查

一、 准备测试应用 新建一个 SpringBoot应用&#xff0c;写一段有 OOM bug 的代码&#xff1a; RestController RequestMapping public class JvmThreadController {List<TestWrapper> memoryList new ArrayList<>();GetMapping("/test")public Strin…

Element 的 el-table 表格实现单元格合并

html 部分 <template><div class"index-wapper"><el-table :data"tableData" :span-method"objectSpanMethod" border><el-table-column v-for"(item, index) in tableHeader" :key"index" :prop&quo…

【C语言】auto 关键字

在C语言中&#xff0c;auto关键字用于声明局部变量&#xff0c;但它的使用已经变得很少见。事实上&#xff0c;从C99标准开始&#xff0c;auto关键字的默认行为就是隐含的&#xff0c;因此在大多数情况下无需显式使用它。 基本用法 在C语言中&#xff0c;auto关键字用于指定变…

五粮液:稳,还稳得住吗?

前有“酱香”茅台一骑绝尘&#xff0c;后有“清香”汾酒21%的增速虎视眈眈。 在新的股东大会上&#xff0c;管理层把“稳”字说了近30次。 就问白酒二哥——五粮液&#xff0c;你还稳得住吗&#xff1f; 近期&#xff0c;白酒大哥茅台因跌价吸引各方关注&#xff0c;但在这一…

【目标检测】DN-DETR

一、引言 论文&#xff1a; DN-DETR: Accelerate DETR Training by Introducing Query DeNoising 作者&#xff1a; IDEA 代码&#xff1a; DN-DETR 注意&#xff1a; 该算法是在DAB-DETR基础上的改进&#xff0c;在学习该算法前&#xff0c;建议掌握DETR、DAB-DETR等相关知识…

学习伦敦金技术分析的具体步骤是什么?

技术分析是我们分析伦敦金市场的重要工具&#xff0c;刚入市就面对时涨时跌的市场应该如何交易呢&#xff1f;投资者如果不掌握技术分析的方法&#xff0c;恐怕对这个问题会没有头绪。入场都没有&#xff0c;盈利就更加无从谈起了。而学习技术分析&#xff0c;是有不同的阶段、…

技术周总结 2024.06.24~06.30(Python并发执行shell并发执行 Spring Bean)

文章目录 一、 06.26 周三1.1&#xff09;问题01&#xff1a;怎么在mysql的命令行中查询出来 python能使用的元祖结果集1.2&#xff09;问题02&#xff1a;python中 set()是什么&#xff0c;怎么使用 二、06.27 周四2.1&#xff09;问题01&#xff1a;shell 并发执行2.2&#x…

工程文件参考——CubeMX+LL库+SPI主机 阻塞式通用库

文章目录 前言CubeMX配置SPI驱动实现spi_driver.hspi_driver.c 额外的接口补充 前言 SPI&#xff0c;想了很久没想明白其DMA或者IT比较好用的方法&#xff0c;可能之后也会写一个 我个人使用场景大数据流不多&#xff0c;如果是大批量数据交互自然是DMA更好用&#xff0c;但考…

WPF自定义模板--TreeView 实现菜单连接线

有些小伙伴说&#xff0c;在TreeView中&#xff0c;怎么每一个都加上连接线&#xff0c;进行显示连接。 代码和效果如下&#xff1a; 其实就是在原来的模板中增加一列显示线条&#xff0c;然后绘制即可 <Window x:Class"XH.TemplateLesson.TreeViewWindow"xmln…