日常收集常用SQL查询语句大全

1. SQL基础查询

1.1 SELECT语句

SELECT语句是SQL中最常用的命令之一,用于从数据表中选择数据。其基本的语法格式如下:

SELECT column1, column2, column3, ...

FROM table_name;

其中,column1, column2, column3可以是选取的列名,也可以是 "*" 表示选取所有列。table_name则指定了要查询的数据表名。

例如:查询一个叫做"employee"的表中的所有员工信息:

SELECT *

FROM employee;

1.2 WHERE语句

WHERE语句可以在SELECT语句中添加条件,以便对数据进行更精确的查询。其语法格式如下:

SELECT column1, column2, column3, ...

FROM table_name

WHERE condition;

其中,condition是所需的筛选条件,可以是基于数值、文本、日期或其他数据类型。

例如:从员工表中查询所有的姓名为"Tom"的员工:

SELECT *

FROM employee

WHERE name = 'Tom';

2. SQL进阶查询

2.1 ORDER BY语句

ORDER BY语句可按升序或降序的方式对数据结果排序。其语法格式如下:

SELECT column1, column2, column3, ...

FROM table_name

ORDER BY column_name ASC|DESC;

其中,column_name指定了要排序的列名,ASC指示升序排序,DESC指示降序排序。

例如:从员工表中查询所有的员工按照工资从高到低排序:

SELECT *

FROM employee

ORDER BY salary DESC;

2.2 GROUP BY语句

GROUP BY语句用于将具有相同属性值的行分组,并对每组应用聚合函数(如SUM、COUNT、AVG等)。以下是其基本的语法格式:

SELECT column1, column2, ...

FROM table_name

GROUP BY column_name1, column_name2, ...;

其中,column_name1, column_name2,...是用于分组的列名。聚合函数可以用于连接到结果集中的每组数据。

例如:查询员工表中每个部门员工的平均工资:

SELECT department, AVG(salary)

FROM employee

GROUP BY department;

2.3 JOIN语句

JOIN语句是SQL中最重要的命令之一,用于将两个或更多数据表中的行连接起来。以下是其基本语法:

SELECT column1, column2, ...

FROM table1

JOIN table2

ON table1.column_name = table2.column_name;

其中,ON子句指定表之间匹配的条件。

例如:查询同时包含部门和员工信息的表:

SELECT *

FROM department

JOIN employee

ON department.dep_id = employee.dep_id;

3. SQL高级查询

3.1 UNION语句

UNION语句用于连接两个或多个查询的结果,并返回一个单一的结果集。以下是其基本语法:

SELECT column1, column2, ...

FROM table1

UNION

SELECT column1, column2, ...

FROM table2;

例如:查询包含客户和供应商信息的单一结果集:

SELECT cust_name, cust_contact, cust_email

FROM customers

UNION

SELECT supp_name, supp_contact, supp_email

FROM suppliers;

3.2 IN语句

IN语句用于指定查询的条件,使用固定列表或查询的结果作为条件。以下是其基本语法:

SELECT column1, column2, ...

FROM table_name

WHERE column_name IN (value1, value2, ...);

或者:

SELECT column1, column2, ...

FROM table_name1

WHERE column_name IN (SELECT column_name

FROM table_name2

WHERE condition);

例如:查询所有在销售订单表中的售出商品:

SELECT product_name

FROM products

WHERE product_id IN (SELECT product_id

FROM order_items

WHERE order_id IN (SELECT order_id

FROM orders

WHERE order_date BETWEEN '2021-01-01' AND '2021-12-31'));

3.3 EXISTS语句

EXISTS语句用于检查子查询中是否存在行,如果存在则返回TRUE而不返回任何行。以下是其基本语法:

SELECT column1, column2, ...

FROM table_name1

WHERE EXISTS (SELECT column_name

FROM table_name2

WHERE condition);

例如:查询包含客户和订单信息的所有客户列表:

SELECT cust_name

FROM customers c

WHERE EXISTS (SELECT *

FROM orders o

WHERE o.cust_id = c.cust_id);

3.4 HAVING语句

HAVING语句用于仅检索分组条件满足特定条件的组的信息,其语法与WHERE语句类似。以下是其基本语法:

SELECT column1, column2, ...

FROM table_name

GROUP BY column_name1, column_name2, ...

HAVING condition;

其中,condition是作为筛选器的表达式。

例如:查询平均工资超过6000的每个部门的员工:

SELECT department, AVG(salary)

FROM employee

GROUP BY department

HAVING AVG(salary) > 6000;

4. 总结

本文介绍了SQL的基础、进阶和高级查询技术。通过使用SELECT、WHERE、ORDER BY、GROUP BY、JOIN、UNION、IN、EXISTS和HAVING语句,可以轻松检索和分析SQL数据。对于初学SQL的读者,希望本文对你有所帮助。

数据库标签