目录
数据库操作关键字
CREATE DATABASE
- 解释:用于在 MySQL 中创建一个新的数据库。数据库是存储表、视图、存储过程等数据库对象的容器。
- 示例:
CREATE DATABASE school_db;
此语句创建了一个名为 school_db
的数据库。
USE
- 解释:用于指定当前要使用的数据库。在执行对表的操作之前,需要先选择相应的数据库。
- 示例:
USE school_db;
执行此语句后,后续的表操作将在 school_db
数据库中进行。
DROP DATABASE
- 解释:用于删除指定的数据库。删除后,该数据库及其包含的所有对象(如表、视图等)将被永久删除,操作需谨慎。
- 示例:
DROP DATABASE school_db;
表操作关键字
CREATE TABLE
- 解释:用于创建新的表。在定义表时,需要指定表名和各个列的名称、数据类型以及列的约束条件。
- 示例:
CREATE TABLE students (
student_id INT AUTO_INCREMENT PRIMARY KEY,
student_name VARCHAR(100) NOT NULL,
age INT,
gender CHAR(1),
class_id INT
);
AUTO_INCREMENT
:为student_id
列设置自动递增属性,插入新记录时该列会自动生成唯一的递增整数。PRIMARY KEY
:将student_id
列设置为主键,保证每一行记录的student_id
唯一且不为NULL
。NOT NULL
:表示student_name
列的值不能为空。
DESCRIBE
- 解释:用于查看表的结构,包括列名、数据类型、是否允许
NULL
值、默认值等信息。 - 示例:
DESCRIBE students;
ALTER TABLE
- 解释:用于修改已存在表的结构,如添加列、删除列、修改列的数据类型等。
- 示例:
- 添加列:
ALTER TABLE students ADD COLUMN email VARCHAR(100);
- 修改列的数据类型:
ALTER TABLE students MODIFY COLUMN age TINYINT;
- 删除列:
ALTER TABLE students DROP COLUMN gender;
DROP TABLE
- 解释:用于删除指定的表。表删除后,表中的所有数据和相关的索引、约束等都会被永久删除。
- 示例:
DROP TABLE students;
数据操作关键字
INSERT INTO
- 解释:用于向表中插入新记录。可以指定要插入数据的列名和对应的值。
- 示例:
INSERT INTO students (student_name, age, class_id)
VALUES ('Alice', 18, 1);
如果要插入多行数据,可以使用以下语法:
INSERT INTO students (student_name, age, class_id)
VALUES ('Bob', 19, 2), ('Charlie', 20, 1);
SELECT
- 解释:用于从表中查询数据。可以指定要查询的列、查询条件、排序方式等。
- 示例:
- 查询所有列:
SELECT * FROM students;
- 查询指定列:
SELECT student_name, age FROM students;
- 带条件查询:
SELECT * FROM students WHERE age > 18;
- 排序查询:
SELECT * FROM students ORDER BY age ASC;
- 分页查询:
SELECT * FROM students LIMIT 5 OFFSET 10;
此语句从第 11 条记录开始取 5 条记录。
UPDATE
- 解释:用于修改表中已存在的记录。需要指定要更新的表、更新的列和新值,以及更新的条件。
- 示例:
UPDATE students
SET age = age + 1
WHERE class_id = 1;
DELETE
- 解释:用于从表中删除记录。需要指定要删除记录的表和删除条件。如果不指定条件,将删除表中的所有记录。
- 示例:
DELETE FROM students WHERE student_name = 'Alice';
索引操作关键字
CREATE INDEX
- 解释:用于在表的列上创建索引,以提高查询效率。索引可以加快数据的查找速度,但会增加插入、更新和删除操作的开销。
- 示例:
CREATE INDEX idx_student_name ON students (student_name);
DROP INDEX
- 解释:用于删除已存在的索引。
- 示例:
DROP INDEX idx_student_name ON students;
事务处理关键字
START TRANSACTION
- 解释:用于开始一个新的事务。事务是一组 SQL 语句的集合,这些语句要么全部成功执行,要么全部不执行。
- 示例:
START TRANSACTION;
COMMIT
- 解释:用于提交事务。当事务中的所有 SQL 语句都成功执行后,使用
COMMIT
语句将事务中的更改永久保存到数据库中。 - 示例:
-- 开始事务
START TRANSACTION;
UPDATE accounts SET balance = balance - 100 WHERE account_id = 1;
UPDATE accounts SET balance = balance + 100 WHERE account_id = 2;
-- 提交事务
COMMIT;
ROLLBACK
- 解释:用于回滚事务。当事务中的某个 SQL 语句执行失败或出现错误时,使用
ROLLBACK
语句将事务中的所有更改撤销,使数据库恢复到事务开始前的状态。 - 示例:
-- 开始事务
START TRANSACTION;
UPDATE accounts SET balance = balance - 100 WHERE account_id = 1;
-- 模拟错误
-- 发现余额不足等情况,回滚事务
ROLLBACK;
多表操作关键字
JOIN
- 解释:用于将多个表中的数据根据指定的条件进行组合。常见的连接类型有内连接、左连接、右连接等。
- 示例:
- 内连接:
-- 假设存在 classes 表,包含 class_id 和 class_name 列
SELECT students.student_name, classes.class_name
FROM students
JOIN classes ON students.class_id = classes.class_id;
- 左连接:
SELECT students.student_name, classes.class_name
FROM students
LEFT JOIN classes ON students.class_id = classes.class_id;
- 右连接:
SELECT students.student_name, classes.class_name
FROM students
RIGHT JOIN classes ON students.class_id = classes.class_id;
以上就是 MySQL 数据库基础操作中常见关键字的详细解释和示例,通过掌握这些关键字和操作,你可以对 MySQL 数据库进行基本的管理和数据处理。