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),控制查询结果的范围。

  • 15
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Cristiano永远是goat

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值