(三)数据表操作(1)-课后自测 卷2《数据库原理与应用技术-MySQL》(举一反三考点练)(河北省)

2025-11-03
| 2份
| 8页
| 78人阅读
| 0人下载

内容正文:

举一反三考点练 《数据库原理与应用技术-MySQL》数据表操作-课后自测 知识点一 创建数据库 外键约束中,子表的外键列可以引用主表中不是主键的列。( ) AUTO_INCREMENT列的起始值默认是 1,且每次插入时自动加 1。( ) 创建表时,若未指定存储引擎,MySQL 5.7 会默认使用MyISAM。( ) NOT NULL约束和DEFAULT约束可以同时用于同一列。( ) 创建teacher表时,若tid列为主键且自增,其列定义应为:tid INT ______ ______; 为student表的email列添加 “值唯一” 约束,列定义为:email VARCHAR(50) ______; MySQL 中,存储 “2023-10-01 15:30:00” 这类日期时间数据,适合使用的数据类型是______。 创建表时,指定表的存储引擎为InnoDB的表选项是:______ InnoDB 在company数据库中创建employee表,结构如下: 列名 数据类型 约束条件 eid 整数 主键,自增 ename 可变长度字符串(20) 非空 dept 固定长度字符串(10) 默认值为 “研发部” hire_date 日期时间 非空,默认值为当前日期时间 要求:表不存在时创建,字符集为utf8。 创建order表,结构如下: 列名 数据类型 约束条件 oid 整数 主键 pid 整数 外键,关联product表的pid列 quantity 整数 非空,默认值为 1 要求:表不存在时创建。 以下语句创建book表,isbn为唯一标识(主键),pub_date为出版日期(默认当前日期),请补全: CREATE TABLE IF NOT EXISTS book ( isbn CHAR(13) ______, bname VARCHAR(50) NOT NULL, pub_date DATE ______ ______ ); 以下语句创建student_course关联表,sid和cid为联合主键,且分别关联student表和course表的主键,请补全: CREATE TABLE student_course ( sid INT, cid INT, score INT, ______ ______ (sid, cid), ______ ______ (sid) ______ student(id), ______ ______ (cid) ______ course(id) ); 知识点二 数据类型 FLOAT和DOUBLE的区别是DOUBLE的精度更高,存储范围更大。( ) VARCHAR(5)可以存储 5 个汉字。( ) BIGINT类型可以存储所有 18 位身份证号。( ) DATE类型可以存储 “2023-13-01”这样的无效日期。( ) 同一表中,CHAR类型列的查询速度通常比VARCHAR类型快。( ) 存储 “员工入职时间”(需包含年月日时分秒,且不受时区影响),适合的数据类型是______。 TINYINT UNSIGNED的取值范围是______。 创建user表,包含以下列,需指定合适的数据类型: 列名 说明 数据类型要求 uid 用户 ID(1~10000) 最小整数类型 username 用户名(最长 15 个字符) 可变长度 reg_time 注册时间(含时分秒,默认当前时间) 受时区影响 balance 账户余额(精确到分,最大 99999.99) 精确存储 创建event表,包含以下列,需指定合适的数据类型: 列名 说明 数据类型要求 eid 活动 ID(1~1000000) 合适整数类型 title 活动标题(固定 20 个字符) 固定长度 start_date 开始日期(仅年月日) 日期类型 duration 持续时间(小时,可负数,如 - 2 表示提前 2 小时) 小范围整数 以下语句创建order表,amount存储订单总金额(精确到分,最大 999999.99),pay_time存储支付时间(含时分秒,不受时区影响),请补全数据类型: CREATE TABLE `order` ( oid INT PRIMARY KEY, amount ______, -- 订单金额(999999.99) pay_time ______ -- 支付时间(2023-11-01 10:30:00) ); 以下语句创建message表,content存储消息内容(最长 1000 字符),send_time存储发送时间(默认当前时间,受时区影响),请补全数据类型: CREATE TABLE message ( mid INT PRIMARY KEY, content ______, -- 消息内容(1000字符) send_time ______ DEFAULT CURRENT_TIMESTAMP -- 发送时间 ); 原创精品资源学科网独家享有版权,侵权必究!2 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $ 举一反三考点练 《数据库原理与应用技术-MySQL》数据表操作-课后自测 知识点一 创建数据库 外键约束中,子表的外键列可以引用主表中不是主键的列。( ) 【答案】× 【解析】外键必须引用主表的主键或唯一键,否则无法创建外键约束。 AUTO_INCREMENT列的起始值默认是 1,且每次插入时自动加 1。( ) 【答案】√ 【解析】AUTO_INCREMENT默认从 1 开始,插入新记录时若未指定值,自动在上一条最大记录值基础上加 1。 创建表时,若未指定存储引擎,MySQL 5.7 会默认使用MyISAM。( ) 【答案】× 【解析】MySQL 5.7 的默认存储引擎是InnoDB,MyISAM是早期版本的默认引擎。 NOT NULL约束和DEFAULT约束可以同时用于同一列。( ) 【答案】√ 【解析】NOT NULL确保列有值,DEFAULT在未手动赋值时提供默认值,两者可同时使用。 创建teacher表时,若tid列为主键且自增,其列定义应为:tid INT ______ ______; 【答案】PRIMARY KEY AUTO_INCREMENT 为student表的email列添加 “值唯一” 约束,列定义为:email VARCHAR(50) ______; 【答案】UNIQUE MySQL 中,存储 “2023-10-01 15:30:00” 这类日期时间数据,适合使用的数据类型是______。 【答案】DATETIME 创建表时,指定表的存储引擎为InnoDB的表选项是:______ InnoDB 【答案】ENGINE 在company数据库中创建employee表,结构如下: 列名 数据类型 约束条件 eid 整数 主键,自增 ename 可变长度字符串(20) 非空 dept 固定长度字符串(10) 默认值为 “研发部” hire_date 日期时间 非空,默认值为当前日期时间 要求:表不存在时创建,字符集为utf8。 【答案】 USE company; CREATE TABLE IF NOT EXISTS employee ( eid INT PRIMARY KEY AUTO_INCREMENT, ename VARCHAR(20) NOT NULL, dept CHAR(10) DEFAULT '研发部', hire_date DATETIME NOT NULL DEFAULT NOW() ) CHARACTER SET utf8; 创建order表,结构如下: 列名 数据类型 约束条件 oid 整数 主键 pid 整数 外键,关联product表的pid列 quantity 整数 非空,默认值为 1 要求:表不存在时创建。 【答案】 CREATE TABLE IF NOT EXISTS `order` ( oid INT PRIMARY KEY, pid INT, quantity INT NOT NULL DEFAULT 1, FOREIGN KEY (pid) REFERENCES product(pid) ); 以下语句创建book表,isbn为唯一标识(主键),pub_date为出版日期(默认当前日期),请补全: CREATE TABLE IF NOT EXISTS book ( isbn CHAR(13) ______, bname VARCHAR(50) NOT NULL, pub_date DATE ______ ______ ); 【答案】PRIMARY KEY;DEFAULT CURRENT_DATE() 以下语句创建student_course关联表,sid和cid为联合主键,且分别关联student表和course表的主键,请补全: CREATE TABLE student_course ( sid INT, cid INT, score INT, ______ ______ (sid, cid), ______ ______ (sid) ______ student(id), ______ ______ (cid) ______ course(id) ); 【答案】PRIMARY KEY;FOREIGN KEY;REFERENCES;FOREIGN KEY;REFERENCES 知识点二 数据类型 FLOAT和DOUBLE的区别是DOUBLE的精度更高,存储范围更大。( ) 【答案】√ 【解析】FLOAT是 4 字节单精度,DOUBLE是 8 字节双精度,后者精度和范围均优于前者,但均为近似值。 VARCHAR(5)可以存储 5 个汉字。( ) 【答案】√ 【解析】VARCHAR(N)中的N表示字符数,utf8编码下 1 个汉字占 3 字节,但N=5允许存储 5 个字符。 BIGINT类型可以存储所有 18 位身份证号。( ) 【答案】× 【解析】身份证号可能含字母 “X”,故需用字符串类型存储。 DATE类型可以存储 “2023-13-01”这样的无效日期。( ) 【答案】× 【解析】MySQL 对日期类型有合法性校验,无效日期会被拒绝存储。 同一表中,CHAR类型列的查询速度通常比VARCHAR类型快。( ) 【答案】√ 【解析】CHAR是固定长度,存储时无需记录长度信息,查询时定位更快;VARCHAR需额外存储长度,查询效率略低。 存储 “员工入职时间”(需包含年月日时分秒,且不受时区影响),适合的数据类型是______。 【答案】DATETIME TINYINT UNSIGNED的取值范围是______。 【答案】0~255 创建user表,包含以下列,需指定合适的数据类型: 列名 说明 数据类型要求 uid 用户 ID(1~10000) 最小整数类型 username 用户名(最长 15 个字符) 可变长度 reg_time 注册时间(含时分秒,默认当前时间) 受时区影响 balance 账户余额(精确到分,最大 99999.99) 精确存储 【答案】 CREATE TABLE user ( uid SMALLINT, -- SMALLINT范围-32768~32767,足够覆盖1~10000 username VARCHAR(15), -- 可变长度,适合用户名 reg_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, -- 受时区影响,默认当前时间 balance DECIMAL(7,2) -- 总7位(5位整数+2位小数),覆盖99999.99 ); 创建event表,包含以下列,需指定合适的数据类型: 列名 说明 数据类型要求 eid 活动 ID(1~1000000) 合适整数类型 title 活动标题(固定 20 个字符) 固定长度 start_date 开始日期(仅年月日) 日期类型 duration 持续时间(小时,可负数,如 - 2 表示提前 2 小时) 小范围整数 【答案】 CREATE TABLE event ( eid INT, -- INT范围足够覆盖1~1000000 title CHAR(20), -- 固定20字符,用CHAR start_date DATE, -- 仅年月日,用DATE duration TINYINT -- 小范围整数(含负数),TINYINT足够 ); 以下语句创建order表,amount存储订单总金额(精确到分,最大 999999.99),pay_time存储支付时间(含时分秒,不受时区影响),请补全数据类型: CREATE TABLE `order` ( oid INT PRIMARY KEY, amount ______, -- 订单金额(999999.99) pay_time ______ -- 支付时间(2023-11-01 10:30:00) ); 【答案】DECIMAL(8,2);DATETIME 【解析】amount总长度 8 位(6 位整数 + 2 位小数),用DECIMAL(8,2);pay_time需日期时间且不受时区影响,用DATETIME。 以下语句创建message表,content存储消息内容(最长 1000 字符),send_time存储发送时间(默认当前时间,受时区影响),请补全数据类型: CREATE TABLE message ( mid INT PRIMARY KEY, content ______, -- 消息内容(1000字符) send_time ______ DEFAULT CURRENT_TIMESTAMP -- 发送时间 ); 【答案】VARCHAR(1000);TIMESTAMP 【解析】content长度 1000 字符且可变,用VARCHAR(1000);send_time受时区影响且默认当前时间,用TIMESTAMP。 原创精品资源学科网独家享有版权,侵权必究!2 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $

资源预览图

(三)数据表操作(1)-课后自测 卷2《数据库原理与应用技术-MySQL》(举一反三考点练)(河北省)
1
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。