S2-2.1
创建配置数据库。
精编讲义 v1#
MySQL 数据库创建、查看、切换与字符集配置命令
必记- 创建数据库:
CREATE DATABASE [IF NOT EXISTS] 数据库名 [DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci];(加IF NOT EXISTS可避免同名库已存在时报错)。 - 查看与选择数据库:
SHOW DATABASES;查看所有库;SHOW CREATE DATABASE 库名;查看创建定义;USE 数据库名;切换当前工作数据库。 - 修改数据库字符集:
ALTER DATABASE 数据库名 DEFAULT CHARACTER SET 字符集名 [COLLATE 校对规则];。
创建并切换数据库标准 SQL 示例
重点sql
CREATE DATABASE IF NOT EXISTS school_db
DEFAULT CHARACTER SET utf8mb4
COLLATE utf8mb4_general_ci;
USE school_db;随堂自测(3 题 · 共 158 道关联题)展开作答
单选2 分自测不计入学习进度
DDL语言是 SQL语言的一部分,称为数据定义语言。它的功能是_________。
判断1 分自测不计入学习进度
在数据库系统中, “元数据”属于数据库的一部分,保存在数据库中。 ( )
多选2 分自测不计入学习进度
下列正确的命令是( )
S2-2.2
使用合适的数据类型创建表。
精编讲义 v1#
MySQL 常用数据类型与六大完整性约束
必记整型
- 常用类型 / 约束关键字
TINYINT(1B)、SMALLINT(2B)、INT(4B)、BIGINT(8B)- 字节数 / 语法说明
- 可配
UNSIGNED无符号 - 高频选型与考试要点
- 年龄/状态用
TINYINT,自增主键用INT AUTO_INCREMENT
定点与浮点
- 常用类型 / 约束关键字
DECIMAL(M, D)vsFLOAT(4B)/DOUBLE(8B)- 字节数 / 语法说明
M为总位数,D为小数位- 高频选型与考试要点
- 金额、价格、成绩等精确小数首选
DECIMAL(10,2)
字符串
- 常用类型 / 约束关键字
CHAR(n)定长 vsVARCHAR(n)变长、TEXT- 字节数 / 语法说明
CHAR固定占n字符;VARCHAR按实际长度存- 高频选型与考试要点
- 身份证号(18位)/性别用
CHAR;姓名/地址用VARCHAR
日期时间
- 常用类型 / 约束关键字
DATE、TIME、DATETIME、TIMESTAMP- 字节数 / 语法说明
YYYY-MM-DD/YYYY-MM-DD HH:MM:SS- 高频选型与考试要点
- 出生日期用
DATE,下单时间用DATETIME
六大约束
- 常用类型 / 约束关键字
PRIMARY KEY、FOREIGN KEY、NOT NULL、UNIQUE、DEFAULT、AUTO_INCREMENT- 字节数 / 语法说明
- 主键非空且唯一(每表最多 1 个主键)
- 高频选型与考试要点
UNIQUE唯一约束允许多个NULL,而PRIMARY KEY绝不允许NULL
| 类别 | 常用类型 / 约束关键字 | 字节数 / 语法说明 | 高频选型与考试要点 |
|---|---|---|---|
| 整型 | TINYINT(1B)、SMALLINT(2B)、INT(4B)、BIGINT(8B) | 可配 UNSIGNED 无符号 | 年龄/状态用 TINYINT,自增主键用 INT AUTO_INCREMENT |
| 定点与浮点 | DECIMAL(M, D) vs FLOAT(4B) / DOUBLE(8B) | M 为总位数,D 为小数位 | 金额、价格、成绩等精确小数首选 DECIMAL(10,2) |
| 字符串 | CHAR(n) 定长 vs VARCHAR(n) 变长、TEXT | CHAR 固定占 n 字符;VARCHAR 按实际长度存 | 身份证号(18位)/性别用 CHAR;姓名/地址用 VARCHAR |
| 日期时间 | DATE、TIME、DATETIME、TIMESTAMP | YYYY-MM-DD / YYYY-MM-DD HH:MM:SS | 出生日期用 DATE,下单时间用 DATETIME |
| 六大约束 | PRIMARY KEY、FOREIGN KEY、NOT NULL、UNIQUE、DEFAULT、AUTO_INCREMENT | 主键非空且唯一(每表最多 1 个主键) | UNIQUE 唯一约束允许多个 NULL,而 PRIMARY KEY 绝不允许 NULL |
含主键、自增、默认、非空与外键的建表模板
必记sql
CREATE TABLE student (
sno CHAR(10) PRIMARY KEY,
sname VARCHAR(20) NOT NULL,
gender CHAR(1) DEFAULT '男',
age TINYINT UNSIGNED,
dept_id INT,
CONSTRAINT fk_stu_dept FOREIGN KEY (dept_id) REFERENCES dept(id)
);随堂自测(3 题 · 共 358 道关联题)展开作答
单选2 分自测不计入学习进度
在下列基本表的定义中,数值 5 表示 ____。 CREATE TABLE student (Sno char(5) not null unique, Sname char(2));
填空2 分自测不计入学习进度
若属性 A 为关系 R 的主键,则 A 不能为_________或重值,这一约束称为关系的实体完整性。
单选2 分自测不计入学习进度
[单选题]设有表示学生选课的三张表,学生S(学号,姓名,性别,年龄,身份证号),课程C(课号,课名),选课SC(学号,课号,成绩),则表SC的关键字为()
S2-2.3
修改表结构。
精编讲义 v1#
ALTER TABLE 修改表结构高频子句速查表(必背)
必记| 操作目的 | 标准 SQL 语法(ALTER TABLE 表名 ...) | 关键区分点 |
|---|---|---|
| 重命名表 | ALTER TABLE 旧表名 RENAME [TO] 新表名; | 也可写 RENAME TABLE 旧表名 TO 新表名; |
| 新增字段 | ALTER TABLE 表名 ADD [COLUMN] 字段名 数据类型 [约束] [FIRST | AFTER 某列]; | FIRST 插在首列,AFTER col 插在指定列后 |
| 修改类型/位置 | ALTER TABLE 表名 MODIFY [COLUMN] 字段名 新数据类型 [约束]; | MODIFY 只改数据类型或约束,不改字段名 |
| 修改字段名+类型 | ALTER TABLE 表名 CHANGE [COLUMN] 旧字段名 新字段名 新数据类型; | CHANGE 可同时改列名和类型(即使不改类型也必须重写类型) |
| 删除字段 | ALTER TABLE 表名 DROP [COLUMN] 字段名; | 直接移除该列及其全部数据 |
随堂自测(3 题 · 共 115 道关联题)展开作答
综合6 分自测不计入学习进度
基本表结构的修改用____关键字;基本表内容的修改用____关键字。
综合6 分自测不计入学习进度
使用 ALTER TABLE 修改表时,如果要修改表的名称,可以使用()
单选2 分自测不计入学习进度
[单选题]以下能够删除一列的是
S2-2.4
删除表和数据库。
精编讲义 v1#
DROP 删除库表与 TRUNCATE / DELETE 区别
必记- 删除数据库:
DROP DATABASE [IF EXISTS] 数据库名;(永久删除库及其中所有表)。 - 删除数据表:
DROP TABLE [IF EXISTS] 表名;;若表被其他表的外键引用(父表),必须先删除子表或先解除外键约束,才能删除父表。 - 三大删除命令对比:①
DROP TABLE删除表结构 + 全部数据;②TRUNCATE TABLE保留表结构、一次性清空全部数据并重置AUTO_INCREMENT(属 DDL);③DELETE FROM 表名 [WHERE ...]逐行删除满足条件的数据(属 DML,不删表结构)。
随堂自测(3 题 · 共 109 道关联题)展开作答
判断1 分自测不计入学习进度
从一个表中删除元组时,delete 和 drop table 命令可以起到同样的效果。
单选2 分自测不计入学习进度
下列选项中,是删除数据表的操作的是( )。
填空2 分自测不计入学习进度
如果 DELETE 语句中没有使用____子句,则表示删除数据表全部数据。