(三)数据表操作(1)-讲义《数据库原理与应用技术-MySQL》(举一反三考点练)(河北省)

2025-11-03
| 8页
| 122人阅读
| 0人下载
精品

内容正文:

举一反三考点练 《数据库原理与应用技术-MySQL》数据表操作-讲义 1.掌握MySQL常用的数据类型; 2.掌握MySQL的常用数据类型:数字类型、字符串类型、日期和时间类型等; 3.掌握建立数据表的命令:CREATE TABLE; 知识点一 建立数据表 数据表是存储数据的基本单位,CREATE TABLE命令用于在指定数据库中创建新表。 1. 基本语法 CREATE TABLE [IF NOT EXISTS] 表名 ( 列名1 数据类型 [约束条件], 列名2 数据类型 [约束条件], ... [表级约束条件] ) [表选项]; 2. 关键参数说明 IF NOT EXISTS:可选参数,若表已存在则不报错。 表名与列名:需遵循命名规则,列名需唯一且有明确含义。 数据类型:指定列存储的数据类型,常用类型如下: 数值型:INT、FLOAT、DOUBLE、DECIMAL(M,D)。 字符串型:CHAR(N)、VARCHAR(N)、TEXT。 日期时间型:DATE、TIME、DATETIME。 约束条件:限制列的取值,确保数据完整性,分为列级约束和表级约束: 列级约束(针对单个列): NOT NULL:列值不可为NULL,必须赋值。 PRIMARY KEY:主键(唯一标识记录,值唯一且非NULL,一个表只能有一个主键)。 UNIQUE:列值唯一(可含NULL,但NULL只允许出现一次)。 DEFAULT:默认值(未赋值时自动使用默认值)。 AUTO_INCREMENT:自增(仅用于整数型主键,插入时自动 + 1,需配合PRIMARY KEY使用)。 表级约束(针对多个列,通常用于多列联合主键或外键): PRIMARY KEY (列名1, 列名2):多列联合主键(组合值唯一)。 FOREIGN KEY (列名) REFERENCES 主表名(主表列名):外键(关联另一表的主键,确保数据一致性)。 表选项:指定表的全局设置,常用: ENGINE:存储引擎(MySQL 5.7 默认InnoDB,支持事务和外键;MyISAM不支持事务)。 CHARACTER SET:表的默认字符集。 3. 注意事项 创建表前需先使用USE 数据库名;。 主键与AUTO_INCREMENT:自增列必须是主键或唯一键,且通常为INT类型。 外键关联:子表外键的类型必须与主表主键完全一致,主表需先存在。 1.在school数据库中创建名为student的数据表,结构如下: 列名 数据类型 约束条件 id 整数 主键,自增 name 可变长度字符串(最长 20) 非空 gender 固定长度字符串(1) 默认值为 “男” birth 日期 允许为 NULL 要求:若表已存在则不创建,存储引擎为InnoDB。 【答案】 USE school; -- 切换到目标数据库 CREATE TABLE IF NOT EXISTS student ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(20) NOT NULL, gender CHAR(1) DEFAULT '男', birth DATE ) ENGINE=InnoDB; 1.(填空题)CREATE TABLE语句中,用于指定列值不可为空的约束是______。 【答案】NOT NULL 【解析】NOT NULL是列级约束,强制列必须有值,插入或更新时若为空则报错。 2.(判断题)一个数据表可以有多个主键。( ) 【答案】× 【解析】一个表只能有一个主键,PRIMARY KEY约束唯一标识表中的记录,多列联合主键需用表级约束定义,但仍视为一个主键。 3.(单项选择题)下列数据类型中,适合存储 “学生姓名”(长度不确定,最长不超过 10 个汉字)的是( ) A. CHAR(10) B. VARCHAR(20) C. INT D. DATE 【答案】B 【解析】1 个汉字在utf8字符集下占 3 字节,10 个汉字需至少 30 字节,但VARCHAR(20)表示最大 20 字符,适合存储可变长度的字符串;A 为固定长度,浪费空间;C、D 不适合存储字符串。 4.(读程序填空题)以下语句创建score表,id为主键且自增,stu_id关联student表的id,请补全外键约束: CREATE TABLE score ( id INT PRIMARY KEY AUTO_INCREMENT, stu_id INT, score DECIMAL(5,2), ______ ______ (stu_id) ______ student(id) ); 【答案】FOREIGN KEY;REFERENCES 【解析】外键约束语法为FOREIGN KEY (子表列) REFERENCES 主表名(主表列),确保stu_id的值必须是student表中id已存在的值。 1.(单项选择题)下列关于AUTO_INCREMENT的说法,正确的是( ) A. 可用于VARCHAR类型列 B. 必须配合PRIMARY KEY或UNIQUE使用 C. 自增起始值不能修改 D. 插入时必须手动指定值 【答案】B 【解析】AUTO_INCREMENT仅适用于整数型列,需为主键或唯一键;A 错误(不支持字符串),C 错误(可通过ALTER TABLE修改起始值),D 错误(插入时可省略,自动增长)。 2.(判断题)DEFAULT '2000-01-01'表示当列未赋值时,自动填入默认日期 “2000-01-01”,该约束可用于DATE类型列。( ) 【答案】√ 【解析】DEFAULT约束可指定默认值,日期型列的默认值需符合DATE类型格式(YYYY-MM-DD),因此正确。 3.(填空题)创建表时,若需指定表的默认字符集为utf8,应在表选项中添加:______ utf8。 【答案】CHARACTER SET(或 CHARSET) 【解析】CHARACTER SET(简写CHARSET)用于指定表的字符集,确保中文等字符正常存储。 4.(SQL 语句题)创建名为course的数据表,结构如下: 列名 数据类型 约束条件 cid 整数 主键 cname 可变长度字符串(30) 非空,值唯一 credit 整数 默认值为 3 要求:表不存在时创建。 【答案】 CREATE TABLE IF NOT EXISTS course ( cid INT PRIMARY KEY, cname VARCHAR(30) NOT NULL UNIQUE, credit INT DEFAULT 3 ); CREATE TABLE [IF NOT EXISTS] 表名 ( 列名1 数据类型 [约束条件], 列名2 数据类型 [约束条件], ... [表级约束条件] ) [表选项]; 知识点二 数据类型 1. 数值型 用于存储数字,根据精度和范围分为整数型、浮点型和定点型。 类型分类 具体类型 说明(范围 / 特点) 整数型 TINYINT 1 字节,范围:-128~127(有符号)或 0~255(无符号,需加UNSIGNED) SMALLINT 2 字节,范围:-32768~32767(有符号) 存储较小整数(如年龄) INT(INTEGER) 4 字节,范围:-2147483648~2147483647(有符号) 存储普通整数(如 ID、数量) BIGINT 8 字节,范围更大(适用于超大数据,如身份证号需用字符串存储,因其超过 INT 范围) 存储极大整数(如记录数) 浮点型(近似值) FLOAT(M,D) 4 字节,单精度浮点数,M总位数,D小数位(精度有限,可能有误差) DOUBLE(M,D) 8 字节,双精度浮点数,精度高于FLOAT,但仍可能有误差 较高精度的近似计算 定点型(精确值) DECIMAL(M,D) M总位数(1~65),D小数位(0~30),存储精确值(无误差) 2. 字符串型 用于存储文本数据,根据长度和存储方式分为固定长度、可变长度和大文本型。 类型 说明(长度 / 特点) 适用场景 CHAR(N) 固定长度字符串,N为字符数(1~255),不足补空格,查询快但可能浪费空间 长度固定的数据(如手机号 11 位、性别) VARCHAR(N) 可变长度字符串,N为最大字符数(1~65535),按实际长度存储,节省空间 长度不固定的文本(如姓名、地址) TEXT 长文本(最大 65535 字节),不适合作为主键或索引 长文本内容(如文章、备注) LONGTEXT 极大文本(最大 4GB),存储超长篇内容 超长文本(如日志、文档) 3. 日期时间型 用于存储日期和时间,格式固定,便于时间计算和排序。 类型 格式 范围 特点 DATE YYYY-MM-DD 1000-01-01 ~ 9999-12-31 仅存储日期(年 - 月 - 日) TIME HH:MM:SS -838:59:59 ~ 838:59:59 仅存储时间(时:分: 秒),可表示负数(如时间间隔) DATETIME YYYY-MM-DD HH:MM:SS 1000-01-01 00:00:00 ~ 9999-12-31 23:59:59 存储日期 + 时间,不受时区影响,默认值需手动指定 TIMESTAMP YYYY-MM-DD HH:MM:SS 1970-01-01 00:00:01 ~ 2038-01-19 03:14:07 存储日期 + 时间,受时区影响,默认值为当前时间(CURRENT_TIMESTAMP) 4. 注意事项 字符型的N表示 “字符数”(非字节数),如VARCHAR(20)可存储 20 个汉字(utf8编码下占 60 字节)。 浮点型(FLOAT/DOUBLE)适合非精确场景,定点型(DECIMAL)适合需精确计算的场景。 TIMESTAMP范围较小,仅到 2038 年,长期数据建议用DATETIME。 某电商平台需存储商品价格(精确到分, “99.99 元”),下列数据类型中最适合的是( ) A. FLOAT(5,2) B. DOUBLE(5,2) C. DECIMAL(5,2) D. INT 【答案】C 1.(判断题)CHAR(10)和VARCHAR(10)都能存储最多 10 个字符,因此在任何场景下使用效果相同。( ) 【答案】× 【解析】CHAR(10)是固定长度,无论实际存储多少字符,均占用 10 个字符的空间,查询速度快;VARCHAR(10)是可变长度,按实际字符数 + 1 字节存储,节省空间。适合长度固定的数据用CHAR,长度不固定的用VARCHAR,场景不同效果不同。 2.(填空题)存储 “用户注册时间”(需包含年月日时分秒,且随时区自动调整),适合使用的数据类型是______。 【答案】TIMESTAMP 【解析】TIMESTAMP存储日期时间,受时区影响,可自动根据时区调整显示值,适合记录事件发生时间;DATETIME不受时区影响,适合固定时间。 3.(单项选择题)下列数据类型中,适合存储 “身份证号”的是( ) A. INT B. BIGINT C. CHAR(18) D. VARCHAR(18) 【答案】C 【解析】身份证号是 18 位数字,但本质是字符串。CHAR(18)为固定长度,适合存储长度固定的身份证号;INT和BIGINT无法存储超过自身范围的数字;VARCHAR(18)虽可存储,但身份证号长度固定,CHAR查询效率更高。 4.(读程序填空题)以下语句创建student表,age存储学生年龄(范围 0~120),birth存储出生日期(年月日),请补全数据类型: CREATE TABLE student ( id INT PRIMARY KEY, age ______, -- 存储年龄 birth ______ -- 存储出生日期 ); 【答案】TINYINT UNSIGNED;DATE 【解析】年龄 0~120 是小范围正整数,TINYINT UNSIGNED(无符号)范围 0~255,足够存储;出生日期仅需年月日,DATE类型格式为YYYY-MM-DD,适合存储。 1.(单项选择题)TEXT类型与VARCHAR(65535)的主要区别是( ) A. TEXT存储更长的文本 B. TEXT不能用于WHERE条件查询 C. TEXT不支持默认值 D. TEXT占用空间更小 【答案】C 【解析】TEXT和VARCHAR(65535)最大存储长度相近,但TEXT不支持DEFAULT约束,而VARCHAR可以;A 错误(长度相近),B 错误(TEXT可用于查询),D 错误(TEXT存储效率略低)。 2.(判断题)DATETIME和TIMESTAMP都能存储日期和时间,且两者的取值范围相同。( ) 【答案】× 【解析】DATETIME范围是 1000-01-01 00:00:00 ~ 9999-12-31 23:59:59,TIMESTAMP范围是 1970-01-01 00:00:01 ~ 2038-01-19 03:14:07,范围不同。 3.(填空题)DECIMAL(8,2)表示该列最多可存储______位数字,其中小数部分占______位。 【答案】8;2 【解析】DECIMAL(M,D)中,M是总位数(整数 + 小数),D是小数位数,因此DECIMAL(8,2)可存储如 123456.78(6 位整数 + 2 位小数,共 8 位)。 4.(SQL 语句题)创建product表,包含以下列,需指定合适的数据类型: 列名 说明 数据类型选择要求 pid 商品 ID(整数,范围 1~100000) 选择最小合适的整数类型 pname 商品名称(最长 50 个字符) 可变长度,节省空间 price 商品价格(精确到分,最大 9999.99) 精确存储,无误差 stock 库存数量(0~1000) 无符号整数,范围足够 【答案】 CREATE TABLE product ( pid INT, -- INT范围足够覆盖1~100000 pname VARCHAR(50), -- 可变长度,适合名称 price DECIMAL(6,2), -- 总6位(4位整数+2位小数),覆盖9999.99 stock SMALLINT UNSIGNED -- 无符号SMALLINT范围0~65535,足够存储1000 ); 数值型:用于存储数字,根据精度和范围分为整数型、浮点型和定点型。 字符串型:用于存储文本数据,根据长度和存储方式分为固定长度、可变长度和大文本型。 日期时间型:用于存储日期和时间,格式固定,便于时间计算和排序。 原创精品资源学科网独家享有版权,侵权必究!2 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $

资源预览图

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