← 返回首页

第2章: 数据库和表操作

学习创建和管理数据库与表

数据库操作

查看所有数据库

SHOW DATABASES;

创建数据库

-- 基本语法 CREATE DATABASE database_name; -- 指定字符集 CREATE DATABASE mydb CHARACTER SET utf8mb4; -- 如果不存在则创建 CREATE DATABASE IF NOT EXISTS mydb;

选择数据库

USE database_name;

删除数据库

-- 删除数据库(谨慎使用!) DROP DATABASE database_name; -- 如果存在则删除 DROP DATABASE IF EXISTS database_name;
⚠️ 警告: DROP DATABASE 会永久删除数据库及其所有数据,操作前请务必备份!

数据库操作演示

点击按钮执行 SQL 命令

表操作

查看所有表

-- 查看当前数据库的所有表 SHOW TABLES; -- 查看表结构 DESC table_name; -- 或 DESCRIBE table_name;

创建表

-- 基本语法 CREATE TABLE table_name ( column1 datatype constraints, column2 datatype constraints, ... ); -- 示例:创建学生表 CREATE TABLE students ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(50) NOT NULL, age INT, email VARCHAR(100) UNIQUE, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP );

常用约束

约束 说明
PRIMARY KEY 主键,唯一标识每条记录
NOT NULL 不能为空
UNIQUE 值必须唯一
DEFAULT 默认值
AUTO_INCREMENT 自动递增(用于主键)
FOREIGN KEY 外键,关联其他表

修改表结构

添加列

-- 添加新列 ALTER TABLE students ADD COLUMN phone VARCHAR(20); -- 添加列并指定位置 ALTER TABLE students ADD COLUMN address VARCHAR(200) AFTER email;

修改列

-- 修改列的数据类型 ALTER TABLE students MODIFY COLUMN age TINYINT; -- 修改列名和类型 ALTER TABLE students CHANGE COLUMN email user_email VARCHAR(150);

删除列

-- 删除列 ALTER TABLE students DROP COLUMN phone;

重命名表

-- 重命名表 RENAME TABLE old_name TO new_name; -- 或 ALTER TABLE old_name RENAME TO new_name;

删除表

-- 删除表(谨慎使用!) DROP TABLE table_name; -- 如果存在则删除 DROP TABLE IF EXISTS table_name; -- 清空表数据但保留表结构 TRUNCATE TABLE table_name;

DROP vs TRUNCATE vs DELETE

命令 作用 速度 可回滚
DROP 删除表结构和数据
TRUNCATE 清空数据,保留表结构
DELETE 删除数据,可加条件

完整示例

创建一个完整的数据库和表

-- 1. 创建数据库 CREATE DATABASE IF NOT EXISTS school CHARACTER SET utf8mb4; -- 2. 使用数据库 USE school; -- 3. 创建学生表 CREATE TABLE students ( student_id INT PRIMARY KEY AUTO_INCREMENT COMMENT '学号', name VARCHAR(50) NOT NULL COMMENT '姓名', gender ENUM('男', '女') DEFAULT '男' COMMENT '性别', birth_date DATE COMMENT '出生日期', class_id INT COMMENT '班级ID', score DECIMAL(5,2) DEFAULT 0 COMMENT '成绩', created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间' ) COMMENT='学生信息表'; -- 4. 创建班级表 CREATE TABLE classes ( class_id INT PRIMARY KEY AUTO_INCREMENT, class_name VARCHAR(50) NOT NULL, teacher VARCHAR(50) ); -- 5. 查看表结构 DESC students; -- 6. 查看创建表的 SQL SHOW CREATE TABLE students;

表结构可视化

students 表结构

字段名 数据类型 约束 说明
student_id INT PRIMARY KEY, AUTO_INCREMENT 学号
name VARCHAR(50) NOT NULL 姓名
gender ENUM('男','女') DEFAULT '男' 性别
birth_date DATE - 出生日期
score DECIMAL(5,2) DEFAULT 0 成绩

注释

为数据库对象添加注释,提高可读性。

-- 创建表时添加注释 CREATE TABLE products ( id INT PRIMARY KEY COMMENT '产品ID', name VARCHAR(100) COMMENT '产品名称', price DECIMAL(10,2) COMMENT '价格' ) COMMENT='产品表'; -- 修改表注释 ALTER TABLE products COMMENT='产品信息表'; -- 修改列注释 ALTER TABLE products MODIFY COLUMN name VARCHAR(100) COMMENT '产品名称(中文)';

🎯 互动练习:SQL 命令生成器

点击按钮生成 SQL 语句

📝 章节练习

练习 1:创建数据库

创建数据库的正确语法是?




练习 2:主键约束

PRIMARY KEY 约束的作用是?




练习 3:创建表

编写 SQL 创建一个 users 表,包含 id 和 name 字段:

本章小结

← 上一章 下一章:数据类型 →