前言
在 MySQL(以及其他关系型数据库)中,SQL 语句可以分为四大类:DDL 、DML 、DQL 和 DCL。每一类语句都用于不同的目的,分别与数据库结构、数据操作、数据查询和数据控制相关。
1. DDL(数据定义语言)
DDL 用于定义和管理数据库的结构,比如表、索引、视图、存储过程等的创建、修改和删除。
常见的 DDL 操作:
CREATE
:创建数据库对象,如表、索引、视图等。
ALTER
:修改数据库对象,如修改表结构(增加、删除字段)。
DROP
:删除数据库对象,如删除表或数据库。
TRUNCATE
:删除表中所有数据,但不删除表结构。
例子:
创建表:
sql
CREATE TABLE students (
student_id INT PRIMARY KEY,
name VARCHAR(100),
age INT,
grade VARCHAR(10)
);
这条语句创建了一个名为 students
的表,包含 student_id
、name
、age
和 grade
四个字段。
2.修改表结构(添加列):
sql
ALTER TABLE students ADD COLUMN address VARCHAR(255);
这条语句在 students
表中添加了一个 address
列。
3.删除表:
sql
DROP TABLE students;
这条语句删除了整个 students
表,包含所有数据和表结构。
2. DML(数据操作语言)
DML 用于对数据库中的数据进行操作,主要包括插入、更新、删除和查询等。
常见的 DML 操作:
INSERT
:插入数据。
UPDATE
:更新数据。
DELETE
:删除数据。
例子:
插入数据:
sql
INSERT INTO students (student_id, name, age, grade)
VALUES (1, 'John Doe', 20, 'A');
这条语句向 students
表中插入了一条记录,指定了 student_id
、name
、age
和 grade
的值。
2.更新数据:
sql
UPDATE students SET age = 21 WHERE student_id = 1;
这条语句将 student_id
为 1
的学生的 age
更新为 21
。
3.删除数据:
sql
DELETE FROM students WHERE student_id = 1;
这条语句删除了 student_id
为 1
的学生记录。
3. DQL(数据查询语言)
DQL 主要用于从数据库中查询数据,它是 SQL 中最常用的操作。
常见的 DQL 操作:
SELECT
:用于查询数据。
例子:
查询所有数据:
sql
SELECT * FROM students;
这条语句查询 students
表中的所有列和所有记录。
查询指定列的数据:
sql
SELECT name, grade FROM students WHERE age > 18;
这条语句查询 students
表中 age
大于 18 的学生的 name
和 grade
。
查询数据并进行排序:
sql
SELECT * FROM students ORDER BY age DESC;
这条语句查询所有学生,并按照 age
降序排列。
4. DCL(数据控制语言)
DCL 用于控制对数据库中数据的访问权限,包括授予和撤销用户的权限。
常见的 DCL 操作:
GRANT
:授予权限。
REVOKE
:撤销权限。
例子:
授予权限:
sql
GRANT SELECT, INSERT ON students TO 'user1'@'localhost';
这条语句授予用户 user1
在 localhost
上对 students
表的 SELECT
和 INSERT
权限。
撤销权限:
sql
REVOKE SELECT ON students FROM 'user1'@'localhost';