SQL 简介与详细语法解析

SQL 简介
SQL(结构化查询语言,Structured Query Language)是一种用于管理和操作关系型数据库的标准语言。它被广泛应用于各类数据库管理系统(如 MySQL、Oracle、SQL Server、PostgreSQL、SQLite 等)中。SQL 使得开发者可以通过简单的命令对数据库中的数据进行查询、插入、更新和删除等操作。
SQL 的作用:
- 查询数据:从数据库中检索数据。
- 插入、更新和删除数据:对数据库中的记录进行修改。
- 数据库管理:创建、修改和删除数据库、表、视图等数据库对象。
- 权限控制:授予或撤销用户对数据库的访问权限。
SQL 是关系型数据库的核心语言,能够帮助开发者高效管理和操控数据。通过 SQL,用户不仅能执行常见的 CRUD(增、删、改、查)操作,还能进行更复杂的数据分析、事务管理、权限控制等操作。
SQL 语法
SQL 语法涉及多种语句,按功能可以分为以下几类:
1. 数据查询语言(DQL)
数据查询语言主要用于从数据库中查询数据,常用的 DQL 命令就是 SELECT
。
SELECT 语句
SELECT
是 SQL 中最常用的查询语句,允许用户从一个或多个表中提取数据。它的基本语法如下:
解释:
SELECT
:指定要查询的列。FROM
:指定数据来源的表。
示例: 查询 employees
表中的所有列数据:
查询 employees
表中 name
和 salary
两列的数据:
WHERE 子句
WHERE
子句用于对查询的结果进行过滤,只返回符合条件的记录。它用于指定条件语句。
示例: 查询所有 salary
大于 50000 的员工:
ORDER BY 子句
ORDER BY
子句用于对查询结果按指定列进行排序,默认升序排列。如果想要降序排列,使用 DESC
。
示例: 查询 employees
表,按 salary
降序排列:
LIMIT 子句
LIMIT
用于限制返回的结果行数。它常用于分页查询。
示例: 查询 employees
表中的前 5 行数据:
2. 数据定义语言(DDL)
数据定义语言用于定义数据库中的结构,诸如创建、修改或删除表等操作。
CREATE DATABASE
CREATE DATABASE
用于创建一个新的数据库。
示例: 创建一个名为 company_db
的数据库:
CREATE TABLE
CREATE TABLE
用于创建新的表,并定义表的列及其数据类型。
示例: 创建一个 employees
表,包含 id
, name
, salary
等字段:
ALTER TABLE
ALTER TABLE
用于修改表的结构,如添加、删除或修改列。
示例: 在 employees
表中添加 address
列:
DROP TABLE
DROP TABLE
用于删除一个表及其数据。
示例: 删除 employees
表:
3. 数据操作语言(DML)
数据操作语言用于操作表中的数据,主要包括插入、更新和删除记录。
INSERT INTO
INSERT INTO
用于向表中插入新记录。
示例: 向 employees
表插入一条记录:
UPDATE
UPDATE
用于修改表中现有记录的值。
示例: 将 Alice
的工资更新为 60000:
DELETE
DELETE
用于删除表中的一条或多条记录。
示例: 删除所有工资低于 30000 的员工:
4. 数据控制语言(DCL)
数据控制语言用于控制数据库用户的访问权限。
GRANT
GRANT
用于授予数据库用户权限。
示例: 授予用户 john
对 employees
表的 SELECT
权限:
REVOKE
REVOKE
用于撤销之前授予用户的权限。
示例: 撤销用户 john
对 employees
表的 SELECT
权限:
5. 事务控制语言(TCL)
事务控制语言用于控制事务的执行,确保数据的一致性和完整性。
COMMIT
COMMIT
用于提交事务,使事务中的所有操作生效。
示例: 提交一个事务:
ROLLBACK
ROLLBACK
用于回滚事务,撤销事务中的所有操作。
示例: 回滚一个事务:
SAVEPOINT
SAVEPOINT
用于设置一个保存点,允许在事务中部分回滚。
示例: 设置一个保存点:
常见 SQL 语句示例
1. 查询所有记录:
2. 查询特定列:
3. 使用条件查询:
4. 排序查询:
5. 使用聚合函数:
6. 多表连接查询:
7. 插入数据:
8. 更新数据:
9. 删除数据:
总结
SQL 是一种功能强大的查询语言,广泛用于管理关系型数据库中的数据。SQL 的语法简洁且直观,能高效地进行数据查询、插入、更新和删除等操作。此外,SQL 也允许开发者管理数据库结构、控制权限以及保证数据一致性和完整性。掌握 SQL 语言是任何数据库开发人员或数据分析人员必不可少的技能。