Mysql-常见DML-DQL-语句语法用法总结

1、常见DML语句

1.1 INSERT语句

说明:将数据插入到数据库表中。

INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...);

实例:添加C罗信息到数据库表中

insert into employee (ID, name, gender, entrydate, age) values (7,'克里斯蒂亚诺','男','2022-12-29',39);

1.2 UPDATE语句

说明:更新数据库表中现有数据行中的内容。

UPDATE table_name SET column1 = value1, column2 = value2, ... WHERE condition;

实例:将詹姆斯的年龄设置为29岁

update employee set age=29 where name='詹姆斯';

1.3 DELETE语句

说明:从数据库表中删除数据行。

DELETE FROM table_name WHERE condition;

实例:删除C罗信息

delete from employee where name='克里斯蒂亚诺';

2、常见DQL语句

2.1 SELECT语句

说明:用于从数据库中检索数据。

SELECT column1, column2, ... FROM table_name WHERE condition ORDER BY column_name ASC|DESC;

实例:

检索表中所有列的数据:

select * from employee;

检索指定列及符合条件的数据:

SELECT name, age FROM employee WHERE age > 25;

检索并按年龄降序排序:

SELECT name, age FROM users ORDER BY age DESC;

2.2 GROUP BY子句

说明:用于将行分组,并对每个组应用聚合函数。

实例:根据性别分组,并统计每个性别的员工个数

SELECT gender,count(*) FROM employee GROUP BY gender;

实例:选取 employee 表中年龄大于等于 25 岁的员工,然后按性别 (gender) 分组计算每个性别的平均年龄,并最终筛选出平均年龄也大于等于 25 岁的性别组。

SELECT gender, AVG(age) avgAge FROM employee WHERE age>=25  GROUP BY gender HAVING avgAge >= 25;

注意,where是在分组前进行过滤,不满足where条件不参与分组。having是对分组后的结果进行过滤。where不能对聚合函数进行判断,而having可以。

执行顺序 where >聚合函数>having。

2.3 DQL语句执行顺序

1、FROM 子句:

首先确定查询的数据来源,识别表或视图,并进行 JOIN 操作(如果有的话)。
处理表的合并、连接和子查询,形成查询的基础数据集。


2、WHERE 子句:

从 FROM 子句中生成的数据集中过滤数据,应用行级过滤条件,排除不满足条件的记录。


3、GROUP BY 子句:

将 WHERE 子句筛选后的数据按指定列进行分组。每个分组中会产生一个数据集合。


4、HAVING 子句:

对 GROUP BY 子句生成的每个分组进行进一步的过滤,应用分组级的条件。


5、SELECT 子句:

从经过 HAVING 子句过滤的数据中选择具体的列和表达式,计算聚合函数(如 COUNT、AVG、SUM 等)。


6、DISTINCT 子句:

在 SELECT 子句中选择的结果中去除重复的记录(如果有 DISTINCT 关键字的话)。


7、ORDER BY 子句:

对 SELECT 子句产生的结果集进行排序,按照指定的列和排序顺序(升序或降序)。


8、LIMIT / OFFSET 子句:

最后,限制返回的记录数(LIMIT)或跳过一定数量的记录(OFFSET),控制查询结果的范围。

相关推荐

  1. MySQL:DDLDML语句

    2024-07-10 17:18:08       21 阅读
  2. DDLDML语句

    2024-07-10 17:18:08       11 阅读
  3. 03--DMLDQL语句

    2024-07-10 17:18:08       25 阅读
  4. 数据库(SQL语句DML&&DQL

    2024-07-10 17:18:08       31 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-10 17:18:08       5 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-10 17:18:08       5 阅读
  3. 在Django里面运行非项目文件

    2024-07-10 17:18:08       4 阅读
  4. Python语言-面向对象

    2024-07-10 17:18:08       5 阅读

热门阅读

  1. 图形渲染基础-GPU驱动的渲染管线

    2024-07-10 17:18:08       11 阅读
  2. 数据库的基本概念

    2024-07-10 17:18:08       10 阅读
  3. 图形渲染基础-Unity渲染管线介绍

    2024-07-10 17:18:08       12 阅读
  4. spring xml实现bean对象(仅供自己参考)

    2024-07-10 17:18:08       10 阅读
  5. Tomcat异常处理【Spring源码学习】

    2024-07-10 17:18:08       13 阅读
  6. Leetcode101 判断二叉树是否对称

    2024-07-10 17:18:08       6 阅读
  7. 【深入剖析】Kylin架构全景及其组件详解

    2024-07-10 17:18:08       8 阅读
  8. poi导出值班excel

    2024-07-10 17:18:08       9 阅读