数据库数据操作语句
删除数据表
sql
DROP TABLE 数据表名;修改表结构
使用 ALTER 关键字修改表结构:
- 修改字段属性:sql
ALTER TABLE 表名 MODIFY 字段名 类型 约束; - 增加字段(列):sql
ALTER TABLE 表名 ADD 字段名 类型(长度) 约束条件; - 修改字段名:sql
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型 约束条件; - 删除字段:sql
ALTER TABLE 表名 DROP 字段名; - 添加约束条件:sql
ALTER TABLE 表名 ADD CONSTRAINT 约束条件 字段名; - 修改表名:sql
RENAME TABLE 旧表名 TO 新表名; - 修改表编码:sql
ALTER TABLE 表名 CHARACTER SET 编码;
数据操作语句
增加数据记录
sql
INSERT INTO 表名 (字段名1, 字段名2, ...) VALUES (值1, 值2, ...);- 说明:
- 省略字段名列表时,默认插入全字段数据。
- 指定字段列表时,需按顺序提供对应值。
查询数据记录
sql
SELECT 字段名1, 字段名2, ... FROM 表名;- 通配符:
*表示查询所有字段。 - 筛选条件(
WHERE子句):
| 条件 | 语法 | 示例 |
|---|---|---|
| 模糊查询 | LIKE '模式' | SELECT * FROM students WHERE name LIKE '王%'; |
| 多值匹配 | IN (值1, 值2, ...) | SELECT * FROM students WHERE age IN (18, 20, 22); |
| 区间范围 | BETWEEN 值1 AND 值2 | SELECT * FROM students WHERE age BETWEEN 18 AND 20; |
| 逻辑或 | OR | SELECT * FROM students WHERE age=18 OR gender='女'; |
| 逻辑与 | AND | SELECT * FROM students WHERE age>18 AND gender='男'; |
- 排序(
ORDER BY):ASC:升序(默认)。DESC:降序。
sqlSELECT * FROM students ORDER BY age ASC; -- 年龄升序 SELECT * FROM students ORDER BY age DESC; -- 年龄降序 - 分组(
GROUP BY):sqlSELECT gender, COUNT(*) FROM students GROUP BY gender; - 分组筛选(
HAVING):sqlSELECT gender, COUNT(*) FROM students GROUP BY gender HAVING COUNT(*) > 10; - 分页(
LIMIT):sqlSELECT * FROM students LIMIT 10; -- 前10条 SELECT * FROM students LIMIT 5, 10; -- 从第6条开始取10条 - 去重(
DISTINCT):sqlSELECT DISTINCT class FROM students; - 别名(
AS):sqlSELECT name AS 姓名, age AS 年龄 FROM students;
多表查询
- 内连接:sql
SELECT * FROM 表1, 表2; -- 或 SELECT * FROM 表1 INNER JOIN 表2 ON 表1.字段名 = 表2.字段名; - 外连接:
- 左连接(以左表为主):sql
SELECT * FROM 表1 LEFT JOIN 表2 ON 表1.字段 = 表2.字段; - 右连接(以右表为主):sql
SELECT * FROM 表1 RIGHT JOIN 表2 ON 表1.字段 = 表2.字段;
- 左连接(以左表为主):
- 子查询:
- WHERE 子查询:sql
SELECT * FROM 表名 WHERE name = (SELECT name FROM 表2 WHERE id=1); - IN 子查询:sql
SELECT * FROM 表名 WHERE 字段 IN (SELECT 字段 FROM 表2); - FROM 子查询:sql
SELECT * FROM (SELECT * FROM 表名) AS 别名;
- WHERE 子查询:
更新数据
sql
UPDATE 表名 SET 字段名1=新值, 字段名2=新值, ... WHERE 条件;删除数据
sql
DELETE FROM 表名; -- 删除所有数据
DELETE FROM 表名 WHERE 条件; -- 按条件删除作业
- 创建关联表:
- 学生信息表(学号主键,身份证唯一)。
- 学生成绩表(学号外键,参照学生信息表)。
- 操作数据:
- 插入学生信息和成绩数据。
- 练习复杂查询(如多表连接、子查询)。
- 更新和删除指定条件的数据。
- 使用分组、排序、分页等功能优化查询结果。
sql
-- 示例:创建关联表
CREATE TABLE student_info (
student_id INT PRIMARY KEY AUTO_INCREMENT,
id_card VARCHAR(18) UNIQUE
);
CREATE TABLE student_scores (
score_id INT PRIMARY KEY AUTO_INCREMENT,
student_id INT,
FOREIGN KEY (student_id) REFERENCES student_info (student_id)
);