![](https://www.zgchaye.cn/uploadfile/2023/1125/93fc5e0babb97f4376f71faa24daa7b6650_t.jpg)
你们好,最近小元发现有诸多的小伙伴们对于mysql查询语句的执行顺序,mysql查询语句这个问题都颇为感兴趣的,今天小活为大家梳理了下,一起往下看看吧。
1、新建数据库表
2、DROP TABLE IF EXISTS `study_1`;
3、CREATE TABLE `study_1` (
4、 `id` int(11) NOT NULL AUTO_INCREMENT,
5、 `name` varchar(20) DEFAULT NULL,
6、 `age` int(11) DEFAULT NULL,
7、 `sex` varchar(5) DEFAULT NULL,
8、 PRIMARY KEY (`id`)
9、) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4;
10、数据库表中插入测试数据
11、INSERT INTO study_1 VALUES ('1', '张三', '20', '男');
12、INSERT INTO study_1 VALUES ('2', '李四', '21', '女');
13、INSERT INTO study_1 VALUES ('3', '王五', '22', '男');
14、INSERT INTO study_1 VALUES ('4', '赵六', '23', '女');
15、INSERT INTO study_1 VALUES ('5', '吴七', '24', '女');
16、INSERT INTO study_1 VALUES ('6', '钱八', '25', '男');
17、INSERT INTO study_1 VALUES ('7', '孙九', '26', '男');
18、查询表中所有字段的数据(示例结果如图按顺序)
19、以通配符 * 查询
20、示例
21、SELECT * FROM study_1;
22、以表中所有字段查询
23、示例
24、SELECT id,name,age,sex FROM study_1;
25、查询单个或多个字段(示例结果如图按顺序)
26、查询单个字段
27、示例
28、SELECT name FROM study_1;
29、查询多个字段
30、示例
31、SELECT name,age FROM study_1;
32、使用WHERE条件查询指定记录(示例结果如图按顺序)
33、示例1
34、SELECT * FROM study_1 WHERE age>22;
35、示例2
36、SELECT name,sex FROM study_1 WHERE sex='男';
37、带IN关键字的查询(示例结果如图按顺序)
38、查询字段值在指定范围内的数据
39、示例
40、SELECT * FROM study_1 WHERE age IN (20,21,22);
41、查询字段值不在指定范围内的数据
42、SELECT * FROM study_1 WHERE age NOT IN (20,22,24);
43、使用BETWEEN AND查询摸个范围内的值(示例结果如图按顺序)
44、示例
45、SELECT * FROM study_1 WHERE age BETWEEN 20 AND 25;
46、使用LIKE进行字符串匹配查询(示例结果如图按顺序)
47、通配符 % 匹配
48、示例一,向后匹配
49、SELECT * FROM study_1 WHERE name LIKE '张%';
50、示例二,向前匹配
51、SELECT * FROM study_1 WHERE name LIKE '%四';
52、示例三,前后匹配
53、SELECT * FROM study_1 WHERE name LIKE '%五%';
54、下划线匹配
55、SELECT * FROM study_1 WHERE name LIKE '张_';
56、查询空数据(示例结果如图按顺序)
57、往表中再插入一条sex值为控制的数据
58、INSERT INTO `study_1` VALUES ('8', '周十', '27', null);
59、示例
60、SELECT * FROM study_1 WHERE sex IS NULL;
61、示例2
62、SELECT * FROM study_1 WHERE sex IS NOT NULL;
63、AND多条件与查询,OR多条件或查询(示例结果如图按顺序)
64、注意1:AND优先级大于OR
65、注意2:IN查询能实现OR查询的效果,而且执行熟度更快
66、AND查询
67、示例
68、SELECT * FROM study_1 WHERE age > 22 AND sex IS NOT NULL;
69、OR查询
70、示例
71、SELECT * FROM study_1 WHERE age < 23 OR age > 26;
72、使用DISTINCT查询不重复的数据(示例结果如图按顺序)
73、插入一条与id=1数据内容一致的数据
74、INSERT INTO `study_1` VALUES ('9', '张三', '20', '男');
75、普通查询能查询到两条相同的数据
76、示例
77、SELECT name FROM study_1 WHERE name='张三';
78、使用DISTINCT剔除相同的数据
79、示例
80、SELECT DISTINCT name FROM study_1 WHERE name='张三';
81、对查询出来的数据按列值进行排序(示例结果如图按顺序)
82、不指明顺序默认按升序排序
83、SELECT * FROM study_1 WHERE age > 21 ORDER BY id;
84、按升序排序
85、SELECT * FROM study_1 WHERE age > 21 ORDER BY id ASC;
86、按倒序排序
87、SELECT * FROM study_1 WHERE age > 21 ORDER BY id DESC;
88、使用 [GROUP BY <字段>] [HAVING <查询表达式>] 进行分组查询(示例结果如图按顺序)
89、新增分组字段
90、ALTER TABLE study_1 ADD study_group int(11);
91、为原有的数据分组
92、UPDATE study_1 set study_group=1 where id<3;
93、UPDATE study_1 set study_group=2 where id>=3 AND id<7;
94、UPDATE study_1 set study_group=3 where id>=7;
95、示例1.把各分组的姓名按分组查询并组合起来。
96、SELECT GROUP_CONCAT(name) AS names,study_group FROM study_1 GROUP BY study_group;
97、示例2.把各分组的姓名按分组查询并组合起来,并使用HAVING限制查询分组人数在2人以上的数据。
98、SELECT GROUP_CONCAT(name) AS names,study_group,sex FROM study_1 GROUP BY study_group HAVING COUNT(name)>2;
99、示例3.把各分组的姓名按分组查询并组合起来,WITH ROLLUP在最后一条显示所有记录。
100、SELECT GROUP_CONCAT(name) AS names,study_group FROM study_1 GROUP BY study_group WITH ROLLUP;
101、示例4.多字段分组
102、SELECT GROUP_CONCAT(name) AS names,study_group,sex FROM study_1 GROUP BY study_group,sex;
103、使用 [LIMIT [<从第几行开始>],<查询数据行数>] 查询指定条数的数据
104、示例1.不指定开始位置默认从第一条开始(位置偏移量是0)
105、SELECT * FROM study_1 LIMIT 3;
106、示例2.指定开始位置
107、SELECT * FROM study_1 LIMIT 1,3;
以上就是mysql查询语句这篇文章的一些介绍,希望对大家有所帮助。
免责声明:本文由用户上传,如有侵权请联系删除!