SQL 语句及其分类
SQL(Structured Query Language)即结构化查询语言,用于管理关系型数据库。
以下是对 SQL 语句分类的介绍及代码演示 :
一、数据查询语言(DQL)
主要用于从数据库中检索数据。
SELECT
语句:- 用于从一个或多个表中检索特定的列或所有列的数据。
- 语法:
SELECT column1, column2,... FROM table_name;
或SELECT * FROM table_name;
。 - 代码演示:
- 查询所有列:
SELECT * FROM employees;
(假设employees
是表名)。 - 查询特定列:
SELECT name, age FROM employees;
。
- 查询所有列:
- 可以结合
WHERE
子句进行条件筛选,例如:SELECT * FROM employees WHERE age > 30;
。 - 还可以使用
ORDER BY
进行排序,如:SELECT * FROM employees ORDER BY salary DESC;
(按薪资降序排列)。
二、数据操作语言(DML)
用于操作数据库中的数据。
INSERT
语句:- 向表中插入新的数据行。
- 语法:
INSERT INTO table_name (column1, column2,...) VALUES (value1, value2,...);
。 - 代码演示:
INSERT INTO employees (name, age, department) VALUES ('John', 35, 'Sales');
。
UPDATE
语句:- 更新表中已有的数据行。
- 语法:
UPDATE table_name SET column1 = value1, column2 = value2,... WHERE condition;
。 - 代码演示:
UPDATE employees SET salary = salary + 1000 WHERE department = 'Engineering';
(给工程部门的员工涨薪 1000)。
DELETE
语句:- 删除表中的数据行。
- 语法:
DELETE FROM table_name WHERE condition;
。 - 代码演示:
DELETE FROM employees WHERE age < 25;
(删除年龄小于 25 岁的员工数据)。
三、数据定义语言(DDL)
用于定义数据库的结构。
CREATE
语句:- 创建数据库对象,如表、索引、视图等。
- 语法:
- 创建表:
CREATE TABLE table_name (column1 datatype1, column2 datatype2,...);
。 - 创建索引:
CREATE INDEX index_name ON table_name (column_name);
。
- 创建表:
- 代码演示:
- 创建表:
CREATE TABLE customers (id INT PRIMARY KEY, name VARCHAR(50), email VARCHAR(100));
。 - 创建索引:
CREATE INDEX idx_customers_name ON customers (name);
。
- 创建表:
ALTER
语句:- 修改数据库对象的结构。
- 语法:
- 修改表结构:
ALTER TABLE table_name ADD column_name datatype;
或ALTER TABLE table_name MODIFY column_name datatype;
等。
- 修改表结构:
- 代码演示:
- 添加列:
ALTER TABLE customers ADD phone VARCHAR(20);
。 - 修改列数据类型:
ALTER TABLE customers MODIFY email VARCHAR(150);
。
- 添加列:
DROP
语句:- 删除数据库对象。
- 语法:
DROP TABLE table_name;
或DROP INDEX index_name;
等。 - 代码演示:
- 删除表:
DROP TABLE customers;
。 - 删除索引:
DROP INDEX idx_customers_name;
。
- 删除表:
四、数据控制语言(DCL)
用于控制数据库的访问权限和事务处理。
GRANT
语句:- 授予用户对数据库对象的特定权限。
- 语法:
GRANT privilege1, privilege2,... ON object_name TO user_name;
。 - 代码演示:
GRANT SELECT, INSERT ON customers TO user1;
(授予用户user1
对customers
表的查询和插入权限)。
REVOKE
语句:- 撤销用户对数据库对象的特定权限。
- 语法:
REVOKE privilege1, privilege2,... ON object_name FROM user_name;
。 - 代码演示:
REVOKE INSERT ON customers FROM user1;
(撤销用户user1
对customers
表的插入权限)。
COMMIT
和ROLLBACK
语句:COMMIT
用于提交事务,使对数据库的更改永久生效。ROLLBACK
用于回滚事务,撤销对数据库的更改。- 代码演示:
- 开始事务:
BEGIN TRANSACTION;
。 - 执行一些数据库操作。
COMMIT;
或ROLLBACK;
根据需要决定是提交还是回滚事务。
- 开始事务:
五、事务控制语言(TCL)
用于管理事务。
BEGIN TRANSACTION
语句:- 开始一个新事务。
- 代码演示:
BEGIN TRANSACTION;
。
SAVEPOINT
语句:- 在事务中创建一个保存点。
- 语法:
SAVEPOINT savepoint_name;
。 - 代码演示:
SAVEPOINT sp1;
。
ROLLBACK TO
语句:- 回滚到指定的保存点。
- 语法:
ROLLBACK TO savepoint_name;
。 - 代码演示:
ROLLBACK TO sp1;
。
SQL 语句是与关系型数据库交互的重要工具,不同类型的 SQL 语句分别用于不同的数据库操作任务。通过合理运用这些语句,可以实现对数据库的高效管理和数据处理。在实际使用中,需要根据具体的业务需求和数据库结构选择合适的 SQL 语句,并注意数据的安全性和一致性。