内容正文:
编写说明:2027版山东省春季高考统一考试软件与应用技术类《考纲百套卷》,依据《软件与应用技术类专业知识考试标准》编写。本专辑涵盖三个部分,第一部分为知识训练卷,第二部分为专题训练卷,第三部分为课程综合卷。本专辑共85份试卷,其中知识训练卷48份、专题训练卷25份、课程综合卷12份。
本试卷是第59卷,为专题训练卷,按“数据库和表”专题范围和要求编写。具体内容为:(1)了解数据库设计的步骤。(2)掌握数据库和表的创建;(3)理解数据表中的数据类型。(4)掌握表结构修改、字段属性的设置;(5)掌握记录的添加、修改、删除等操作。(6)掌握数据表数据的排序和筛选;(7)掌握记录的索引。(8)掌握表间关系的建立与维护。
山东省春季高考统一考试
软件与应用技术类《考纲百套卷》
第59卷 专题训练——数据库和表
(考试时间:45分钟 满分:100分)
一、选择题(共25题,每题2分,共50分)
1.某校准备建立成绩管理数据库,开始建表前最应先完成的工作是( )
A.录入学生基础数据
B.设计表格打印格式
C.设置账户访问权限
D.分析对象与需求
【答案】D
【解析】数据库创建应先分析业务对象、数据内容和使用要求,为表结构设计提供依据。
2.在数据库设计中,把学生、课程及选课过程抽象出来,主要属于( )
A.数据录入
B.文件备份
C.概念设计
D.界面美化
【答案】C
【解析】概念设计关注现实业务中的对象、特征和对象之间的联系,形成概念模型。
3.根据概念模型确定数据表、字段和主键,通常属于( )阶段
A.逻辑设计
B.需求调查
C.数据清理
D.结果打印
【答案】A
【解析】逻辑设计把概念模型转换为表、字段、主键等数据库逻辑结构。
4.没有可直接套用的模板时,在Access中建立新库较适合选择( )
A.已有查询对象
B.导入报表对象
C.空白数据库
D.打印向导工具
【答案】C
【解析】没有现成结构可复用时,应新建空白数据库,再按业务需求创建表和其他对象。
5.保存新建数据库时,较合理的做法是( )
A.记录文件图标颜色
B.保存到临时剪贴板
C.覆盖任意旧数据库
D.按名称保存数据库
【答案】D
【解析】数据库名称和保存位置应清晰、稳定,便于后续打开、备份和维护。
6.要建立员工表的字段结构,通常使用Access的哪个视图( )
A.数据表视图
B.表设计视图
C.报表视图
D.窗体视图
【答案】B
【解析】表设计视图用于建立字段结构,可设置字段名称、数据类型和主键。
7.设计数据表字段名称时,较合适的原则是( )
A.所有字段都使用同一名称
B.只用数字代替字段含义
C.名称能够反映数据含义
D.字段名称完全随机生成
【答案】C
【解析】清晰的字段名称有助于理解表结构、录入数据和后续维护。
8.学生编号由字母和数字组成且不参与计算,创建字段时较适合选择( )
A.短文本类型
B.日期时间类型
C.货币类型
D.是/否类型
【答案】A
【解析】编号虽然含有数字,但本质是标识信息,不参与数值运算,适合使用短文本类型。
9.将学生编号设置为主键,主要是为了( )
A.唯一识别记录
B.自动汇总成绩
C.替代数据库文件名
D.改变表中字段顺序
【答案】A
【解析】主键用于唯一标识表中的记录,能够避免标识值重复。
10.报名表中学生编号和课程编号合起来才能唯一确定一条记录,适合设置为( )
A.普通备注
B.单个显示字段
C.打印标题
D.组合主键
【答案】D
【解析】两个字段共同确定一条报名记录时,可将它们设置为组合主键。
11.在录入大量数据前先保存表结构,主要可以( )
A.先统一字段规则
B.提高屏幕显示亮度
C.替代所有数据备份
D.取消表中唯一约束
【答案】A
【解析】先确定字段、类型和主键等规则,再录入数据,有助于保持数据格式一致。
12.在表设计视图中完成字段设置后,下一项合理操作是( )
A.关闭计算机电源
B.保存表并命名
C.删除刚建的数据库
D.重装打印驱动
【答案】B
【解析】字段设计完成后应保存表结构,并使用能够反映业务含义的表名。
13.Access数据表视图更适合进行的操作是( )
A.查看与编辑记录
B.设计网络路由
C.调整处理器频率
D.制作视频效果
【答案】A
【解析】数据表视图直接呈现记录,适合进行记录的输入、查看和修改。
14.学生、课程和报名信息相互独立又存在联系时,较合理的建表方式是( )
A.把三类内容混在一个字段中
B.只建立报名表而不保存编号
C.为每名学生单独建立数据库
D.分别建立相应的数据表
【答案】D
【解析】不同业务对象应分别建表,报名表保存学生和课程的标识以及报名本身的信息。
15.建好数据表并录入少量样例后,首先应检查( )
A.核对数据库名称、路径和备份
B.核对表名、字段顺序和格式
C.核对字段类型、主键和记录
D.核对记录数量、编号和排序
【答案】C
【解析】样例记录可用于验证字段类型、主键约束和数据保存结果是否符合设计。
16.表中已有记录但业务新增一个联系电话字段时,较合适的处理是( )
A.把旧记录全部复制到文本框
B.删除原表后只保留新字段
C.修改数据库文件扩展名
D.在表设计中增加字段并保存
【答案】D
【解析】业务字段发生变化时,应在表设计中修改结构,并根据需要补充已有记录。
17.下列较符合Access数据库创建顺序的是( )
A.先分析再建库建表
B.先录入再决定字段
C.先打印再删除数据表
D.先修改字体再设主键
【答案】A
【解析】通常应先分析需求并设计结构,再建立数据库和表,最后录入并验证数据。
18.当业务表结构已经明确且没有可用模板时,选择空白数据库的主要原因是( )
A.自动生成业务数据
B.无需设置任何主键
C.便于按需建对象
D.替代后续数据校验
【答案】C
【解析】空白数据库不会预设不需要的业务结构,便于按实际需求建立表和其他对象。
19.某机构要管理员工、部门和任职记录,较合理的表方案是( )
A.信息均放员工姓名字段
B.员工、部门、任职分表
C.只建部门表保存信息
D.每部门建独立数据库
【答案】B
【解析】员工、部门和任职记录属于不同业务内容,应分表保存,并在任职表中保存相关编号。
20.完成一个课程报名数据库的创建,较完整的方案是( )
A.先录入数据后定字段
B.分析需求后建表并验证
C.只建报表不建数据表
D.先删数据再改打印设置
【答案】B
【解析】完整流程应包括需求分析、结构设计、建库建表、设置主键、录入数据和结果验证。
21.短文本字段的“字段大小”属性主要用于( )
A.规定记录的排序方向和方式
B.设置数据表使用的主键名称
C.限制可保存的字符数
D.改变日期字段的显示格式
【答案】C
【解析】短文本字段的字段大小用于限制该字段允许保存的字符数。
22.已有学生表需要增加Phone字段时,较合适的做法是( )
A.修改表结构并添加短文本字段
B.把所有学生记录删除后重建数据库
C.把Phone值写入表名
D.把学生姓名字段改成主键
【答案】A
【解析】新增业务信息时应在表结构中增加相应字段,并选择合适的数据类型。
23.若字段必须填写且不能留空,应重点设置( )属性
A.小数位数
B.输入掩码颜色
C.默认视图
D.必填
【答案】D
【解析】必填属性用于限制该字段不能为空,适合编号、名称等必须录入的内容。
24.员工编号由字母和数字组成且不参与计算,宜使用( )类型
A.整型数值类型
B.短文本类型
C.日期/时间类型
D.货币数值类型
【答案】B
【解析】含字母的编号属于文本标识,不应使用数值型保存。
25.表结构调整后录入一条边界数据,主要用于检查( )
A.观察报表标题是否加粗
B.检查字段属性是否生效
C.查看窗体页眉是否变色
D.确认数据库文件是否成图
【答案】B
【解析】边界数据能验证字段大小、必填等属性是否产生预期约束。
二、简答题(共5题,每题6分,共30分)
1.阅读下面的表结构修改任务,写出完整语句并说明修改后的验证方法。
CREATE TABLE Students (
StudentID TEXT(10) PRIMARY KEY,
StudentName TEXT(20),
ClassID TEXT(5)
);
INSERT INTO Students VALUES ('S01', '林晓', 'C01');
INSERT INTO Students VALUES ('S02', '陈宇', 'C02');
ALTER TABLE Students ADD COLUMN Phone TEXT(20);
SELECT StudentID, StudentName, ClassID, Phone
FROM Students
ORDER BY StudentID;
写出为Students增加Phone字段的ALTER TABLE语句,并说明已有记录中新字段的初始状态和检查方法。
【答案】
ALTER TABLE Students ADD COLUMN Phone TEXT(20);
UPDATE Students
SET Phone = '13800000001'
WHERE StudentID = 'S01';
SELECT StudentID, StudentName, Phone
FROM Students
WHERE Phone Is Not Null;
已有记录的Phone初始为空,录入新号码后可用SELECT检查字段是否存在、长度是否合适以及记录是否能正常保存。
修改表结构前要确认字段尚不存在;修改后应同时检查表设计视图、已有记录和新记录。
2.阅读下面的字段属性设计,说明每项属性在数据完整性中的作用。
CREATE TABLE Employees (
EmployeeID TEXT(10) PRIMARY KEY,
EmployeeName TEXT(20) NOT NULL,
HireDate DATETIME,
Salary DOUBLE,
Active YESNO
);
INSERT INTO Employees VALUES ('E01', '林晓', #2024-09-01#, 8600, True);
SELECT EmployeeID, EmployeeName, HireDate, Salary, Active
FROM Employees;
说明PRIMARY KEY、NOT NULL、DATETIME、DOUBLE和YESNO分别适合解决什么问题。
【答案】
PRIMARY KEY保证编号唯一,NOT NULL保证姓名必须填写,DATETIME保存入职日期,DOUBLE保存可能带小数的工资,YESNO保存是否在职这类逻辑状态。
属性设置应与业务约束对应,既要保证数据完整,也要保证数据类型支持后续查询和计算。
3.报名表要求同一学生同一门课程只能有一条记录,请补全表结构并分析插入结果。
CREATE TABLE Enrollment (
StudentID TEXT(10),
CourseID TEXT(10),
EnrollDate DATETIME,
Score DOUBLE,
CONSTRAINT PK_Enrollment __________
);
INSERT INTO Enrollment VALUES ('S01', 'C01', #2026-03-01#, 86);
INSERT INTO Enrollment VALUES ('S01', 'C01', #2026-03-02#, 90);
SELECT StudentID, CourseID, Score
FROM Enrollment;
补全约束并说明第二条INSERT的执行结果。
【答案】
CONSTRAINT PK_Enrollment PRIMARY KEY (StudentID, CourseID);
UPDATE Enrollment
SET Score = 90
WHERE StudentID = 'S01' AND CourseID = 'C01';
SELECT StudentID, CourseID, Score
FROM Enrollment
WHERE StudentID = 'S01';
第二条记录与第一条记录的复合主键相同,不能插入;若要修改成绩,应使用UPDATE而不是再次INSERT。
复合主键把两个字段组合起来唯一标识一次报名,能够阻止同一学生重复报名同一课程。
4.阅读下面的结构调整语句,判断是否满足电话号码和出生日期的保存要求。
CREATE TABLE Students (
StudentID TEXT(10) PRIMARY KEY,
StudentName TEXT(20),
ClassID TEXT(5)
);
ALTER TABLE Students ADD COLUMN Phone TEXT(20);
ALTER TABLE Students ADD COLUMN BirthDate TEXT(20);
INSERT INTO Students (StudentID, StudentName, Phone, BirthDate)
VALUES ('S03', '吴涛', '13800000003', '2008-06-18');
SELECT StudentID, Phone, BirthDate
FROM Students;
指出BirthDate字段定义存在的问题,并给出修改思路。
【答案】
BirthDate使用TEXT不能保证日期类型,应在建表时使用DATETIME;Phone使用TEXT(20)合理,因为电话号码是标识文本;调整后应重新检查插入和日期筛选。
电话号码不参与数值运算,不能因只含数字就使用INTEGER;日期字段应使用日期/时间类型支持比较和格式化。
5.阅读下面的工单表设计和样例记录,写出需要设置的字段属性。
CREATE TABLE WorkOrder (
WorkOrderID TEXT(10),
CustomerID TEXT(10),
ReportDate DATETIME,
FaultDesc TEXT(255),
Status TEXT(10)
);
INSERT INTO WorkOrder VALUES ('W01', 'C01', #2026-04-01#,
'无法开机', '待处理');
SELECT WorkOrderID, CustomerID, ReportDate, FaultDesc, Status
FROM WorkOrder;
根据工单业务指出哪些字段应设为主键或必填,并说明理由。
【答案】
WorkOrderID应设置主键;CustomerID、ReportDate、FaultDesc和Status应根据业务要求设置为必填,其中FaultDesc和Status不能缺失,否则无法处理和跟踪工单。
字段属性要服务于记录唯一性和业务完整性,日期和描述字段还要选择能保存实际内容的数据类型。
三、案例分析题(共1题,共10分)
1.某维修机构已经建立Customer和Device表,现需增加工单属性。请检查字段类型、主键和必填属性,并写出结构修改语句。
【答案】
CREATE TABLE Customer (
CustomerID TEXT(10) PRIMARY KEY,
CustomerName TEXT(20),
Phone TEXT(20)
);
CREATE TABLE Device (
DeviceID TEXT(10) PRIMARY KEY,
DeviceName TEXT(30),
CustomerID TEXT(10),
ReportDate TEXT(20)
);
INSERT INTO Device VALUES ('D01', '台式机', 'C01', '2026-04-01');
SELECT DeviceID, DeviceName, CustomerID, ReportDate
FROM Device;
请完成:①指出ReportDate类型问题;②增加Status和WarrantyEnd字段;③说明DeviceID、CustomerID及日期字段的属性要求。
ALTER TABLE Device ALTER COLUMN ReportDate DATETIME;
ALTER TABLE Device ADD COLUMN Status TEXT(10);
ALTER TABLE Device ADD COLUMN WarrantyEnd DATETIME;
ALTER TABLE Device ALTER COLUMN DeviceName TEXT(30) NOT NULL;
ALTER TABLE Device ALTER COLUMN CustomerID TEXT(10) NOT NULL;
SELECT DeviceID, DeviceName, CustomerID, ReportDate,
Status, WarrantyEnd
FROM Device;
DeviceID保持主键唯一;CustomerID、DeviceName和Status应按业务设置为必填;ReportDate和WarrantyEnd使用DATETIME,修改后用SELECT检查字段和记录。
四、综合应用题(共1题,共10分)
1.完成维修工单数据库的结构调整任务,要求同时体现已有表的修改和新表的创建。
【答案】
CREATE TABLE Customer (
CustomerID TEXT(10),
CustomerName TEXT(30),
Phone TEXT(20)
);
CREATE TABLE Device (
DeviceID TEXT(10),
DeviceName TEXT(30),
CustomerID TEXT(10)
);
CREATE TABLE WorkOrder (
WorkOrderID TEXT(10),
DeviceID TEXT(10),
ReportDate DATETIME,
FaultDesc TEXT(255),
Status TEXT(10)
);
Customer:C01 星河公司 0531-88880001
Device:D01 台式机 C01;D02 笔记本 C01
工单:W01 D01 2026-04-01 无法开机 待处理
任务:
①建立Customer、Device、WorkOrder表;
②编号字段设置主键,关键描述字段设置必填;
③日期字段使用DATETIME;
④用ALTER TABLE给Device增加WarrantyEnd;
⑤插入客户、两台设备和一条工单;
⑥查询工单及其对应设备,验证字段和联系。
写出完整SQL,并说明ALTER TABLE和CREATE TABLE分别承担的结构任务。
CREATE TABLE Customer (
CustomerID TEXT(10) PRIMARY KEY,
CustomerName TEXT(30) NOT NULL,
Phone TEXT(20)
);
CREATE TABLE Device (
DeviceID TEXT(10) PRIMARY KEY,
DeviceName TEXT(30) NOT NULL,
CustomerID TEXT(10) NOT NULL
);
CREATE TABLE WorkOrder (
WorkOrderID TEXT(10) PRIMARY KEY,
DeviceID TEXT(10) NOT NULL,
ReportDate DATETIME,
FaultDesc TEXT(255) NOT NULL,
Status TEXT(10) NOT NULL
);
ALTER TABLE Device ADD COLUMN WarrantyEnd DATETIME;
INSERT INTO Customer VALUES ('C01', '星河公司', '0531-88880001');
INSERT INTO Device VALUES ('D01', '台式机', 'C01');
INSERT INTO Device VALUES ('D02', '笔记本', 'C01');
INSERT INTO WorkOrder VALUES ('W01', 'D01', #2026-04-01#, '无法开机', '待处理');
SELECT w.WorkOrderID, d.DeviceName, w.ReportDate,
w.FaultDesc, w.Status
FROM Device AS d INNER JOIN WorkOrder AS w
ON d.DeviceID = w.DeviceID
ORDER BY w.ReportDate DESC;
Customer、Device和WorkOrder分别表示客户、设备和工单;ALTER TABLE用于扩展已有Device表;查询通过DeviceID验证工单与设备的联系。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$
编写说明:2027版山东省春季高考统一考试软件与应用技术类《考纲百套卷》,依据《软件与应用技术类专业知识考试标准》编写。本专辑涵盖三个部分,第一部分为知识训练卷,第二部分为专题训练卷,第三部分为课程综合卷。本专辑共85份试卷,其中知识训练卷48份、专题训练卷25份、课程综合卷12份。
本试卷是第59卷,为专题训练卷,按“数据库和表”专题范围和要求编写。具体内容为:(1)了解数据库设计的步骤。(2)掌握数据库和表的创建;(3)理解数据表中的数据类型。(4)掌握表结构修改、字段属性的设置;(5)掌握记录的添加、修改、删除等操作。(6)掌握数据表数据的排序和筛选;(7)掌握记录的索引。(8)掌握表间关系的建立与维护。
山东省春季高考统一考试
软件与应用技术类《考纲百套卷》
第59卷 专题训练——数据库和表
(考试时间:45分钟 满分:100分)
一、选择题(共25题,每题2分,共50分)
1.某校准备建立成绩管理数据库,开始建表前最应先完成的工作是( )
A.录入学生基础数据
B.设计表格打印格式
C.设置账户访问权限
D.分析对象与需求
2.在数据库设计中,把学生、课程及选课过程抽象出来,主要属于( )
A.数据录入
B.文件备份
C.概念设计
D.界面美化
3.根据概念模型确定数据表、字段和主键,通常属于( )阶段
A.逻辑设计
B.需求调查
C.数据清理
D.结果打印
4.没有可直接套用的模板时,在Access中建立新库较适合选择( )
A.已有查询对象
B.导入报表对象
C.空白数据库
D.打印向导工具
5.保存新建数据库时,较合理的做法是( )
A.记录文件图标颜色
B.保存到临时剪贴板
C.覆盖任意旧数据库
D.按名称保存数据库
6.要建立员工表的字段结构,通常使用Access的哪个视图( )
A.数据表视图
B.表设计视图
C.报表视图
D.窗体视图
7.设计数据表字段名称时,较合适的原则是( )
A.所有字段都使用同一名称
B.只用数字代替字段含义
C.名称能够反映数据含义
D.字段名称完全随机生成
8.学生编号由字母和数字组成且不参与计算,创建字段时较适合选择( )
A.短文本类型
B.日期时间类型
C.货币类型
D.是/否类型
9.将学生编号设置为主键,主要是为了( )
A.唯一识别记录
B.自动汇总成绩
C.替代数据库文件名
D.改变表中字段顺序
10.报名表中学生编号和课程编号合起来才能唯一确定一条记录,适合设置为( )
A.普通备注
B.单个显示字段
C.打印标题
D.组合主键
11.在录入大量数据前先保存表结构,主要可以( )
A.先统一字段规则
B.提高屏幕显示亮度
C.替代所有数据备份
D.取消表中唯一约束
12.在表设计视图中完成字段设置后,下一项合理操作是( )
A.关闭计算机电源
B.保存表并命名
C.删除刚建的数据库
D.重装打印驱动
13.Access数据表视图更适合进行的操作是( )
A.查看与编辑记录
B.设计网络路由
C.调整处理器频率
D.制作视频效果
14.学生、课程和报名信息相互独立又存在联系时,较合理的建表方式是( )
A.把三类内容混在一个字段中
B.只建立报名表而不保存编号
C.为每名学生单独建立数据库
D.分别建立相应的数据表
15.建好数据表并录入少量样例后,首先应检查( )
A.核对数据库名称、路径和备份
B.核对表名、字段顺序和格式
C.核对字段类型、主键和记录
D.核对记录数量、编号和排序
16.表中已有记录但业务新增一个联系电话字段时,较合适的处理是( )
A.把旧记录全部复制到文本框
B.删除原表后只保留新字段
C.修改数据库文件扩展名
D.在表设计中增加字段并保存
17.下列较符合Access数据库创建顺序的是( )
A.先分析再建库建表
B.先录入再决定字段
C.先打印再删除数据表
D.先修改字体再设主键
18.当业务表结构已经明确且没有可用模板时,选择空白数据库的主要原因是( )
A.自动生成业务数据
B.无需设置任何主键
C.便于按需建对象
D.替代后续数据校验
19.某机构要管理员工、部门和任职记录,较合理的表方案是( )
A.信息均放员工姓名字段
B.员工、部门、任职分表
C.只建部门表保存信息
D.每部门建独立数据库
20.完成一个课程报名数据库的创建,较完整的方案是( )
A.先录入数据后定字段
B.分析需求后建表并验证
C.只建报表不建数据表
D.先删数据再改打印设置
21.短文本字段的“字段大小”属性主要用于( )
A.规定记录的排序方向和方式
B.设置数据表使用的主键名称
C.限制可保存的字符数
D.改变日期字段的显示格式
22.已有学生表需要增加Phone字段时,较合适的做法是( )
A.修改表结构并添加短文本字段
B.把所有学生记录删除后重建数据库
C.把Phone值写入表名
D.把学生姓名字段改成主键
23.若字段必须填写且不能留空,应重点设置( )属性
A.小数位数
B.输入掩码颜色
C.默认视图
D.必填
24.员工编号由字母和数字组成且不参与计算,宜使用( )类型
A.整型数值类型
B.短文本类型
C.日期/时间类型
D.货币数值类型
25.表结构调整后录入一条边界数据,主要用于检查( )
A.观察报表标题是否加粗
B.检查字段属性是否生效
C.查看窗体页眉是否变色
D.确认数据库文件是否成图
二、简答题(共5题,每题6分,共30分)
1.阅读下面的表结构修改任务,写出完整语句并说明修改后的验证方法。
CREATE TABLE Students (
StudentID TEXT(10) PRIMARY KEY,
StudentName TEXT(20),
ClassID TEXT(5)
);
INSERT INTO Students VALUES ('S01', '林晓', 'C01');
INSERT INTO Students VALUES ('S02', '陈宇', 'C02');
ALTER TABLE Students ADD COLUMN Phone TEXT(20);
SELECT StudentID, StudentName, ClassID, Phone
FROM Students
ORDER BY StudentID;
写出为Students增加Phone字段的ALTER TABLE语句,并说明已有记录中新字段的初始状态和检查方法。
修改表结构前要确认字段尚不存在;修改后应同时检查表设计视图、已有记录和新记录。
2.阅读下面的字段属性设计,说明每项属性在数据完整性中的作用。
CREATE TABLE Employees (
EmployeeID TEXT(10) PRIMARY KEY,
EmployeeName TEXT(20) NOT NULL,
HireDate DATETIME,
Salary DOUBLE,
Active YESNO
);
INSERT INTO Employees VALUES ('E01', '林晓', #2024-09-01#, 8600, True);
SELECT EmployeeID, EmployeeName, HireDate, Salary, Active
FROM Employees;
说明PRIMARY KEY、NOT NULL、DATETIME、DOUBLE和YESNO分别适合解决什么问题。
属性设置应与业务约束对应,既要保证数据完整,也要保证数据类型支持后续查询和计算。
3.报名表要求同一学生同一门课程只能有一条记录,请补全表结构并分析插入结果。
CREATE TABLE Enrollment (
StudentID TEXT(10),
CourseID TEXT(10),
EnrollDate DATETIME,
Score DOUBLE,
CONSTRAINT PK_Enrollment __________
);
INSERT INTO Enrollment VALUES ('S01', 'C01', #2026-03-01#, 86);
INSERT INTO Enrollment VALUES ('S01', 'C01', #2026-03-02#, 90);
SELECT StudentID, CourseID, Score
FROM Enrollment;
补全约束并说明第二条INSERT的执行结果。
复合主键把两个字段组合起来唯一标识一次报名,能够阻止同一学生重复报名同一课程。
4.阅读下面的结构调整语句,判断是否满足电话号码和出生日期的保存要求。
CREATE TABLE Students (
StudentID TEXT(10) PRIMARY KEY,
StudentName TEXT(20),
ClassID TEXT(5)
);
ALTER TABLE Students ADD COLUMN Phone TEXT(20);
ALTER TABLE Students ADD COLUMN BirthDate TEXT(20);
INSERT INTO Students (StudentID, StudentName, Phone, BirthDate)
VALUES ('S03', '吴涛', '13800000003', '2008-06-18');
SELECT StudentID, Phone, BirthDate
FROM Students;
指出BirthDate字段定义存在的问题,并给出修改思路。
电话号码不参与数值运算,不能因只含数字就使用INTEGER;日期字段应使用日期/时间类型支持比较和格式化。
5.阅读下面的工单表设计和样例记录,写出需要设置的字段属性。
CREATE TABLE WorkOrder (
WorkOrderID TEXT(10),
CustomerID TEXT(10),
ReportDate DATETIME,
FaultDesc TEXT(255),
Status TEXT(10)
);
INSERT INTO WorkOrder VALUES ('W01', 'C01', #2026-04-01#,
'无法开机', '待处理');
SELECT WorkOrderID, CustomerID, ReportDate, FaultDesc, Status
FROM WorkOrder;
根据工单业务指出哪些字段应设为主键或必填,并说明理由。
字段属性要服务于记录唯一性和业务完整性,日期和描述字段还要选择能保存实际内容的数据类型。
三、案例分析题(共1题,共10分)
1.某维修机构已经建立Customer和Device表,现需增加工单属性。请检查字段类型、主键和必填属性,并写出结构修改语句。
ALTER TABLE Device ALTER COLUMN ReportDate DATETIME;
ALTER TABLE Device ADD COLUMN Status TEXT(10);
ALTER TABLE Device ADD COLUMN WarrantyEnd DATETIME;
ALTER TABLE Device ALTER COLUMN DeviceName TEXT(30) NOT NULL;
ALTER TABLE Device ALTER COLUMN CustomerID TEXT(10) NOT NULL;
SELECT DeviceID, DeviceName, CustomerID, ReportDate,
Status, WarrantyEnd
FROM Device;
DeviceID保持主键唯一;CustomerID、DeviceName和Status应按业务设置为必填;ReportDate和WarrantyEnd使用DATETIME,修改后用SELECT检查字段和记录。
四、综合应用题(共1题,共10分)
1.完成维修工单数据库的结构调整任务,要求同时体现已有表的修改和新表的创建。
CREATE TABLE Customer (
CustomerID TEXT(10) PRIMARY KEY,
CustomerName TEXT(30) NOT NULL,
Phone TEXT(20)
);
CREATE TABLE Device (
DeviceID TEXT(10) PRIMARY KEY,
DeviceName TEXT(30) NOT NULL,
CustomerID TEXT(10) NOT NULL
);
CREATE TABLE WorkOrder (
WorkOrderID TEXT(10) PRIMARY KEY,
DeviceID TEXT(10) NOT NULL,
ReportDate DATETIME,
FaultDesc TEXT(255) NOT NULL,
Status TEXT(10) NOT NULL
);
ALTER TABLE Device ADD COLUMN WarrantyEnd DATETIME;
INSERT INTO Customer VALUES ('C01', '星河公司', '0531-88880001');
INSERT INTO Device VALUES ('D01', '台式机', 'C01');
INSERT INTO Device VALUES ('D02', '笔记本', 'C01');
INSERT INTO WorkOrder VALUES ('W01', 'D01', #2026-04-01#, '无法开机', '待处理');
SELECT w.WorkOrderID, d.DeviceName, w.ReportDate,
w.FaultDesc, w.Status
FROM Device AS d INNER JOIN WorkOrder AS w
ON d.DeviceID = w.DeviceID
ORDER BY w.ReportDate DESC;
Customer、Device和WorkOrder分别表示客户、设备和工单;ALTER TABLE用于扩展已有Device表;查询通过DeviceID验证工单与设备的联系。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$