什么是 SQL?
SQL(结构化查询语言)是一种标准化的编程语言,专为管理和操作关系数据库而设计。它用于查询、插入、更新和删除数据,以及创建和修改数据库结构。
快速了解
| 全称 | 结构化查询语言 |
|---|---|
| 创建时间 | 1974 年由 IBM(Donald Chamberlin 和 Raymond Boyce)开发 |
| 规范文档 | 官方规范 |
SQL 工作原理
SQL 于 20 世纪 70 年代初在 IBM 开发,并于 1986 年成为 ANSI 标准。它提供了一种声明式的数据库操作方法,用户指定想要什么数据,而不是如何检索它。SQL 由几个子语言组成:DDL(数据定义语言)用于模式、DML(数据操作语言)用于数据、DCL(数据控制语言)用于权限、TCL(事务控制语言)用于事务。虽然核心语法是标准化的,但不同的数据库系统(MySQL、PostgreSQL、SQL Server、Oracle)有自己的扩展和变体。
主要特点
- 声明式语言 - 指定要什么,而不是如何做
- ANSI/ISO 标准化,带有供应商扩展
- 支持 CRUD 操作(创建、读取、更新、删除)
- 包括 DDL、DML、DCL 和 TCL 子语言
- 基于集合论的关系模型
- 支持具有 ACID 属性的事务
常见用途
- 数据库查询和报告
- 数据操作和转换
- 数据库模式设计和管理
- 后端应用数据访问
- 数据分析和商业智能
示例
-- DDL: 创建表
CREATE TABLE users (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(100) NOT NULL,
email VARCHAR(255) UNIQUE,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- DML: 插入数据
INSERT INTO users (name, email) VALUES ('张三', 'zhangsan@example.com');
-- DML: 查询数据
SELECT name, email FROM users WHERE id = 1;
-- DML: 更新数据
UPDATE users SET name = '张三丰' WHERE id = 1;
-- DML: 删除数据
DELETE FROM users WHERE id = 1;
-- 连接示例
SELECT u.name, o.total
FROM users u
JOIN orders o ON u.id = o.user_id
WHERE o.created_at > '2024-01-01';