查询数据指从数据库中获取所需要的数据。查询数据是数据库操作中最常用,也是最重要的操作。用户可以根据自己对数据的需求,使用不同的查询方式。通过不同的查询方
式,可以获得不同的数据。MySQL中是使用SELECT 语句来查询数据的。
1.基本查询语句
MySQL中,SELECT 的基本语法形式如下:
SELECT 属性列表
FROM 表名和视图列表
[ WHERE 条件表达式1 ]
[ GROUP BY 属性名1 [ HAVING 条件表达式2 ] ]
[ORDER BY 属性名2 [ASC | DESC] ]
2 单表查询:单表查询是指从一张表中查询所需要的数据。
2.1 查询所有字段: 1 .列出表的所有字段 和 2 使用“* ”查询所有字段
2.2 查询指定字段:查询数据时,可以在SELECT 语句的“属性列表”中列出所要查询的字段。
SELECT num, name, sex,homeaddr FROM employee;
2.3 查询指定记录:SELECT 语句中可以设置查询条件。用户可以根据自己的需要来设置查询条件,按条件进行查询。查询的结果必须满足查询条件。
使用WHERE子句可以来查询条件,其表达式语法规则如下:
WHERE 条件表达式
2.4 带IN关键字的查询:IN关键字可以判断某个字段的值是否在指定的集合中,如果字段的值在集合中,则满足查询条件,该纪录将被查询出来。如果不在集合中,则不满足查询条件,其语法规则如下:
[ NOT ] IN ( 元素1, 元素2, …, 元素n )
2.5 带BETWEEN AND的范围查询:BETWEEN AND关键字可以判读某个字段的值是否在指定的范围内。如果字段的值在指定范围内,则满足查询条件,该纪录将被查询出来。如果不在指定范围内,则不满足查询条件。其语法规则如下:
[ NOT ] BETWEEN 取值1 AND 取值2
2.6 带LIKE的字符匹配查询:LIKE关键字可以匹配字符串是否相等。如果字段的值与指定的字符串相匹配,则满足查询条件,该纪录将被查询出来。如果与指定的字符串不匹配,则不满足查询条件。其语法规则如下:
[ NOT ] LIKE '字符串'
2.7 查询空值 :IS NULL 关键字可以用来判断字段的值是否为空值(NULL )。
如果字段的值是空值,则满足查询条件,该记录将被查询出来。如果字段的值不是空值,则不满足查询条件
其语法规则如下:
IS [ NOT ] NULL 其中“NOT”是可选参数,加上NOT表示字段不是空值时满足条件。
2.8 带AND的多条件查询:AND关键字可以用来联合多个条件进行查询。使用AND关键字时,只有同时满足所有查询条件的记录会被查询出来。如果不满足这些查询条件的其中一个,这样的记录将被排除掉。
条件表达式1 AND 条件表达式2 [ … AND 条件表达式 n]
其中,AND可以连接两个条件表达式。而且,可以同时使用多个AND关键字,这样可以连接更多的条件表达式。
2.9 带OR的多条件查询:OR关键字也可以用来联合多个条件进行查询,使用OR关键字时,只要满足这几个查询条件的其中一个,这样的记录将会被查询出来。
条件表达式1 OR 条件表达式2 [ …OR 条件表达式n ]
其中,OR可以用来连接两个条件表达式。而且,可以同时使用多个OR关键字,这样可以连接更多的条件表达式
2.10 查询结果不重复:如果表中的某些字段上没有惟一性约束,这些字段可能存在着重复的值。
2.11 对查询结果排序:从表中查询出来的数据可能是无序的,或者其排列顺序不是用户所期望的顺序。
ORDER BY 属性名[ ASC | DESC ]
2.12 分组查询:GROUP BY关键字可以将查询结果按某个字段或多个字段进行分组。字段中值相等的为一组。
GROUP BY 属性名[ HAVING 条件表达式] [ WITH ROLLUP ]
1 .单独使用GROUP BY关键字来分组
2 .GROUP BY关键字与GROUP_CONCAT()函数一起使用
3 .GROUP BY关键字与集合函数一起使用
4 .GROUP BY关键与HAVING一起使用
5 .按多个字段进行分组
6 .GROUP BY关键与WITH ROLLUP一起使用
2.13 用LIMIT限制查询结果的数量
查询数据时,可能会查询出很多的记录。而用户需要的记录可能只是很少的一部。这样就需要来限制查询结果的数量。
LIMIT是MySQL中的一个特殊关键字。其可以用来指定查询结果从哪条记录开始显示。还可以指定一共显示多少条记录。
1 .不指定初始位置
2 .指定初始位置
3.使用集合函数查询
集合函数包括COUNT()、SUM() 、AVG() 、MAX()和MIN()。其中,COUNT()用来统计记录的条数;SUM() 用来计算字段的值的总和;AVG() 用来计算字段的值的平均值;
MAX()用来查询字段的最大值;MIN()用来查询字段的最小值。当需要对表中的记录求和、求平均值、查询最大值、查询最小值等操作时,可以使用集合函数。
COUNT() 函数:COUNT()函数用来统计记录的条数:SELECT COUNT(*) FROM employee ;
执行结果如下:
mysql> SELECT COUNT(*) FROM employee ;
SUM()函数:SUM() 函数是求和函数。
AVG()函数:AVG()函数是求平均值得函数。
MAX()函数:MAX()函数是求最大值的函数。
MIN() 函数:MIN() 函数是求最小值的函数。