MySQL SELECT语句的子句和函数
MySQL SELECT语句是MySQL数据库中最基本的查询语句,用于从一个或多个表中检索数据,并根据指定的条件过滤和排序数据。SELECT语句的基本语法如下:
SELECT column1, column2, ... FROM table_name WHERE condition ORDER BY column1 ASC/DESC;
其中,SELECT
子句用于选择要检索的列;FROM
子句用于指定从哪个表中检索数据;WHERE
子句用于过滤查询结果,根据指定的条件选择行;ORDER BY
子句用于按升序或降序方式对数据进行排序。
除了基本语法外,SELECT语句还包含一些常用的子句和函数,如下:
- WHERE子句
WHERE子句用于过滤查询结果,根据指定的条件选择行,格式如下:
SELECT column1, column2, ... FROM table_name WHERE condition;
其中,condition
是一个或多个比较条件,可以使用比较运算符(=、<、>、<=、>=、<>)、逻辑运算符(AND、OR、NOT)和通配符(%、_)组成。
例如,以下语句可以选择salary大于5000的员工:
SELECT * FROM employee WHERE salary > 5000;
- ORDER BY子句
ORDER BY子句用于按升序或降序方式对数据进行排序,格式如下:
SELECT column1, column2, ... FROM table_name ORDER BY column1 ASC/DESC, column2 ASC/DESC, ...;
其中,ASC
表示升序排序,DESC
表示降序排序。
例如,以下语句可以选择按照salary从高到低排序的员工:
SELECT * FROM employee ORDER BY salary DESC;
- GROUP BY子句
GROUP BY子句用于将数据按照指定的列分组,格式如下:
SELECT column1, column2, ... FROM table_name GROUP BY column1, column2, ...;
例如,以下语句可以选择按照部门分组,统计每个部门的员工数:
SELECT department, COUNT(*) FROM employee GROUP BY department;
- HAVING子句
HAVING子句用于对分组后的数据进行过滤,格式如下:
SELECT column1, column2, ... FROM table_name GROUP BY column1, column2, ... HAVING condition;
其中,condition
是一个或多个比较条件,与WHERE子句相似。
例如,以下语句可以选择统计员工数大于等于3的部门:
SELECT department, COUNT(*) FROM employee GROUP BY department HAVING COUNT(*) >= 3;
- DISTINCT关键字
DISTINCT关键字用于去重,只返回不重复的行,格式如下:
SELECT DISTINCT column1, column2, ... FROM table_name;
例如,以下语句可以选择不重复的部门:
SELECT DISTINCT department FROM employee;
- COUNT()函数
COUNT()函数用于统计行数或非空值的数目,格式如下:
SELECT COUNT(column1) FROM table_name;
例如,以下语句可以选择统计employee表中的行数:
SELECT COUNT(*) FROM employee;
- SUM()函数
SUM()函数用于计算列的总和,格式如下:
SELECT SUM(column1) FROM table_name;
例如,以下语句可以选择计算salary列的总和:
SELECT SUM(salary) FROM employee;
- AVG()函数
AVG()函数用于计算列的平均值,格式如下:
SELECT AVG(column1) FROM table_name;
例如,以下语句可以选择计算salary列的平均值:
SELECT AVG(salary) FROM employee;
- MAX()函数
MAX()函数用于返回列中的最大值,格式如下:
SELECT MAX(column1) FROM table_name;
例如,以下语句可以选择返回salary列中的最大值:
SELECT MAX(salary) FROM employee;
- MIN()函数
MIN()函数用于返回列中的最小值,格式如下:
SELECT MIN(column1) FROM table_name;
例如,以下语句可以选择返回salary列中的最小值:
SELECT MIN(salary) FROM employee;
- CONCAT()函数
CONCAT()函数用于将字符串拼接起来,格式如下:
SELECT CONCAT(column1, " ", column2) FROM table_name;
例如,以下语句可以选择将firstName和lastName拼接起来:
SELECT CONCAT(firstName, " ", lastName) FROM employee;
- SUBSTRING()函数
SUBSTRING()函数用于截取字符串的一部分,格式如下:
SELECT SUBSTRING(column1, start_position, length) FROM table_name;
其中,start_position
表示开始位置,length
表示要截取的长度。
例如,以下语句可以选择截取firstName的前三个字符:
SELECT SUBSTRING(firstName, 1, 3) FROM employee;
- IF()函数
IF()函数用于根据条件返回不同的值,格式如下:
SELECT IF(condition, value1, value2) FROM table_name;
其中,condition
为条件表达式,如果为真,则返回value1
,否则返回value2
。
例如,以下语句可以选择如果salary大于5000,则返回"large",否则返回"small":
SELECT IF(salary > 5000, "large", "small") FROM employee;
- DATE()函数
DATE()函数用于提取日期部分,格式如下:
SELECT DATE(date_column) FROM table_name;
例如,以下语句可以选择提取hireDate列的日期部分:
SELECT DATE(hireDate) FROM employee;
以上是MySQL SELECT语句中常用的子句和函数,根据具体需求可以进行灵活的组合和应用。