MySQL教程

SELECT语句的子句和函数

Preview
  • MySQL SELECT语句的子句和函数

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语句还包含一些常用的子句和函数,如下:

  1. WHERE子句

WHERE子句用于过滤查询结果,根据指定的条件选择行,格式如下:

SELECT column1, column2, ... FROM table_name WHERE condition;

其中,condition是一个或多个比较条件,可以使用比较运算符(=、<、>、<=、>=、<>)、逻辑运算符(AND、OR、NOT)和通配符(%、_)组成。

例如,以下语句可以选择salary大于5000的员工:

SELECT * FROM employee WHERE salary > 5000;
  1. 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;
  1. GROUP BY子句

GROUP BY子句用于将数据按照指定的列分组,格式如下:

SELECT column1, column2, ... FROM table_name GROUP BY column1, column2, ...;

例如,以下语句可以选择按照部门分组,统计每个部门的员工数:

SELECT department, COUNT(*) FROM employee GROUP BY department;
  1. 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;
  1. DISTINCT关键字

DISTINCT关键字用于去重,只返回不重复的行,格式如下:

SELECT DISTINCT column1, column2, ... FROM table_name;

例如,以下语句可以选择不重复的部门:

SELECT DISTINCT department FROM employee;
  1. COUNT()函数

COUNT()函数用于统计行数或非空值的数目,格式如下:

SELECT COUNT(column1) FROM table_name;

例如,以下语句可以选择统计employee表中的行数:

SELECT COUNT(*) FROM employee;
  1. SUM()函数

SUM()函数用于计算列的总和,格式如下:

SELECT SUM(column1) FROM table_name;

例如,以下语句可以选择计算salary列的总和:

SELECT SUM(salary) FROM employee;
  1. AVG()函数

AVG()函数用于计算列的平均值,格式如下:

SELECT AVG(column1) FROM table_name;

例如,以下语句可以选择计算salary列的平均值:

SELECT AVG(salary) FROM employee;
  1. MAX()函数

MAX()函数用于返回列中的最大值,格式如下:

SELECT MAX(column1) FROM table_name;

例如,以下语句可以选择返回salary列中的最大值:

SELECT MAX(salary) FROM employee;
  1. MIN()函数

MIN()函数用于返回列中的最小值,格式如下:

SELECT MIN(column1) FROM table_name;

例如,以下语句可以选择返回salary列中的最小值:

SELECT MIN(salary) FROM employee;
  1. CONCAT()函数

CONCAT()函数用于将字符串拼接起来,格式如下:

SELECT CONCAT(column1, " ", column2) FROM table_name;

例如,以下语句可以选择将firstName和lastName拼接起来:

SELECT CONCAT(firstName, " ", lastName) FROM employee;
  1. SUBSTRING()函数

SUBSTRING()函数用于截取字符串的一部分,格式如下:

SELECT SUBSTRING(column1, start_position, length) FROM table_name;

其中,start_position表示开始位置,length表示要截取的长度。

例如,以下语句可以选择截取firstName的前三个字符:

SELECT SUBSTRING(firstName, 1, 3) FROM employee;
  1. 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;
  1. DATE()函数

DATE()函数用于提取日期部分,格式如下:

SELECT DATE(date_column) FROM table_name;

例如,以下语句可以选择提取hireDate列的日期部分:

SELECT DATE(hireDate) FROM employee;

以上是MySQL SELECT语句中常用的子句和函数,根据具体需求可以进行灵活的组合和应用。