mysql查询语句的执行顺序(mysql查询语句)

12-05 汽车 投稿:衷春燕

你们好,最近小元发现有诸多的小伙伴们对于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查询语句这篇文章的一些介绍,希望对大家有所帮助。

免责声明:本文由用户上传,如有侵权请联系删除!
声明:生活头条网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系admin@gdcyjd.com