当然,以下是每类SQL语句的详细解释和用法:
1. 数据定义语言(DDL)
CREATE
- 用于创建新的数据库对象,如表、索引、视图等。
CREATE TABLE
:创建一个新表。
CREATE TABLE students (id INT AUTO_INCREMENT PRIMARY KEY,name VARCHAR(100) NOT NULL,age INT
);
CREATE INDEX
:为表创建一个索引。CREATE INDEX idx_name ON students(name);
ALTER
- 用于修改现有的数据库对象。
ALTER TABLE
:修改表结构,如添加、删除或修改列。ALTER TABLE students ADD COLUMN grade CHAR(1); ALTER TABLE students DROP COLUMN age; ALTER TABLE students MODIFY COLUMN name VARCHAR(200);
DROP
- 用于删除数据库对象。
DROP TABLE
:删除一个表。DROP TABLE students;
DROP INDEX
:删除一个索引。DROP INDEX idx_name ON students;
TRUNCATE
- 用于快速清空表中的所有记录,但保留表结构。
TRUNCATE TABLE students;
RENAME
- 用于重命名数据库对象。
RENAME TABLE
:重命名一个表。RENAME TABLE students TO pupils;
2. 数据操作语言(DML)
SELECT
- 用于从数据库表中查询数据。
SELECT * FROM students; SELECT name, age FROM students WHERE age > 18;
INSERT
- 用于向数据库表中插入新数据。
INSERT INTO students (name, age) VALUES ('John Doe', 20);
UPDATE
- 用于修改数据库表中已有的数据。
UPDATE students SET age = 21 WHERE name = 'John Doe';
DELETE
- 用于删除数据库表中的数据。
DELETE FROM students WHERE name = 'John Doe';
3. 数据控制语言(DCL)
GRANT
- 用于给用户授予特定的数据库权限。
GRANT SELECT, INSERT ON mydatabase.* TO 'username'@'host';
REVOKE
- 用于收回用户的特定数据库权限。
REVOKE SELECT, INSERT ON mydatabase.* FROM 'username'@'host';
4. 事务控制语言(TCL)
START TRANSACTION 或 BEGIN
- 用于标记一个事务的开始。
START TRANSACTION; -- 或者 BEGIN;
COMMIT
- 用于提交事务,使事务中的所有更改永久生效。
COMMIT;
ROLLBACK
- 用于回滚事务,撤销事务中的所有更改。
ROLLBACK;
SAVEPOINT
- 用于在事务中设置一个保存点,可以在此点之后进行回滚操作。
SAVEPOINT savepoint_name;
ROLLBACK TO SAVEPOINT
- 用于将事务回滚到指定的保存点。
ROLLBACK TO SAVEPOINT savepoint_name;
RELEASE SAVEPOINT
- 用于删除一个已设置的保存点。
RELEASE SAVEPOINT savepoint_name;
SET TRANSACTION
- 用于设置当前事务的特性,如隔离级别。
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
这些SQL语句提供了对数据库的全面管理,包括定义和修改数据库结构、查询和修改数据、控制数据访问权限以及管理事务。通过合理使用这些语句,可以高效地管理数据库和确保数据的一致性和完整性。