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字段,回滚到保存点,最后提交事务。
523

被折叠的 条评论
为什么被折叠?



