### SQL语句大全及实例详解
在数据库管理系统中,SQL(Structured Query Language)是一种标准的编程语言,用于存储、检索、更新和管理关系数据库中的数据,SQL的强大之处在于其灵活性和通用性,几乎所有的数据库系统,如MySQL、PostgreSQL、SQL Server、Oracle等,都支持SQL语言或其变种,本文将通过一系列实例,详细介绍SQL语句的各类用法,包括数据查询(SELECT)、数据插入(INSERT)、数据更新(UPDATE)、数据删除(DELETE)以及数据定义(DDL)和数据控制(DCL)语句等。
#### 一、数据查询(SELECT)
**1. 基本查询**
SELECT column1, column2 FROM table_name;
- **实例**:查询`employees`表中所有员工的姓名和部门ID。
SELECT name, department_id FROM employees;
**2. 条件查询(WHERE子句)**
SELECT column1, column2 FROM table_name WHERE condition;
- **实例**:查询`employees`表中部门ID为5的所有员工姓名。
SELECT name FROM employees WHERE department_id = 5;
**3. 聚合函数(如COUNT, SUM, AVG, MAX, MIN)**
SELECT COUNT(column_name) FROM table_name;
- **实例**:计算`employees`表中员工的总数。
SELECT COUNT(*) FROM employees;
**4. 分组查询(GROUP BY)**
SELECT column_name, aggregate_function(column_name) FROM table_name GROUP BY column_name;
- **实例**:按部门ID分组,计算每个部门的员工数。
SELECT department_id, COUNT(*) FROM employees GROUP BY department_id;
**5. 排序查询(ORDER BY)**
SELECT column_name FROM table_name ORDER BY column_name ASC|DESC;
- **实例**:按员工姓名升序排列查询`employees`表。
SELECT name FROM employees ORDER BY name ASC;
#### 二、数据插入(INSERT)
**1. 插入单条记录**
INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...);
- **实例**:向`employees`表中插入一条新记录。
INSERT INTO employees (name, department_id, salary) VALUES ('John Doe', 5, 50000);
**2. 插入多条记录**
某些数据库支持一次插入多条记录(如MySQL)。
INSERT INTO table_name (column1, column2, ...) VALUES (value1a, value2a, ...), (value1b, value2b, ...);
- **实例**(MySQL):
INSERT INTO employees (name, department_id, salary) VALUES ('Jane Smith', 3, 45000), ('Mike Johnson', 4, 55000);
#### 三、数据更新(UPDATE)
UPDATE table_name SET column1 = value1, column2 = value2, ... WHERE condition;
- **实例**:将部门ID为5的所有员工的薪水提高10%。
UPDATE employees SET salary = salary * 1.1 WHERE department_id = 5;
#### 四、数据删除(DELETE)
DELETE FROM table_name WHERE condition;
- **实例**:删除部门ID为2的所有员工记录。
DELETE FROM employees WHERE department_id = 2;
**注意**:使用DELETE语句时要格外小心,因为一旦执行,被删除的数据将不可恢复(除非有备份)。
#### 五、数据定义语言(DDL)
**1. 创建表(CREATE TABLE)**
CREATE TABLE table_name ( column1 datatype constraints, column2 datatype constraints, ... );
- **实例**:创建一个简单的员工表。
CREATE TABLE employees ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100) NOT NULL, department_id INT, salary DECIMAL(10, 2), FOREIGN KEY (department_id) REFERENCES departments(id) );
**2. 修改表结构(ALTER TABLE)**
```