内容正文:
河北省(计算机类)对口招生
《数据库原理与应用技术-MySQL》复习讲义
模块3 MySQL数据库管理
考点 7 数据表操作
【考纲要求】
1. 掌握 MySQL常用的数据类型、掌握创建表、查看表、修改表、重命名表、复制表和删除 表的基本操作;
2. 掌握MySQL的常用数据类型:数字类型、字符串类型、日期和时间类型等;
3. 掌握建立数据表的命令:CREATE TABLE;
4. 掌握查看表结构的命令:SHOW COLUMNS 、DESCRIBE;
5. 掌握修改表结构的命令:ALTER TABLE;
6. 掌握重命名表的命令:RENAME TABLE;
7. 掌握复制表的命令:CREATE TABLE.…LIKE;
8. 掌握删除表的命令: DROP TABLE;
【知识网络】
【知识和技能要点】
一、创建数据表:CREATE TABLE
在当前数据库中新建一张数据表,自定义字段、数据类型、约束、字符集、存储引擎等属性。
1. 完整标准语法
CREATE TABLE [IF NOT EXISTS] 表名 (
字段名1 数据类型 [列级约束],
字段名2 数据类型 [列级约束],
……
)ENGINE=存储引擎 DEFAULT CHARSET=字符集 COLLATE=校对规则;
说明:
(1)IF NOT EXISTS:容错语法,表不存在则创建,存在则不报错,避免重复建表报错。
(2)表名命名规范
① 支持字母、数字、下划线、美元符号;
② 最长64个字符;
③ 禁止数字开头、禁止SQL关键字、考试优先使用英文见名知意命名;
④ 字段之间必须用英文逗号分隔,最后一个字段不能加逗号。
2.字段常用列级约束属性
建表时可对字段附加约束,规范数据完整性:
① NULL / NOT NULL:是否允许为空,NOT NULL 表示字段必须赋值、不能为空;
② DEFAULT 值:设置字段默认值,不填写数据时自动填充默认值;
③ AUTO_INCREMENT:整型专属自增,数值从1开始自动递增;
④ UNIQUE KEY:唯一约束,字段值不能重复,允许一个NULL;
⑤ PRIMARY KEY:主键约束,非空且唯一,一张表只能有一个主键;
⑥ COMMENT:字段注释,用于备注字段含义;
⑦ CHARACTER SET / COLLATE:单独设置字段字符集和校对规则。
二、查看数据表结构
数据表创建完成后,可通过命令查看表字段、类型、约束、权限、注释等结构信息,不查看表数据,只查看表结构。
1. SHOW COLUMNS 命令
(1)标准语法:SHOW [FULL] COLUMNS FROM 表名;
(2)参数说明:
① 不带FULL:只显示字段名、数据类型、是否为空、默认值、主键;
② 带FULL:额外显示字段注释、用户权限,考试常考FULL参数作用。
2.DESCRIBE 命令(简写 DESC)
(1)标准语法:
DESCRIBE 表名;
DESC 表名; (简写形式)
(2)特点:简洁查看表基础结构,是实操中最常用的查表命令。
三、修改数据表结构:ALTER TABLE
数据表创建完成后,可通过 ALTER TABLE 对表结构进行二次修改,包含:添加字段、修改字段、重命名字段、删除字段、修改表属性、设置自增初始值等。
1. 添加新字段 ADD
(1)语法:ALTER TABLE 表名 ADD 字段名 数据类型 [属性] [FIRST | AFTER 已有字段];
(2)说明:
① 不写位置参数:默认在表的最后一列添加字段;
② FIRST:在表的第一列添加;
③ AFTER 字段名:在指定字段后方添加。
2. 修改字段类型/属性 MODIFY
语法:ALTER TABLE 表名 MODIFY 字段名 新数据类型 新属性;
作用:只修改字段的数据类型、约束、属性,不修改字段名。
3. 重命名字段+修改属性 CHANGE
语法:ALTER TABLE 表名 CHANGE 旧字段名 新字段名 新数据类型 新属性;
作用:可以修改字段名,同时可修改数据类型和约束,是区别于MODIFY的核心考点。
4. 删除字段 DROP
语法:ALTER TABLE 表名 DROP 字段名;
注意:删除字段会清空该列所有数据,不可逆。
5. 修改表参数(存储引擎、字符集、自增值)
① 修改自增初始值:ALTER TABLE 表名 AUTO_INCREMENT=N;
② 修改存储引擎:ALTER TABLE 表名 ENGINE=引擎名;
③ 修改字符集:ALTER TABLE 表名 CHARSET=字符集;
④ 修改校对规则:ALTER TABLE 表名 COLLATE=校对规则;
四、重命名数据表:RENAME TABLE
1. 功能
对已存在的数据表进行整体改名,表结构、字段、数据完全不变,仅修改表名。
2. 标准语法
RENAME TABLE 旧表名 TO 新表名;
拓展:可加 AS 关键字,RENAME TABLE 旧表名 AS 新表名; 效果完全一致。
五、复制数据表结构:CREATE TABLE … LIKE
1. 功能
仅复制表结构、索引、默认值、约束,不复制表内原有数据。
2. 标准语法
CREATE TABLE 新表名 LIKE 旧表名;
3. 说明
① 复制后新表和旧表结构完全一致;
② 无任何数据,为空表;
③ 保留主键、唯一索引、自增、默认值、字符集等所有结构属性。
六、删除数据表:DROP TABLE
1. 功能
永久删除整张数据表,表结构+所有数据+索引+约束全部清空,不可恢复。
2. 标准语法
① 基础删除:DROP TABLE 表名;
② 容错删除(考试推荐):DROP TABLE IF EXISTS 表名;
3. 易错考点
① IF EXISTS:表存在则删除,不存在不报错;
② DROP TABLE 删除的是整张表,区别于ALTER TABLE DROP 删除单个字段;
③ 删除操作不可逆,无撤销、无恢复。
【练习题】
一、填空题
1.字段约束________允许字段有一个 NULL 值,但字段内容不能重复。
2.________约束代表字段的值不允许为空,插入记录必须提供有效值。
3.查看数据表结构,同时输出字段注释与权限信息,完整命令为 SHOW ________ COLUMNS FROM 表名;。
4.ALTER TABLE ADD 增加字段,想要放在某个已有字段的后面,使用________参数。
5.创建数据表避免重复建表报错的容错关键字组合是________。
二、选择题
1.在 MySQL 中,用于创建数据表的 SQL 命令是( )
A. CREATE DATABASE B. CREATE TABLE C. ALTER TABLE D. DROP TABLE
2.下列约束中,只有整型字段才能够使用的属性是( )
A. NOT NULL B. DEFAULT C. AUTO_INCREMENT D. UNIQUE KEY
3.关于 PRIMARY KEY 主键约束描述正确的是( )
A. 主键允许重复,可以为 NULL
B. 主键值不能重复,不允许为 NULL,一张表只能有一个主键
C. 一张表可以设置多个主键
D. 主键只可以设置在数字类型字段
4.在字段定义中,NOT NULL 的含义是( )
A. 字段的值必须是数字 B. 字段不允许为空值
C. 字段可以为空值 D. 字段设置默认值
5.MySQL 中,查看数据表完整结构,同时显示字段注释和用户权限,应当使用( )
A. SHOW COLUMNS FROM 表名; B. SHOW FULL COLUMNS FROM 表名;
C. DESC 表名; D. DESCRIBE 表名;
6.使用 ALTER TABLE 添加新字段,不写 FIRST 和 AFTER 参数时,新字段添加位置是( )
A. 表的第一列 B. 表的最后一列 C. 随机位置 D. 指定字段后面
7.对数据表整体进行重命名,修改表名的命令是( )
A. ALTER TABLE … RENAME B. RENAME TABLE
C. CREATE TABLE D. CHANGE TABLE
8.语句CREATE TABLE t2 LIKE t1;执行后的结果是( )
A. t2 复制 t1 的表结构以及全部数据
B. t2 仅复制 t1 表结构约束索引,不复制数据,t2 为空表
C. t2 只复制 t1 里面的数据,不复制结构
D. t1 被重命名为 t2
9.下面关于 DROP TABLE 说法正确的是( )
A. DROP TABLE 只删除表中数据,保留表结构
B. DROP TABLE 删除整张表,结构、数据、索引全部清除,不可恢复
C. DROP TABLE 可以删除表的某一个字段
D. DROP TABLE 删除后数据可以撤销恢复
10.RENAME TABLE 重命名表,用来连接新旧表名的关键字是( )
A. AS B. TO C. INTO D. SET
三、判断题
1.创建数据表时 IF NOT EXISTS 关键字作用:表存在则报错,不存在才创建。( )
2.创建表的时候,多个字段之间用英文逗号分隔,最后一个字段后面不能写逗号。( )
3.一张数据表可以设置多个 PRIMARY KEY 主键约束。( )
4.AUTO_INCREMENT 自增属性可以用于字符串类型的字段。( )
5.SHOW FULL COLUMNS FROM 表名;命令可以输出字段注释和用户权限信息。( )
6.MODIFY 子句既可以修改字段名称,又可以修改字段数据类型。( )
7.可以使用 ALTER TABLE 修改数据表的字符集、存储引擎、自增初始值。( )
8.ALTER TABLE … DROP 字段名 与 DROP TABLE 都用来删除整张数据表。( )
9.CREATE TABLE … LIKE 复制得到的新表,可以保留原表主键、索引、默认值。( )
10.CREATE TABLE t2 LIKE t1; 执行完成后 t2 表里面会拥有 t1 表全部数据。( )
四、命令题
1.创建学生表student,包含字段:sid 整型主键自增,sname 字符串不允许为空,其中sname的长度为20。(存储引擎使用 InnoDB)
2.查看 student 表结构,要求同时显示字段注释与用户权限。
3.在 student 表中,在sname字段后面增加字段sex,数据类型 VARCHAR (2),允许为空。
4.修改 student 表的 sex 字段,改为 VARCHAR (4),不允许为空,不修改字段名。
5.把数据表student重命名为stu_info。
【答案】
一、填空题
1. UNIQUE KEY(唯一约束) 2. NOT NULL 3.FULL 4.AFTER 5. IF NOT EXISTS
二、选择题
1.B 2. C 3.B 4.B 5. B 6. B 7. B 8. B 9. B 10. B
三、判断题
1. × 2.√ 3. × 4. × 5. √ 6. × 7. √ 8. × 9. √ 10.×
四、命令题
1.CREATE TABLE IF NOT EXISTS student(
sid INT PRIMARY KEY AUTO_INCREMENT,
sname VARCHAR(20) NOT NULL
)ENGINE=InnoDB;
2.SHOW FULL COLUMNS FROM student;
3.ALTER TABLE student ADD sex VARCHAR(2) NULL AFTER sname;
4.ALTER TABLE student MODIFY sex VARCHAR(4) NOT NULL;
5.RENAME TABLE student TO stu_info;
原创精品资源学科网独家享有版权,侵权必究
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$