一、数据库操作
- 创建数据库:
CREATE DATABASE database_name;
- 选择数据库:
USE database_name;
- 删除数据库:
DROP DATABASE database_name;
二、表操作
- 创建表:
CREATE TABLE table_name (column1 datatype constraint, column2 datatype constraint,...);
例如:CREATE TABLE students (id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(50), age INT);
- 查看表结构:
DESC table_name;
- 删除表:
DROP TABLE table_name;
- 插入数据:
INSERT INTO table_name (column1, column2,...) VALUES (value1, value2,...);
例如:INSERT INTO students (name, age) VALUES ('Tom', 20);
- 更新数据:
UPDATE table_name SET column1 = value1, column2 = value2,... WHERE condition;
例如:UPDATE students SET age = 21 WHERE name = 'Tom';
- 删除数据:
DELETE FROM table_name WHERE condition;
例如:DELETE FROM students WHERE age < 18;
修改表中字段的数据类型
ALTER TABLE sc MODIFY COLUMN grade NUMERIC;
改变表中的数据用update
UPDATE course SET ccredit = 10 WHERE cno = '003';
三、查询语句
- 基本查询:
SELECT column1, column2,... FROM table_name;
例如:SELECT name, age FROM students;
- 条件查询:
SELECT * FROM table_name WHERE condition;
例如:SELECT * FROM students WHERE age > 18;
- 排序查询:
SELECT * FROM table_name ORDER BY column_name ASC/DESC;
例如:SELECT * FROM students ORDER BY age ASC;
- 限制查询结果数量:
SELECT * FROM table_name LIMIT offset, row_count;
例如:SELECT * FROM students LIMIT 10, 5;
(从第 10 行开始取 5 条记录) - 聚合函数查询:
- 常见聚合函数有
COUNT
(计数)、SUM
(求和)、AVG
(平均值)、MAX
(最大值)、MIN
(最小值)。
例如:SELECT COUNT(*) FROM table_name;
、SELECT SUM(column_name) FROM table_name;
- 常见聚合函数有
- 分组查询:
SELECT column1, aggregate_function(column2) FROM table_name GROUP BY column1;
例如:SELECT age, COUNT(*) FROM students GROUP BY age;
- 多表连接查询:
- 内连接(
INNER JOIN
):SELECT * FROM table1 INNER JOIN table2 ON table1.column = table2.column;
- 左连接(
LEFT JOIN
):SELECT * FROM table1 LEFT JOIN table2 ON table1.column = table2.column;
- 右连接(
RIGHT JOIN
):SELECT * FROM table1 RIGHT JOIN table2 ON table1.column = table2.column;
- 内连接(
四、索引操作
- 创建索引:
CREATE INDEX index_name ON table_name (column_name);
- 删除索引:
DROP INDEX index_name ON table_name;
五、视图操作
- 创建视图:
CREATE VIEW view_name AS SELECT column1, column2,... FROM table_name WHERE condition;
- 删除视图:
DROP VIEW view_name;
六、存储过程和函数
- 创建存储过程:
DELIMITER // CREATE PROCEDURE procedure_name(parameter_list) BEGIN -- SQL statements END // DELIMITER ;
- 调用存储过程:
CALL procedure_name(parameter_values);
- 创建函数:
DELIMITER // CREATE FUNCTION function_name(parameter_list) RETURNS return_datatype BEGIN -- SQL statements RETURN result; END // DELIMITER ;
- 调用函数:
SELECT function_name(parameter_values);
七、数据类型
- 数值类型:
INT
:整数类型,例如id INT
。FLOAT
:单精度浮点数。DOUBLE
:双精度浮点数。DECIMAL(m,n)
:定点数,其中m
是总位数,n
是小数位数。
- 字符串类型:
VARCHAR(length)
:可变长度字符串,需要指定最大长度。CHAR(length)
:定长字符串,长度固定。TEXT
:用于存储较长的文本数据。
- 日期和时间类型:
DATE
:存储日期,格式为 YYYY-MM-DD。TIME
:存储时间,格式为 HH:MM:SS。DATETIME
:存储日期和时间,格式为 YYYY-MM-DD HH:MM:SS。
八、约束条件
PRIMARY KEY
:主键约束,用于唯一标识表中的每一行。
例如:id INT PRIMARY KEY
。FOREIGN KEY
:外键约束,用于建立表之间的关系。
例如:student_id INT, FOREIGN KEY (student_id) REFERENCES students(id)
。UNIQUE
:唯一约束,确保列中的值是唯一的。
例如:email VARCHAR(50) UNIQUE
。NOT NULL
:非空约束,要求列不能为空。
例如:name VARCHAR(50) NOT NULL
。DEFAULT
:默认值约束,为列指定默认值。
例如:age INT DEFAULT 18
。
1. 数据定义语言(DDL - Data Definition Language)
-
CREATE: 用于创建数据库、表、视图、索引等数据库对象。
-
示例:
CREATE TABLE employees (id INT, name VARCHAR(100));
-
-
ALTER: 用于修改现有数据库对象的结构,如添加、删除或修改列。
-
示例:
ALTER TABLE employees ADD COLUMN email VARCHAR(100);
-
-
DROP: 用于删除数据库对象,如表、视图、索引等。
-
示例:
DROP TABLE employees;
-
-
TRUNCATE: 用于清空表中的所有数据,但保留表结构。
-
示例:
TRUNCATE TABLE employees;
-
-
RENAME: 用于重命名数据库对象,如表、列等。
-
示例:
RENAME TABLE old_name TO new_name;
-
2. 数据操作语言(DML - Data Manipulation Language)
-
SELECT: 用于从数据库中查询数据。
-
示例:
SELECT * FROM employees WHERE id = 1;
-
-
INSERT: 用于向表中插入新数据。
-
示例:
INSERT INTO employees (id, name) VALUES (1, 'John Doe');
-
-
UPDATE: 用于更新表中的现有数据。
-
示例:
UPDATE employees SET name = 'Jane Doe' WHERE id = 1;
-
-
DELETE: 用于从表中删除数据。
-
示例:
DELETE FROM employees WHERE id = 1;
-
3. 数据控制语言(DCL - Data Control Language)
-
GRANT: 用于授予用户或角色特定的权限。
-
示例:
GRANT SELECT, INSERT ON employees TO 'user';
-
-
REVOKE: 用于撤销用户或角色的特定权限。
-
示例:
REVOKE INSERT ON employees FROM 'user';
-
4. 事务控制语言(TCL - Transaction Control Language)
-
COMMIT: 用于提交当前事务,使其对数据库的更改永久化。
-
示例:
COMMIT;
-
-
ROLLBACK: 用于回滚当前事务,撤销对数据库的更改。
-
示例:
ROLLBACK;
-
-
SAVEPOINT: 用于在事务中设置一个保存点,以便在需要时可以回滚到该点。
-
示例:
SAVEPOINT my_savepoint;
-
-
SET TRANSACTION: 用于设置事务的特性,如隔离级别。
-
示例:
SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
-
5. 数据查询语言(DQL - Data Query Language)
-
SELECT: 用于从数据库中查询数据。虽然SELECT通常被归类为DML,但在某些分类中,它也被单独归类为DQL。
-
示例:
SELECT * FROM employees;
-
6. 数据管理语言(DAL - Data Administration Language)
-
这类指令通常用于数据库管理,包括备份、恢复、优化等操作。
-
BACKUP: 用于备份数据库。
-
示例:
BACKUP DATABASE my_db TO DISK = 'C:\backup\my_db.bak';
-
-
RESTORE: 用于恢复数据库。
-
示例:
RESTORE DATABASE my_db FROM DISK = 'C:\backup\my_db.bak';
-
7. 系统控制语言(SCL - System Control Language)
-
这类指令用于控制数据库系统的整体行为,如启动、停止、配置等。
-
START: 用于启动数据库服务。
-
示例:
START DATABASE SERVICE;
-
-
STOP: 用于停止数据库服务。
-
示例:
STOP DATABASE SERVICE;
-
8. 数据控制语言(DCL - Data Control Language)
-
GRANT: 用于授予用户或角色特定的权限。
-
示例:
GRANT SELECT, INSERT ON employees TO 'user';
-
-
REVOKE: 用于撤销用户或角色的特定权限。
-
示例:
REVOKE INSERT ON employees FROM 'user';
-
9. 数据控制语言(DCL - Data Control Language)
-
GRANT: 用于授予用户或角色特定的权限。
-
示例:
GRANT SELECT, INSERT ON employees TO 'user';
-
-
REVOKE: 用于撤销用户或角色的特定权限。
-
示例:
REVOKE INSERT ON employees FROM 'user';
-
10. 数据控制语言(DCL - Data Control Language)
-
GRANT: 用于授予用户或角色特定的权限。
-
示例:
GRANT SELECT, INSERT ON employees TO 'user';
-
-
REVOKE: 用于撤销用户或角色的特定权限。
-
示例:
REVOKE INSERT ON employees FROM 'user';
-