SQL(Structured Query Language)是一种用于管理和操作关系数据库的标准语言。SQL语句可以根据其功能和用途分为几个主要类别。
目录
分类
1. 数据查询语言(DQL)
数据查询语言主要用于从数据库中检索数据。最常用的DQL语句是SELECT
语句。
概念解释:
SELECT
语句用于从数据库中选择数据。结果被存储在一个结果表中,称为结果集。
编程示例:
SELECT * FROM students;
这个语句将从students
表中检索所有列和所有行的数据。
2. 数据定义语言(DDL)
数据定义语言用于定义或修改数据库结构,如创建、修改或删除表和索引。
概念解释:
CREATE
语句用于创建新的数据库、表、索引或其他对象。ALTER
语句用于修改现有数据库对象的结构。DROP
语句用于删除数据库中的表或其他对象。
编程示例:
CREATE TABLE students (
id INT PRIMARY KEY,
name VARCHAR(100),
age INT
);
这个语句将创建一个名为students
的表,包含id
、name
和age
列。
3. 数据操作语言(DML)
数据操作语言用于管理数据库中的数据,包括插入、更新和删除数据。
概念解释:
INSERT
语句用于向表中插入新数据。UPDATE
语句用于更新表中的现有数据。DELETE
语句用于从表中删除数据。
编程示例:
INSERT INTO students (id, name, age) VALUES (1, '张三', 20);
这个语句将向students
表中插入一条新记录,包含id
、name
和age
字段。
4. 数据控制语言(DCL)
数据控制语言用于控制数据库的访问和权限,包括授予和撤销权限。
概念解释:
GRANT
语句用于授予用户或角色特定的权限。REVOKE
语句用于撤销用户或角色的权限。
编程示例:
GRANT SELECT ON students TO user1;
这个语句将授予user1
对students
表的SELECT
权限。
5. 事务控制语言(TCL)
事务控制语言用于管理数据库中的事务,包括提交和回滚事务。
概念解释:
COMMIT
语句用于提交当前事务,使其更改永久化。ROLLBACK
语句用于回滚当前事务,撤销其更改。SAVEPOINT
语句用于在事务中设置保存点,允许部分回滚。
编程示例:
BEGIN TRANSACTION;
UPDATE students SET age = 21 WHERE id = 1;
COMMIT;
这个语句将开始一个事务,更新students
表中id
为1的记录的age
字段,然后提交事务。
总结
SQL语句的分类有助于更好地理解和组织数据库操作。通过掌握这些不同类别的SQL语句,可以更有效地管理和操作数据库中的数据。每个类别的语句都有其特定的用途和语法,理解这些差异对于编写高效和准确的SQL代码至关重要。
具体用法
1. 数据查询语言(DQL)
关键词: SELECT
具体用法:
SELECT
用于从数据库中检索数据。- 可以使用
SELECT
语句选择特定的列,使用WHERE
子句过滤数据,使用ORDER BY
子句排序结果,使用GROUP BY
子句进行分组,使用HAVING
子句过滤分组结果。
示例:
SELECT name, age FROM students WHERE age > 18 ORDER BY age DESC;
这个语句将选择students
表中年龄大于18的学生的name
和age
列,并按年龄降序排列。
2. 数据定义语言(DDL)
关键词: CREATE
, ALTER
, DROP
具体用法:
CREATE
用于创建新的数据库对象,如表、视图、索引等。ALTER
用于修改现有数据库对象的结构。DROP
用于删除数据库对象。
示例:
CREATE TABLE students (
id INT PRIMARY KEY,
name VARCHAR(100),
age INT
);
ALTER TABLE students ADD COLUMN email VARCHAR(100);
DROP TABLE students;
这些语句分别创建了一个名为students
的表,向表中添加了一个email
列,以及删除了students
表。
3. 数据操作语言(DML)
关键词: INSERT
, UPDATE
, DELETE
具体用法:
INSERT
用于向表中插入新数据。UPDATE
用于更新表中的现有数据。DELETE
用于从表中删除数据。
示例:
INSERT INTO students (id, name, age) VALUES (1, '张三', 20);
UPDATE students SET age = 21 WHERE id = 1;
DELETE FROM students WHERE age < 18;
这些语句分别向students
表中插入了一条新记录,更新了id
为1的记录的age
字段,以及删除了年龄小于18的记录。
4. 数据控制语言(DCL)
关键词: GRANT
, REVOKE
具体用法:
GRANT
用于授予用户或角色特定的权限。REVOKE
用于撤销用户或角色的权限。
示例:
GRANT SELECT, INSERT ON students TO user1;
REVOKE INSERT ON students FROM user1;
这些语句分别授予user1
对students
表的SELECT
和INSERT
权限,以及撤销了user1
对students
表的INSERT
权限。
5. 事务控制语言(TCL)
关键词: COMMIT
, ROLLBACK
, SAVEPOINT
具体用法:
COMMIT
用于提交当前事务,使其更改永久化。ROLLBACK
用于回滚当前事务,撤销其更改。SAVEPOINT
用于在事务中设置保存点,允许部分回滚。
示例:
BEGIN TRANSACTION;
UPDATE students SET age = 21 WHERE id = 1;
SAVEPOINT my_savepoint;
UPDATE students SET age = 22 WHERE id = 2;
ROLLBACK TO my_savepoint;
COMMIT;
这些语句开始一个事务,更新了id
为1的记录的age
字段,设置了一个保存点,更新了id
为2的记录的age
字段,回滚到保存点,最后提交事务。