内容正文:
举一反三考点练
《数据库原理与应用技术-MySQL》MySQL数据表管理-课后自测
知识点一 MySQL 数据表的创建(CREATE TABLE)
1.(SQL 语句题)当前数据库为 db_school,请写出 SQL 语句创建一张名为 t_class 的班级表,要求:字段 id(INT,主键,自增)、name(VARCHAR(20),NOT NULL)、room(VARCHAR(30),默认 '待定'),引擎 InnoDB,字符集 utf8mb4。
【答案】
CREATE TABLE IF NOT EXISTS t_class(
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(20) NOT NULL,
room VARCHAR(30) DEFAULT '待定'
) ENGINE=InnoDB CHARSET=utf8mb4;
2.(SQL 语句题)写出一条 SQL,在 db_shop 库创建用户表 t_user,仅含 3 列:uid(BIGINT,主键)、email(VARCHAR(50),唯一)、balance(DECIMAL(10,2),默认 0.00)。
【答案】
USE db_shop;
CREATE TABLE t_user(
uid BIGINT PRIMARY KEY,
email VARCHAR(50) UNIQUE,
balance DECIMAL(10,2) DEFAULT 0.00
);
3.(程序填空题)补全下列建表脚本,使列 id 具备自增、无符号、主键三个属性。
CREATE TABLE t_student(
id INT __________ __________ __________,
sname VARCHAR(20) NOT NULL
);
【答案】UNSIGNED AUTO_INCREMENT PRIMARY KEY
4.(程序填空题)下列脚本末尾缺少表级属性,请补全,使字符集为 utf8mb4,校对规则 utf8mb4_general_ci,存储引擎为 InnoDB。
CREATE TABLE t_book(
bid INT PRIMARY KEY,
bname VARCHAR(100) NOT NULL
) __________=utf8mb4 __________=utf8mb4_general_ci __________=InnoDB;
【答案】CHARSET;COLLATE;ENGINE
5.(综合应用题)注意事项:MySQL 连接信息:localhost:3306,root,密码空。
请用命令行完成:
(1)创建数据库 db_library,字符集 utf8mb4;
(2)切换当前库为 db_library;
(3)创建表 t_book:
字段要求:
book_id INT 无符号 自增 主键
title VARCHAR(60) NOT NULL 注释 '书名'
author VARCHAR(30) 默认 '佚名'
price DECIMAL(6,2) 注释 '定价'
出版社字段 publisher VARCHAR(50) 允许空
引擎 InnoDB,字符集 utf8mb4。
请按顺序写出 3 步完整 SQL。
【答案】
(1)CREATE DATABASE db_library CHARACTER SET utf8mb4;
(2)USE db_library;
(3)CREATE TABLE t_book(
book_id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(60) NOT NULL COMMENT '书名',
author VARCHAR(30) DEFAULT '佚名',
price DECIMAL(6,2) COMMENT '定价',
publisher VARCHAR(50) NULL
) ENGINE=InnoDB CHARSET=utf8mb4;
知识点二 使用 Navicat 图形化创建与维护表
1.(SQL 语句题)用 Navicat 快速生成脚本:在 db_test 库已图形化建好表 t_score 后,请写出一条 SQL 查看该表的完整建表语句,以便复制到版本库。
【答案】SHOW CREATE TABLE db_test.t_score;
2.(SQL 语句题)写出一条 SQL,将图形化工具自动生成的表 t_log 重命名为 t_backup_log(提示:Navicat 底层使用 RENAME)。
【答案】RENAME TABLE t_log TO t_backup_log;
3.(程序填空题)在 Navicat 表设计器中,若要把字段 reg_time 设为“自动填入当前时间”,应在“默认”栏填写 ________。
-- 字段定义预览
`reg_time` TIMESTAMP ________
【答案】DEFAULT CURRENT_TIMESTAMP
4.(程序填空题)使用 Navicat 复制表结构(不含数据)时,其底层生成的 SQL 模板如下,请补全关键字,使脚本仅复制结构。
CREATE TABLE t_new ________ t_old;
【答案】LIKE
5.(综合应用题)场景:中职学籍系统需在 Navicat 中快速完成以下任务:
(1)在 db_student 库图形化新建表 t_major,含 id(INT 自增主键)、major_name(VARCHAR(40) 非空)、remark(TEXT 可空);
(2)把已存在表 t_class 中的字段 teacher 改为 head_teacher,类型不变;
(3)将 t_class 表结构(不含数据)导出为 SQL 文件,保存路径 D:\bak\t_class.sql。
请写出:
① 图形化操作关键步骤(简写 3 步);
② 第(2)步对应的底层 SQL(Navicat 自动生成)。
【答案】
① 步骤:
a. 右键“表”→“新建表”→填写两列并设主键→保存命名为 t_major;
b. 右键 t_class→“设计表”→选中 teacher 列→改列名为 head_teacher→保存;
c. 右键 t_class→“转储 SQL 文件”→仅结构→选择路径 D:\bak\t_class.sql→开始。
② ALTER TABLE t_class CHANGE teacher head_teacher VARCHAR(50);
知识点三 查看数据表结构(SHOW COLUMNS 与 Navicat 结构图)
1.(SQL 语句题)写出一条 SQL,查看 db_exam 库表 t_question 的所有列信息(含注释、权限)。
【答案】SHOW FULL COLUMNS FROM db_exam.t_question;
2.(SQL 语句题)仅想快速知道 t_user 表哪些列被定义为主键,请用一条 SQL 查询。
【答案】SHOW COLUMNS FROM t_user WHERE Key='PRI';
3.(程序填空题)在命令行中,若表位于非当前库,可用 ________ 语法避免 USE 切换,例如:
SHOW COLUMNS FROM ________;
【答案】库名.表名;db_shop.t_order
4.(程序填空题)在 Navicat 中打开表结构图的快捷键是:选中表后按 ________ 键。
【答案】F6
5.(综合应用题)现场排错:中职同学发现程序插入 t_student 时提示 Unknown column 'birth_date'。
任务:
(1)用一条 SQL 快速核对 t_student 的确切列名;
(2)用 Navicat 图形化查看该列是否存在并截图;
(3)若确实缺少,写出增加 birth_date DATE 列的 SQL。
请给出:
① 核对列名 SQL;
② Navicat 查看路径(简写 2 步);
③ 增加列 SQL。
【答案】
① SHOW COLUMNS FROM t_student;
② 步骤:a. 双击库→展开“表”;b. 右键 t_student→“设计表”即可看到列清单。
③ ALTER TABLE t_student ADD birth_date DATE;
原创精品资源学科网独家享有版权,侵权必究!2
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$
举一反三考点练
《数据库原理与应用技术-MySQL》MySQL数据表管理-课后自测
知识点一 MySQL 数据表的创建(CREATE TABLE)
1.(SQL 语句题)当前数据库为 db_school,请写出 SQL 语句创建一张名为 t_class 的班级表,要求:字段 id(INT,主键,自增)、name(VARCHAR(20),NOT NULL)、room(VARCHAR(30),默认 '待定'),引擎 InnoDB,字符集 utf8mb4。
2.(SQL 语句题)写出一条 SQL,在 db_shop 库创建用户表 t_user,仅含 3 列:uid(BIGINT,主键)、email(VARCHAR(50),唯一)、balance(DECIMAL(10,2),默认 0.00)。
3.(程序填空题)补全下列建表脚本,使列 id 具备自增、无符号、主键三个属性。
CREATE TABLE t_student(
id INT __________ __________ __________,
sname VARCHAR(20) NOT NULL
);
4.(程序填空题)下列脚本末尾缺少表级属性,请补全,使字符集为 utf8mb4,校对规则 utf8mb4_general_ci,存储引擎为 InnoDB。
CREATE TABLE t_book(
bid INT PRIMARY KEY,
bname VARCHAR(100) NOT NULL
) __________=utf8mb4 __________=utf8mb4_general_ci __________=InnoDB;
5.(综合应用题)注意事项:MySQL 连接信息:localhost:3306,root,密码空。
请用命令行完成:
(1)创建数据库 db_library,字符集 utf8mb4;
(2)切换当前库为 db_library;
(3)创建表 t_book:
字段要求:
book_id INT 无符号 自增 主键
title VARCHAR(60) NOT NULL 注释 '书名'
author VARCHAR(30) 默认 '佚名'
price DECIMAL(6,2) 注释 '定价'
出版社字段 publisher VARCHAR(50) 允许空
引擎 InnoDB,字符集 utf8mb4。
请按顺序写出 3 步完整 SQL。
知识点二 使用 Navicat 图形化创建与维护表
1.(SQL 语句题)用 Navicat 快速生成脚本:在 db_test 库已图形化建好表 t_score 后,请写出一条 SQL 查看该表的完整建表语句,以便复制到版本库。
2.(SQL 语句题)写出一条 SQL,将图形化工具自动生成的表 t_log 重命名为 t_backup_log(提示:Navicat 底层使用 RENAME)。
3.(程序填空题)在 Navicat 表设计器中,若要把字段 reg_time 设为“自动填入当前时间”,应在“默认”栏填写 ________。
-- 字段定义预览
`reg_time` TIMESTAMP ________
4.(程序填空题)使用 Navicat 复制表结构(不含数据)时,其底层生成的 SQL 模板如下,请补全关键字,使脚本仅复制结构。
CREATE TABLE t_new ________ t_old;
5.(综合应用题)场景:中职学籍系统需在 Navicat 中快速完成以下任务:
(1)在 db_student 库图形化新建表 t_major,含 id(INT 自增主键)、major_name(VARCHAR(40) 非空)、remark(TEXT 可空);
(2)把已存在表 t_class 中的字段 teacher 改为 head_teacher,类型不变;
(3)将 t_class 表结构(不含数据)导出为 SQL 文件,保存路径 D:\bak\t_class.sql。
请写出:
① 图形化操作关键步骤(简写 3 步);
② 第(2)步对应的底层 SQL(Navicat 自动生成)。
知识点三 查看数据表结构(SHOW COLUMNS 与 Navicat 结构图)
1.(SQL 语句题)写出一条 SQL,查看 db_exam 库表 t_question 的所有列信息(含注释、权限)。
2.(SQL 语句题)仅想快速知道 t_user 表哪些列被定义为主键,请用一条 SQL 查询。
3.(程序填空题)在命令行中,若表位于非当前库,可用 ________ 语法避免 USE 切换,例如:
SHOW COLUMNS FROM ________;
4.(程序填空题)在 Navicat 中打开表结构图的快捷键是:选中表后按 ________ 键。
5.(综合应用题)现场排错:中职同学发现程序插入 t_student 时提示 Unknown column 'birth_date'。
任务:
(1)用一条 SQL 快速核对 t_student 的确切列名;
(2)用 Navicat 图形化查看该列是否存在并截图;
(3)若确实缺少,写出增加 birth_date DATE 列的 SQL。
请给出:
① 核对列名 SQL;
② Navicat 查看路径(简写 2 步);
③ 增加列 SQL。
原创精品资源学科网独家享有版权,侵权必究!2
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$