sql语句大全举例

admin 6 0

### 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)**

```