内容正文:
举一反三考点练
《数据库原理与应用技术-MySQL》数据表操作-课后自测
知识点一 查看、修改表结构
1.SHOW COLUMNS FROM student IN school;与SHOW COLUMNS FROM school.student;功能相同。( )
2.使用ALTER TABLE添加外键时,子表外键列的类型必须与主表主键列完全一致。( )
3.DESCRIBE命令可以查看表的存储引擎和字符集信息。( )
4.ALTER TABLE t1 CHANGE c1 c2 INT;表示将c1列改名为c2,且类型改为INT。( )
5.删除表的外键约束后,子表和主表的关联数据会自动删除。( )
6.查看product表结构的DESCRIBE命令完整写法是______。
7.将user表的reg_time列(原类型DATE)修改为DATETIME类型,应使用命令:ALTER TABLE user ______ reg_time DATETIME;
8.重命名old_table表为new_table的命令是:ALTER TABLE old_table ______ ______ new_table;
9.已知book表结构如下:
字段名
类型
约束
bid
INT
主键
bname
VARCHAR(50)
非空
price
FLOAT
无
写出以下操作的 SQL 命令:
(1)查看book表的结构;
(2)将price列的类型修改为DECIMAL(6,2);
(3)为book表添加pub_date列(DATE类型,允许为NULL),添加在bname列之后。
10.已知student_course表(学生 - 课程关联表)结构如下:
字段名
类型
约束
sid
INT
非空
cid
INT
非空
写出以下操作的 SQL 命令:
(1)为student_course表添加联合主键(sid和cid);
(2)添加score列(INT类型,默认值 0,范围 0~100);
(3)删除score列。
11.以下语句用于将customer表的phone列(原名为tel,类型CHAR(11))改名为phone且类型改为VARCHAR(20),请补全:
ALTER TABLE customer ______ tel phone ______;
12.以下语句用于查看order表的结构,并为其添加pay_type列(VARCHAR(10)类型,默认值 “微信”),请补全:
______ `order`; -- 查看表结构
ALTER TABLE `order` ______ pay_type ______ DEFAULT '微信';
知识点二 表的重命名、复制与删除
1.RENAME TABLE可以跨数据库重命名表。( )
2.CREATE TABLE t2 LIKE t1;会复制t1的主键约束和自增属性。( )
3.DROP TABLE命令可以删除多个表,用空格分隔表名即可。( )
4.CREATE TABLE t2 LIKE t1;中,若t1不存在,命令会报错。( )
5.将log表重命名为system_log的命令是:______ TABLE log TO system_log;
6.复制user表的结构到user_test表,且user_test不存在时才创建,命令是:______ table if not exists user_test like user;
7.同时删除temp_a和temp_b表,且避免表不存在时报错,命令是:______ TABLE if exists temp_a, temp_b;8.重命名表的两种方式:RENAME TABLE和______ TABLE 旧表名 RENAME 新表名;
9.已知goods表存在,写出以下操作的命令:
(1)复制goods表的结构到goods_bak表;
(2)将goods_bak表重命名为goods_backup;
(3)删除goods_bak表。
10.已知order_2023和order_2024表存在,写出以下操作的命令:
(1)将order_2023重命名为order_last_year,order_2024重命名为order_this_year;
(2)复制order_this_year的结构到order_temp表;
(3)删除order_temp表。
11.以下命令用于复制student表的结构到student_copy,并删除student_copy,请补全:
DROP TABLE IF EXISTS ______;
CREATE TABLE student_copy ______ student;
12.以下命令用于将t1重命名为t1_old,t2重命名为t1,请补全:
RENAME TABLE t1 TO t1_old, ______ ______ ______;
原创精品资源学科网独家享有版权,侵权必究!2
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$
举一反三考点练
《数据库原理与应用技术-MySQL》数据表操作-课后自测
知识点一 查看、修改表结构
1.SHOW COLUMNS FROM student IN school;与SHOW COLUMNS FROM school.student;功能相同。( )
【答案】√
【解析】两种写法均用于查看school数据库中student表的结构,仅语法形式不同,功能一致。
2.使用ALTER TABLE添加外键时,子表外键列的类型必须与主表主键列完全一致。( )
【答案】√
【解析】外键关联要求子表外键列与主表主键列的数据类型、长度等完全匹配,否则无法创建外键约束。
3.DESCRIBE命令可以查看表的存储引擎和字符集信息。( )
【答案】×
【解析】DESCRIBE仅显示字段信息,表的存储引擎和字符集需通过SHOW CREATE TABLE 表名;查看。
4.ALTER TABLE t1 CHANGE c1 c2 INT;表示将c1列改名为c2,且类型改为INT。( )
【答案】√
【解析】CHANGE的语法是CHANGE 旧列名 新列名 新类型。
5.删除表的外键约束后,子表和主表的关联数据会自动删除。( )
【答案】×
【解析】删除外键约束仅移除表间的关联关系,不会删除任何数据;数据删除需通过DELETE或DROP命令。
6.查看product表结构的DESCRIBE命令完整写法是______。
【答案】DESCRIBE product;
7.将user表的reg_time列(原类型DATE)修改为DATETIME类型,应使用命令:ALTER TABLE user ______ reg_time DATETIME;
【答案】MODIFY
8.重命名old_table表为new_table的命令是:ALTER TABLE old_table ______ ______ new_table;
【答案】RENAME TO
9.已知book表结构如下:
字段名
类型
约束
bid
INT
主键
bname
VARCHAR(50)
非空
price
FLOAT
无
写出以下操作的 SQL 命令:
(1)查看book表的结构;
(2)将price列的类型修改为DECIMAL(6,2);
(3)为book表添加pub_date列(DATE类型,允许为NULL),添加在bname列之后。
【答案】
(1)DESCRIBE book;
(2)ALTER TABLE book MODIFY price DECIMAL(6,2);
(3)ALTER TABLE book ADD pub_date DATE AFTER bname;
10.已知student_course表(学生 - 课程关联表)结构如下:
字段名
类型
约束
sid
INT
非空
cid
INT
非空
写出以下操作的 SQL 命令:
(1)为student_course表添加联合主键(sid和cid);
(2)添加score列(INT类型,默认值 0,范围 0~100);
(3)删除score列。
【答案】
(1)ALTER TABLE student_course ADD PRIMARY KEY (sid, cid);
(2)ALTER TABLE student_course ADD score INT DEFAULT 0 CHECK (score BETWEEN 0 AND 100);
(3)ALTER TABLE student_course DROP score;
11.以下语句用于将customer表的phone列(原名为tel,类型CHAR(11))改名为phone且类型改为VARCHAR(20),请补全:
ALTER TABLE customer ______ tel phone ______;
【答案】CHANGE;VARCHAR(20)
12.以下语句用于查看order表的结构,并为其添加pay_type列(VARCHAR(10)类型,默认值 “微信”),请补全:
______ `order`; -- 查看表结构
ALTER TABLE `order` ______ pay_type ______ DEFAULT '微信';
【答案】DESCRIBE(或 DESC 或 SHOW COLUMNS FROM);ADD;VARCHAR (10)
知识点二 表的重命名、复制与删除
1.RENAME TABLE可以跨数据库重命名表。( )
【答案】×
2.CREATE TABLE t2 LIKE t1;会复制t1的主键约束和自增属性。( )
【答案】√
【解析】LIKE会复制源表的所有结构信息,包括主键、自增、唯一键等约束。
3.DROP TABLE命令可以删除多个表,用空格分隔表名即可。( )
【答案】×
【解析】删除多个表需用逗号分隔,如DROP TABLE t1, t2;,空格分隔会报错。
4.CREATE TABLE t2 LIKE t1;中,若t1不存在,命令会报错。( )
【答案】√
【解析】源表必须存在,否则报错。
5.将log表重命名为system_log的命令是:______ TABLE log TO system_log;
【答案】RENAME
6.复制user表的结构到user_test表,且user_test不存在时才创建,命令是:______ table if not exists user_test like user;
【答案】CREATE
7.同时删除temp_a和temp_b表,且避免表不存在时报错,命令是:______ TABLE if exists temp_a, temp_b;【答案】DROP
8.重命名表的两种方式:RENAME TABLE和______ TABLE 旧表名 RENAME 新表名;
【答案】ALTER
9.已知goods表存在,写出以下操作的命令:
(1)复制goods表的结构到goods_bak表;
(2)将goods_bak表重命名为goods_backup;
(3)删除goods_bak表。
【答案】
(1)CREATE TABLE goods_bak LIKE goods;
(2)RENAME TABLE goods_bak TO goods_backup;
(3)DROP TABLE IF EXISTS goods_bak;
10.已知order_2023和order_2024表存在,写出以下操作的命令:
(1)将order_2023重命名为order_last_year,order_2024重命名为order_this_year;
(2)复制order_this_year的结构到order_temp表;
(3)删除order_temp表。
【答案】
(1)RENAME TABLE order_2023 TO order_last_year, order_2024 TO order_this_year;
(2)CREATE TABLE order_temp LIKE order_this_year;
(3)DROP TABLE order_temp;
11.以下命令用于复制student表的结构到student_copy,并删除student_copy,请补全:
DROP TABLE IF EXISTS ______;
CREATE TABLE student_copy ______ student;
【答案】student_copy;LIKE
12.以下命令用于将t1重命名为t1_old,t2重命名为t1,请补全:
RENAME TABLE t1 TO t1_old, ______ ______ ______;
【答案】t2 TO t1
原创精品资源学科网独家享有版权,侵权必究!2
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$