Skip to content

数据库数据操作语句

删除数据表

sql
DROP TABLE 数据表名;

修改表结构

使用 ALTER 关键字修改表结构:

  1. 修改字段属性
    sql
    ALTER TABLE 表名 MODIFY 字段名 类型 约束;
  2. 增加字段(列)
    sql
    ALTER TABLE 表名 ADD 字段名 类型(长度) 约束条件;
  3. 修改字段名
    sql
    ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型 约束条件;
  4. 删除字段
    sql
    ALTER TABLE 表名 DROP 字段名;
  5. 添加约束条件
    sql
    ALTER TABLE 表名 ADD CONSTRAINT 约束条件 字段名;
  6. 修改表名
    sql
    RENAME TABLE 旧表名 TO 新表名;
  7. 修改表编码
    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 值2SELECT * FROM students WHERE age BETWEEN 18 AND 20;
逻辑或ORSELECT * FROM students WHERE age=18 OR gender='女';
逻辑与ANDSELECT * FROM students WHERE age>18 AND gender='男';
  • 排序ORDER BY):
    • ASC:升序(默认)。
    • DESC:降序。
    sql
    SELECT * FROM students ORDER BY age ASC;   -- 年龄升序  
    SELECT * FROM students ORDER BY age DESC;  -- 年龄降序
  • 分组GROUP BY):
    sql
    SELECT gender, COUNT(*) FROM students GROUP BY gender;
  • 分组筛选HAVING):
    sql
    SELECT gender, COUNT(*) FROM students GROUP BY gender HAVING COUNT(*) > 10;
  • 分页LIMIT):
    sql
    SELECT * FROM students LIMIT 10;       -- 前10条  
    SELECT * FROM students LIMIT 5, 10;    -- 从第6条开始取10条
  • 去重DISTINCT):
    sql
    SELECT DISTINCT class FROM students;
  • 别名AS):
    sql
    SELECT name AS 姓名, age AS 年龄 FROM students;

多表查询

  1. 内连接
    sql
    SELECT * FROM 表1, 表2;  
    -- 或  
    SELECT * FROM 表1 INNER JOIN 表2 ON 表1.字段名 = 表2.字段名;
  2. 外连接
    • 左连接(以左表为主):
      sql
      SELECT * FROM 表1 LEFT JOIN 表2 ON 表1.字段 = 表2.字段;
    • 右连接(以右表为主):
      sql
      SELECT * FROM 表1 RIGHT JOIN 表2 ON 表1.字段 = 表2.字段;
  3. 子查询
    • 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 别名;

更新数据

sql
UPDATE 表名 SET 字段名1=新值, 字段名2=新值, ... WHERE 条件;

删除数据

sql
DELETE FROM 表名;              -- 删除所有数据  
DELETE FROM 表名 WHERE 条件;   -- 按条件删除

作业

  1. 创建关联表
    • 学生信息表(学号主键,身份证唯一)。
    • 学生成绩表(学号外键,参照学生信息表)。
  2. 操作数据
    • 插入学生信息和成绩数据。
    • 练习复杂查询(如多表连接、子查询)。
    • 更新和删除指定条件的数据。
    • 使用分组、排序、分页等功能优化查询结果。
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)  
);

知识如风,常伴吾身