←

数据库(MySQL) · MySQL

创建数据库和表

创建数据库和表

结构化讲义

S2-2 · 4 个大纲考点讲义 · 已精编

练本节题目

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) 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 语句中没有使用____子句,则表示删除数据表全部数据。