

access2021上做的
会做的si我➕v
1111111111111111111111111111111111111111111111


关注引自强大而免费的微信小程序:皆我知道。
第一个实验
根据以上信息,可以设计以下表结构:
学生表(Student):
教师表(Teacher):
成绩表(Score):
课程表(Course):
生成表查询(E1):
CREATE TABLE 硕士学历 AS
SELECT * FROM 教师
WHERE 学历 = '硕士';
更新查询(E2):
UPDATE 教师
SET 学历 = '硕士'
WHERE 工号 = '040014';
追加查询(E3):
INSERT INTO 硕士学历
SELECT * FROM 教师
WHERE 工号 = '040014';
删除查询(E4):
DELETE FROM 教师
WHERE 年龄 > 60;
选择查询(E5):
SELECT 学号, 姓名, 性别, 年龄, 学历
FROM 教师
WHERE 姓名 LIKE '李%' AND 年龄 > 40;
选择查询(E6):
SELECT 学号, 姓名, 班级, 课程名称, 成绩
FROM 学生
INNER JOIN 成绩 ON 学生.学号 = 成绩.学号
INNER JOIN 课程 ON 成绩.课程名称 = 课程.课程名称
WHERE 课程.课程名称 = '会计学'
ORDER BY 成绩 DESC;
选择查询(E7):
SELECT 工号, 姓名, 出生日期, 职称, 工资
FROM 教师
ORDER BY 职称 DESC, 出生日期 ASC, 工号 ASC;
交叉表查询(E8):
SELECT 性别, 省份, COUNT(*) AS 人数
FROM 学生
GROUP BY 性别, 省份;
交叉表查询(E9):
CREATE TABLE 交叉表查询 AS
SELECT 班级, 学号, 姓名, MAX(CASE WHEN 课程名称='课程1' THEN 成绩 END) AS 课程1,
MAX(CASE WHEN 课程名称='课程2' THEN 成绩 END) AS 课程2,
...
FROM 成绩
GROUP BY 班级, 学号, 姓名;
第二个实验
根据上述要求,可以设计以下3个表的表结构:
借书表(book_borrow):
还书表(book_return):
用户表(user):
DDL语句如下:
创建借书表:
CREATE TABLE book_borrow(
borrow_id INT PRIMARY KEY,
book_name VARCHAR(50),
user_id INT,
borrow_date DATE,
due_date DATE
);
创建还书表:
CREATE TABLE book_return(
return_id INT PRIMARY KEY,
borrow_id INT,
return_date DATE,
is_overdue BOOLEAN
);
创建用户表:
CREATE TABLE user(
user_id INT PRIMARY KEY,
user_name VARCHAR(50),
user_gender VARCHAR(10),
user_age INT,
user_phone VARCHAR(20)
);
根据DDL语句创建表后,可以进行以下操作:
查询借书表中的记录:
SELECT * FROM book_borrow;
查询还书表中的记录:
SELECT * FROM book_return;
查询用户表中的记录:
SELECT * FROM user;
对于图1中的实验内容,主要是针对已经创建的6个表进行不同类型的查询。具体内容如下:
创建选择查询(Q1-Q7):
(1) 创建查询,显示“学生”表中民族是“满族”的党员的学号、姓名、性别、出生日期、党员否和民族。
(2) 创建查询,仅显示“教师”表中所有年龄小于40岁的教授的工号、姓名、出生日期、职称和工资。
(3) 创建查询,显示“教师”表中工作大于25年的教师的工号、姓名、出生日期、工龄、职称和学院名称。
(4) 创建查询,显示“Python程序设计基础”课程中满分成绩的学生的学号、姓名、班级、课程名称和成绩。
(5) 创建查询,显示“教师”表中40岁以上李姓教师的工号、姓名、性别、年龄和学历。
(6) 创建查询,显示课程名称为“会计学”的学生成绩,按照成绩的降序排列,显示学号姓名、班级、课程名称和成绩。
(7) 创建查询,按照“教师”表中职称和出生日期显示教师的工资情况,先按照职称的降序排序,职称相同的再按照出生日期升序排序,按照工号、姓名、出生日期、职称和工资的顺序显示。
创建交叉表查询(Q12-Q13):
(1) 创建交叉表查询,分组显示“学生”表中不同性别、不同省份的学生人数。
(2) 创建交叉表查询,要求行标题是班级、学号和姓名,列标题是课程名称,行列交叉数据为成绩。
创建操作查询(Q14-Q17):
(1) 使用生成表查询将“教师”表中学历是硕士的教师筛选出来,生成“硕士学历”表。
(2) 创建更新查询,将教师表中工号是“040014”的教师的学历由本科更新为硕士。
(3) 创建追加查询,将教师表中工号是“040014”的教师的学历追加到“硕士学历”表中。
(4) 创建删除查询,删除教师表中的年龄大于60岁的教师的信息。
创建操作查询(Q14-Q17):
(1) 使用生成表查询将“教师”表中学历是硕士的教师筛选出来,生成“硕士学历”表。
(2) 创建更新查询,将教师表中工号是“040014”的教师的学历由本科更新为硕士。
(3) 创建追加查询,将教师表中工号是“040014”的教师的学历追加到“硕士学历”表中。
(4) 创建删除查询,删除教师表中的年龄大于60岁的教师的信息。
对于图2中的实验内容,主要是在已经创建的6个表的基础上进行表结构的创建与操作、字段属性的设置、主键、外键和索引的设置以及表之间关系的建立。具体内容如下:
表结构的创建与修改:
(1) 根据表9-2创建表名称为“教师2”的表结构,并输入2条记录。
表中字段属性的设置:
(1) 为“教师”表的“职称”字段设置查阅属性,实现从下拉列表框中选择教师的职称。
(2) 为“教师”表的“学历”字段设置默认值为“博士”。
(3) 为“教师”表的“工作日期”字段设置输人掩码为短日期格式。
主键、外键和索引的设置:
(1) 为“教师”表中的“职称”和“工资”字段设置索引,先按“职称”的升序排序,职称相同的再按“工资”的降序排序。
表之间关系的建立:
(1) 为所有表设置主键,进而分析并建立所有表之间的关系。
复制表和建立关系:
(1) 复制“学生”表和“选课”表到当前数据库中,表名分别为“学生表2”和“选课表2”。
(2) 建立“学生表2”和“选课表2”之间的关系,之后从“学生表2”中删除学号为“10010001”的学生的记录,要求在删除这个学生的记录之后,“选课表2”中可以自动删除这名学生的所有相关记录。
针对图2中的拓展实践部分,需要根据要求创建一个“图书借阅管理”数据库,具体要求如下:
请根据以上要求,在Access中进行相应操作,并提供相应的代码和结果截图。