【sql查询语句大全及实例】SQL(Structured Query Language)是用于管理和操作关系型数据库的标准语言。掌握常见的SQL查询语句对于数据处理、数据分析和系统开发都至关重要。本文将总结常用的SQL查询语句,并通过实例帮助读者更好地理解和应用。
一、基础查询语句
查询类型 | 语法结构 | 示例说明 |
查询所有字段 | `SELECT FROM 表名;` | 查询表中所有记录的所有字段 |
查询指定字段 | `SELECT 字段1, 字段2 FROM 表名;` | 查询表中指定的字段信息 |
条件查询 | `SELECT FROM 表名 WHERE 条件;` | 根据条件筛选出符合条件的数据 |
排序查询 | `SELECT FROM 表名 ORDER BY 字段 ASC/DESC;` | 按照指定字段升序或降序排列结果 |
示例:
```sql
-- 查询员工表中所有信息
SELECT FROM employees;
-- 查询员工姓名和部门
SELECT name, department FROM employees;
-- 查询工资大于5000的员工
SELECT FROM employees WHERE salary > 5000;
-- 按工资从高到低排序
SELECT FROM employees ORDER BY salary DESC;
```
二、聚合函数与分组查询
函数名称 | 功能说明 | 示例 |
COUNT() | 计算行数 | `SELECT COUNT() FROM 表名;` |
SUM() | 计算数值总和 | `SELECT SUM(salary) FROM 表名;` |
AVG() | 计算平均值 | `SELECT AVG(salary) FROM 表名;` |
MAX() / MIN() | 获取最大值或最小值 | `SELECT MAX(salary), MIN(salary) FROM 表名;` |
GROUP BY | 按字段分组 | `SELECT department, COUNT() FROM 表名 GROUP BY department;` |
HAVING | 对分组后的结果进行筛选 | `SELECT department, COUNT() FROM 表名 GROUP BY department HAVING COUNT() > 5;` |
示例:
```sql
-- 统计各部门员工数量
SELECT department, COUNT() AS employee_count
FROM employees
GROUP BY department;
-- 查询员工人数超过5人的部门
SELECT department, COUNT() AS employee_count
FROM employees
GROUP BY department
HAVING COUNT() > 5;
```
三、连接查询
连接类型 | 语法结构 | 说明 |
内连接(INNER JOIN) | `SELECT FROM 表1 INNER JOIN 表2 ON 条件;` | 只返回两个表中匹配的记录 |
左连接(LEFT JOIN) | `SELECT FROM 表1 LEFT JOIN 表2 ON 条件;` | 返回左表所有记录,右表没有匹配的用NULL填充 |
右连接(RIGHT JOIN) | `SELECT FROM 表1 RIGHT JOIN 表2 ON 条件;` | 返回右表所有记录,左表没有匹配的用NULL填充 |
全连接(FULL JOIN) | `SELECT FROM 表1 FULL JOIN 表2 ON 条件;` | 返回左右表所有记录,无匹配的部分用NULL填充 |
示例:
```sql
-- 查询员工及其所属部门信息
SELECT employees.name, departments.department_name
FROM employees
INNER JOIN departments
ON employees.department_id = departments.id;
-- 查询所有员工,即使没有部门信息
SELECT employees.name, departments.department_name
FROM employees
LEFT JOIN departments
ON employees.department_id = departments.id;
```
四、子查询与嵌套查询
查询类型 | 语法结构 | 示例 |
子查询 | `SELECT FROM 表名 WHERE 字段 = (SELECT 字段 FROM 表名 WHERE 条件);` | 在WHERE子句中使用另一个查询的结果 |
IN子查询 | `SELECT FROM 表名 WHERE 字段 IN (SELECT 字段 FROM 表名 WHERE 条件);` | 判断字段是否在子查询结果集中 |
EXISTS子查询 | `SELECT FROM 表名 WHERE EXISTS (SELECT 1 FROM 表名 WHERE 条件);` | 判断是否存在符合条件的记录 |
示例:
```sql
-- 查询工资高于平均工资的员工
SELECT FROM employees
WHERE salary > (SELECT AVG(salary) FROM employees);
-- 查询属于销售部的员工
SELECT FROM employees
WHERE department_id IN (SELECT id FROM departments WHERE department_name = '销售部');
```
五、常用DML语句
语句类型 | 语法结构 | 说明 |
插入数据 | `INSERT INTO 表名 (字段1, 字段2) VALUES (值1, 值2);` | 向表中插入新记录 |
更新数据 | `UPDATE 表名 SET 字段 = 值 WHERE 条件;` | 修改表中已有记录 |
删除数据 | `DELETE FROM 表名 WHERE 条件;` | 删除表中符合条件的记录 |
示例:
```sql
-- 插入新员工
INSERT INTO employees (name, department, salary)
VALUES ('张三', '技术部', 8000);
-- 更新员工工资
UPDATE employees
SET salary = 9000
WHERE name = '李四';
-- 删除员工信息
DELETE FROM employees
WHERE name = '王五';
```
总结
SQL是一种强大而灵活的语言,能够满足各种数据查询、操作和分析的需求。掌握上述基本查询语句和常用功能,可以高效地处理数据库中的数据。实际应用中,建议结合具体业务场景进行优化,例如使用索引、避免全表扫描等,以提高查询效率。希望本文对您学习和使用SQL有所帮助。
以上就是【sql查询语句大全及实例】相关内容,希望对您有所帮助。