SQL(结构化查询语言)是一种用于管理和操作关系数据库的语言。以下是一个 SQL 入门教程,涵盖基本的 SQL 语法和常用命令。
### 基本概念
- **数据库**:一个组织化的数据集合。
- **表**:数据库中的一个结构化数据集合,由行和列组成。
- **行**:表中的一条记录。
- **列**:表中的一个字段。
### SQL 语法
#### 创建数据库
```sql
CREATE DATABASE mydatabase;
```
#### 使用数据库
```sql
USE mydatabase;
```
#### 创建表
```sql
CREATE TABLE employees (
id INT PRIMARY KEY,
first_name VARCHAR(50),
last_name VARCHAR(50),
age INT,
department VARCHAR(50)
);
```
#### 插入数据
```sql
INSERT INTO employees (id, first_name, last_name, age, department)
VALUES (1, 'John', 'Doe', 30, 'HR');
INSERT INTO employees (id, first_name, last_name, age, department)
VALUES (2, 'Jane', 'Smith', 25, 'Finance');
```
#### 查询数据
```sql
-- 查询所有列
SELECT * FROM employees;
-- 查询特定列
SELECT first_name, last_name FROM employees;
```
#### 更新数据
```sql
UPDATE employees
SET age = 31
WHERE id = 1;
```
#### 删除数据
```sql
DELETE FROM employees
WHERE id = 2;
```
#### 条件查询
```sql
-- WHERE 子句
SELECT * FROM employees WHERE age > 25;
-- AND 和 OR 子句
SELECT * FROM employees WHERE age > 25 AND department = 'HR';
```
#### 排序
```sql
-- ORDER BY 子句
SELECT * FROM employees ORDER BY last_name ASC;
```
#### 聚合函数
```sql
-- COUNT: 计算行数
SELECT COUNT(*) FROM employees;
-- AVG: 计算平均值
SELECT AVG(age) FROM employees;
-- SUM: 计算总和
SELECT SUM(age) FROM employees;
-- MAX: 获取最大值
SELECT MAX(age) FROM employees;
-- MIN: 获取最小值
SELECT MIN(age) FROM employees;
```
#### 分组
```sql
-- GROUP BY 子句
SELECT department, COUNT(*) AS num_employees
FROM employees
GROUP BY department;
```
#### 连接(JOIN)
```sql
-- 创建另一个表
CREATE TABLE departments (
id INT PRIMARY KEY,
name VARCHAR(50)
);
-- 插入数据
INSERT INTO departments (id, name)
VALUES (1, 'HR'), (2, 'Finance');
-- 内连接
SELECT employees.first_name, employees.last_name, departments.name AS department
FROM employees
INNER JOIN departments ON employees.department = departments.name;
```
### 结语
这只是 SQL 的一个简要介绍,实际应用中可能需要更多高级功能,例如子查询、视图、索引、事务管理等。通过练习和实践,你可以进一步掌握 SQL 的强大功能和灵活性。以下是一些学习资源:
- **W3Schools**: [SQL Tutorial](https://www.w3schools.com/sql/)
- **SQLZoo**: [Interactive SQL Tutorial](https://sqlzoo.net/)
- **Khan Academy**: [Intro to SQL](https://www.khanacademy.org/computing/computer-programming/sql)
你可以利用这些资源进行更深入的学习和实践。