内容正文:
编写说明:湖北省技能高考理论考试《计算机网络技术(计算机基础)考纲百套卷》,依据《湖北省技能高考计算机专业考试大纲专业课考试纲要》编写每门课程均分三层训练:基础层(具象化支架)以拆解考点为微目标,紧扣考纲 掌握理解 要求编写考点训练卷;巩固层(关联性支架)强化知识交叉与场景关联,按考纲专题编专题训练卷;应用层(引导性支架)聚焦真题突破,结合知识模块与教材编写课程综合卷
本试卷是第80卷,按《MySQL数据库基础》范围和要求编写。具体内容为:掌握MySQL数据库中创建.更新.重命名.复制.删除.查看数据表的操作方法,掌握SQL查询的基本概念,熟练掌握简单查询.统计函数查询.条件查询.连接查询的操作方法,使用SQL语句创建.删除.修改.查看视图的操作方法及应用,掌握触发器的基本概念.种类和使用场景,熟练掌握创建.删除触发器的操作方法,掌握存储过程与存储函数的特性.应用场景及核心区别;熟练执行存储过程的创建.修改与删除操作;掌握在存储过程中运用游标实现数据集的逐行处理技术;精通存储过程体的构建方法(含变量声明.流程控制.游标操作),并能规范调用存储函数
湖北省《计算机类考纲百套卷》第80卷
《MySQL数据库基础》
考试时间80分钟 满分100分
班级 姓名 学号 成绩
素材
一.数据库操作题(本大题共10小题,每题10分,共100分)
1.酒店预订数据库db_hotel包含了t_hotel酒店表和t_room房间表。
t_hotel包含字段hid(酒店编号),hname(酒店名称),location(地址).level(星级评价)。
t_room包含字段 rid(房间编号),hid(酒店编号),rname(房间名称),price(价格)。
上述数据库及数据表已经创建,请按要求完成以下操作:
(1).创建一个客人表hotel_people,字段名称.类型.长度.需求如下:
id(主键id),int(1).0,非空,自动增加,无符号类型。
cname(客户名),char20,注释客户名;
birthday(出生日期),date类型;
jianjie(简介),text类型。
(2).酒店表中插入一条数据((1).0008, 张口大酒店, 上海市, 四星)。
(3).修改苹果大酒店星级评价为五星。
(4).删除地址为青岛市所有房间信息。
(5).查询武汉市和长沙市的酒店名称,星级评价,房间名称和价格。
(6).查询每个酒店所有房间的价格总和,显示酒店名称和价格总和(列名为total_price)
(7).创建一个视图view_hotel,要求视图中显示出二星房间名称和价格。
(8).创建一个触发器trg_insert_room,该触发器将在t_room表上插入之后被触发。触发器需要执行以下操作:插入 t_room 表记录时,如果 hid 酒店编号不存在于 t_hotel 表中,则自动在 t_hotel 表中新增此酒店编号 hid,其余字段可为空;
(9).创建一个存储过程pro_get_AvgPrice,该存储过程接收一个城市名(city_name)和一个房间类型(room_type)作为输入参数,数据类型为VARCHAR(255)和VARCHAR(30),并计算该城市对应房间类型的平均价格。最后,存储过程输出一段话,格式为“XX的XX类型的房间平均价格为XX”。
2.图书管理数据库db_library包含了3个表,即读者表(readers).书籍表(books).借阅记录表(borrowrecords)。
读者表readers包含字段readerID(读者ID),name(读者姓名),phoneNumber(电话号码).email(邮箱).registrationDate(注册时间),主键是readerID
书籍表books包含字段bookID(书籍ID),title(书籍标题),author(作者),isbn(书号),publishedDate(出版日期),available(借阅状态:(1).:未借出,0:借出),主键是bookID
借阅阅记录表borrowRecords包含字段borrowRecordID(借阅记录ID),readerID(借阅读者ID),bookID(借阅书籍ID),borrowDate(借阅时间),dueDate(应还日期),returned(归还状态:1:归还,0:未归还),主键是borrowRecordID.上述数据库及数据表已经创建,请按要求完成以下操作。
(1).修改books表的借阅状态默认为1
(2).创建一个书籍预定表reservation,字段如下:
字段名称 类型 长度 需求
reservationID (预定编号) int 主键,自增长
readerID(读者ID) int 不能为空
bookID(书籍ID) int 不能为空
date(预定日期) date
status(预定状态) varchar 默认值为待处理
(3).在书籍表中新增一条记录,书籍标题:追风筝的人,作者:卡勒德·胡赛尼,书号:9787530214313,出版日期:2006-05-01,借阅状态:1
(4).请用sql语句找出读者ID为2借阅的所有书籍,要求显示书籍标题,作者,书号,出版日期,借阅状态,借阅时间。
(5).请用sql语句查询出当前有书籍尚未归还的读者。要求显示读者姓名,电话号码,邮箱,借阅时间,应还日期,returned=0表示未归还。
(6).创建一个视图view_readerHistory要求显示读者的借阅历史记录,要求显示读者姓名,书籍标题,书号,借阅时间,应还日期,是否归还。
(7).创建一个触发器update_books,该触发器将在borrowrecords表插入操作之后被触发。触发器需要执行以下操作:根据新增的书籍ID,更新书籍表books中借阅状态为0(借出),;
(8).创建一个存储过程update_borrowrecords,该存储过程接收一个借阅记录ID(p_borrowRecordID)和一个归还状态(p_returned)作为输入参数,数据类型均为int,根据输入的借阅记录ID和归还状态更新借阅记录表borrowRecords中的记录;
3.马拉松数据库db_marathon包含了3个表,即参赛者表(participants).比赛表(races).成绩表(marathonresults)。
参赛者表participants包含字段participantId(参赛者ID),name(姓名),age(年龄).gender(性别).city(城市).email(电子邮件).phone(电话).registrationDate(注册日期),主键是participantId
比赛表races包含字段raceId(比赛ID).raceName(比赛名称).raceDate(比赛日期).location(比赛地点),主键是raceId
马拉松成绩表marathonResults包含字段resultId(马拉松成绩ID),participantId(参赛者ID),raceId(比赛ID),finishTime(完成时间),rank(排名),主键是resultId
上述数据库及数据表已经创建,请按要求完成以下操作。
(1).修改participants表gender字段设置只能存储男或者女。
(2).创建一个训练表tranning,字段如下:
字段名称 类型 长度 需求
sessionId(预定编号) int 主键,自增长 不能为空
participantId(参赛者ID) int 不能为空
sessionDate(训练日期) date
duration(训练时长) int
location(训练地点) varchar (1).00
(3).为李四插入一条比赛记录,李四在2023年上海马拉松的完成时间是02:22:01,排名第10
(4).请用sql语句查询所有参赛者及其参加的比赛名称和完成时间,要求显示姓名,性别,年龄,比赛名称,完成时间,排名。排名按升序排序。
(5).请用sql语句查询出张三在马拉松比赛中最好的一次排名记录。要求显示姓名,比赛名称,完成时间,排名。
(6).创建一个视图view_grade显示参赛人员的马拉松记录数据,要求显示姓名,比赛名称,完成时间,排名。其中排名按升序排序,完成时间按降序排序。
(7).创建一个触发器trigger_delete,该触发器将在marathonresults表新增操作之前被触发。触发器需要执行以下操作:检查参赛者信息是否存在,如果不存在,则阻止插入操作并抛出错误信息参赛者信息不存在!;
(8).创建一个存储过程pro_select,该存储过程接收一个参赛者ID(p_participantId)作为输入参数,数据类型为INT,根据输入的参赛者ID,查询出参赛者的姓名,完成时间,排名;
4.汽车保险系统数据库db_insurance包含了t_customers客户表.t_cars汽车表.t_policies保单表。
t_customers客户表包含字段customerID(客户ID),name(客户姓名),phone(电话号码),email(邮箱),address(地址)。
t_cars汽车表包含字段carID(汽车ID),customerID(客户ID),licensePlate(汽车牌照),brand(汽车品牌),model(汽车型号),vin(车辆识别号)。
t_policies保单表包含字段policyID(保单ID),customerID(客户ID),carID(汽车ID),policyNumber(保单号),startDate(开始时间),endDate(结束时间),premium(保单费用),coverageType(保单类型)。
上述数据库及数据表已经创建,请按要求完成以下操作。
(1).创建一个保养记录表t_maintenance,字段如下:
字段名称 类型 长度 需求
recordID(记录编号) int 主键,自增长
carID(汽车ID) int 不能为空
date(保养日期) date
mileage(里程数) int
type(保养类型) varchar (1).00
details(保养记录) text
cost(保养费用) decimal (1).0,2
(2).在客户表中插入一条客户数据('赵六', '13824897891', 'zhaoliu@example.com', '武汉市江汉区')
(3).将车牌号为鄂A12587的汽车型号修改为Model Y;
(4).将t_policies表中policyNumber字段修改为唯一约束;
(5).查询所有客户的保单信息,按保单费用升序排序,要求显示客户姓名,保单类型,开始时间,结束时间,保单费用。
(6).查询客户张三拥有的汽车数量和保单总金额,列名分别为汽车数量,保单总金额。
(7).创建一个视图view_details,要求视图中显示出所有客户的姓名.汽车品牌.汽车型号.保单类型.结束时间,查询结果按照结束时间升序,按照汽车品牌降序;
(8).创建一个名称为trg_delete_customer的触发器用来自动删除数据,具体描述如下:当一个客户从t_customers表中删除后,与该客户相关的所有汽车记录和保单记录也会被相应地删除,。
9.创建一个名称为pro_select的存储过程查询指定客户的车辆信息,具体描述如下:这个存储过程接收一个客户姓名(in_name)作为输入参数,数据类型为varchar((1).00),查询出客户名下的汽车信息,要求显示汽车牌照.汽车品牌.汽车型号;
5.教师系统数据库db_teacher包含了t_teachers教师表.t_courses课程表.t_salaries薪资表。
t_teachers教师表包含字段 teacherID(教师ID),name(教师名称),gender(教师性别),age(教师年龄),email(邮箱),phoneNumber(联系电话),departmentID(部门ID),isactive(是否在职,1:在职,0:离职)。
t_courses课程表包含字段courseID(课程ID),courseName(课程名称),teacherID(教师ID)。
t_salaries薪资表包含字段salaryID(薪资ID),teacherID(教师ID),basicSalary(基本薪资),bonus(奖金),totalSalary(总薪资),year(年份)。
上述数据库及数据表已经创建,请按要求完成以下操作。
(1).创建一个部门表t_departments,字段如下:
字段名称 类型 长度 需求
departmentID(部门ID) int 主键,自增长
departmentName(部门名称) varchar 100 不能为空
(2).在部门表中插入四条记录,部门名称分别为计算机系,数学系,文学系,物理系。
(3).将计算机系教师在2023年的基本薪资(basicSalary)整体上调200
(4).郑姗璐老师已经离职,请更新她的在职状态。
(5).查询每位教师的课程信息,要求显示教师名称.教师性别.教师年龄.课程名称。
(6).查询2023年在职教师的薪资信息,要求显示教师名称.教师性别.教师年龄.院系名称.基本工资.奖金.总薪资。
(7).创建一个视图view_info,要求视图中显示出所有在职教师的教师名称.教师性别.教师年龄.部门名称.基本薪资.年份。
(8).创建一个名称为update_teacher的触发器用来删除薪资表中的记录,具体描述如下:当在t_teachers表中更新记录之后,如果教师的在职状态从在职变成离职((1).→0),则删除t_salaries薪资表对应的数据。
9.创建一个名称为pro_getTotalSalary的存储过程计算指定教师在该年份的总薪资,具体描述如下:这个存储过程接收一个教师ID(p_teacherID),数据类型为int,一个年份(p_year),数据类型为int,作为输入参数,并查询指定年份该教师在t_salaries表中的总薪资,然后通过输出参数(p_totalSalary)返回总薪资,返回类型为decimal(10, 2)。
6.音乐数据库db_music包含了users用户表.songs歌曲表.user_song_stats用户歌曲统计表。
users用户表包含字段user_id(用户ID),username(用户名),password(用户密码),email(邮箱),created_date(创建日期)。
songs歌曲表包含字段song_id(歌曲ID),song_name(歌曲名称),singer_name(歌手姓名),album_name(专辑名称),genre(音乐类型),release_date(发行日期)。
user_song_stats用户歌曲统计表包含字段stat_id(统计ID),user_id(用户ID),song_id(歌曲ID),play_count(播放次数),total_play_time(播放时长,单位分钟)。
上述数据库及数据表已经创建,请按要求完成以下操作。
(1).创建一个歌单表favorite_songs,字段如下:
字段名称 类型 长度 需求
favorite_id(喜好ID) int 主键,自增长
user_id(用户ID) int 不能为空
song_id(歌曲ID) int 不能为空
add_date(添加日期) date
(2).在歌曲表中插入一条记录(告白气球,周杰伦,周杰伦的床边故事,流行,2016-06-24)。
(3).用户张三播放了晴天5次,听歌时长12分钟,请更新user_song_stats用户歌曲统计表中的记录。
(4).歌曲Shape of You已下架,请删除对应的歌曲和统计记录。
(5).查询播放次数最多的歌曲名称及其播放次数,列名分别为:name.count;
(6).查询每个用户的总播放次数和总播放时间,列名分别为:用户名.播放次数.播放时间。
(7).创建一个视图view_details,要求视图中显示出所有用户的用户名.歌曲名称.播放次数.播放时长。按播放次数升序排序;
(8).创建一个名称为trg_songUpdate的触发器用来添加歌单表表中的记录,具体描述如下:当在user_song_stats用户歌曲统计表中更新记录之后,如果播放次数大于等于25,则向歌单表新增记录,日期默认为当前日期
9.创建一个名称为pro_update的存储过程更新指定统计ID的数据,具体描述如下:这个存储过程接收一个统计ID(in_statID),数据类型为int,一个播放次数(in_count),数据类型为int作为输入参数。根据统计ID(in_statID)在user_song_stats用户歌曲统计表里更新播放次数(in_count);现调用存储过程,in_statID为4,in_count为25;
7.汽车维修系统数据库db_maintenance包含了customers客户表.vehicles车辆表.repairs维修记录表。
customers客户表包含字段customerID(客户ID),cuname(客户姓名),gender(性别),age(年龄),phone(电话号码),email(邮箱)。
vehicles车辆表包含字段vehicleID(车辆ID),plateNumber(车牌号),brand(车辆品牌),model(车辆型号),proDate(车辆生产年份),customerID(客户ID)。
repairs维修记录表包含字段repairID(维修记录ID),vehicleID(车辆ID),repairDate(维修日期),description(维修描述),cost(维修费用)。
上述数据库及数据表已经创建,请按要求完成以下操作。
(1).创建一个维修日志表repair_log,字段如下:
字段名称 类型 长度 需求
logID(日志ID) int 主键,自增长
repairID(维修记录ID) int 不能为空
operation(具体操作) text 不能为空
time(耗费工时) int
tname(技术人员姓名) varchar 50
(2).在客户表中插入一条客户数据(赵六,男,35,13453245040)
(3).将客户王五的车牌号修改为沪A88888;
(4).将客户李四在2023年10月10日更换轮胎的维修费用减去1000;
(5).查询客户张三的车辆维修记录,要求显示:维修描述.维修日期.维修费用;按维修日期升序排序;
(6).查询每位客户的维修次数,列名分别为:客户姓名.维修次数。
(7).创建一个视图v_car_repair,要求视图中显示出客户姓名.车牌号.车辆品牌.车辆型号.维修描述.维修日期.维修费用;按维修日期升序排序;
(8).创建一个名称为trigger_insert的触发器,具体描述如下:当向customers客户表新增数据之前,如果客户的年龄(age)小于18岁,提示错误信息年龄必须大于等于18周岁。
9.创建一个名称为p_getTotalCost的存储过程查询指定客户在该年份的维修总费用,具体描述如下:这个存储过程接收一个客户姓名(in_name),数据类型为varchar(20),一个年份(in_year),数据类型为year,作为输入参数,查询指定年份该客户的维修总费用,通过输出参数totalCost返回,类型为DECIMAL((1).0, 2);
8.公交管理系统数据库db_bus包含了t_driver司机表.t_bus公交表和t_attendance发车表
t_driver包含字段id(司机编号),name(司机姓名),sex(性别),age(年龄),salary(薪资)。
t_bus包含字段 id(公交编号),platenum(车牌号),linenum(线路号码)。
t_attendance包含字段id(发车编号),b_id(公交编号),d_id(司机编号),starttime(发车时间)。
(1).创建一个收益表,名称为t_income,字段如下
字段名称 类型 长度 需求
id(收益编号) int 10 主键,自动增长
att_id(用户名) int 10 外键,对应t_attendance表id字段
money(金额) double 6,2
(2).添加一个公交信息,公交编号10031车牌号汽A781681线路号码572
(3).修改司机杜震南的薪资增加200。
(4).用sql语句查询年龄37,42和48岁的司机信息。
(5).用sql语句查询行驶过线路号码为709的司机信息并去除重复,查询结果按照司机编号升序显示。
(6).创建视图名称为v_attendance。要求显示发车信息,分别用列名:发车编号.公交车牌号.公交线路号码.司机姓名.发车时间。
(7).创建一个触发器delete_driver,该触发器在t_driver表中删除司机信息之前,先删除与该司机相关的所有发车记录;
(8).创建一个存储过程UpdateDriverSalary,该存储过程接收一个司机姓名(driverName)和一个薪资增加金额(increment)作为输入参数,参数类型分别为VARCHAR(255)和INT;根据司机的姓名更新指定司机的薪资;
9.人力资源管理系统数据库db_hrm包含了department部门表.employee员工表.和 salary薪资表。
department部门表 包含字段 did(部门编号),dname(部门名称),description(部门介绍)。
employee员工表 包含字段eid(员工编号),ename(员工姓名),sex(性别),age(年龄),position(职位),did(部门编号)。
salary薪资表 包含字段sid(薪资编号, 自增长),eid(员工编号),money(薪资),stime(薪资日期)。
上述数据库及数据表已经创建,请按要求完成以下操作。
(1).创建一个培训记录表training,字段如下:
字段名称 类型 长度 需求
tid(流水编号) int 主键,自增长
did(部门编号) varchar 10 不能为空, 外键,与department表关联
eid(员工编号) varchar 10 不能为空 , 外键,与employee表关联
topics(培训内容) varchar 50 默认值空
costs (培训费用) int 默认值0
duration(培训天数) int 默认值0
(2).修改程序员张三1月份的工资,为其加1000元工资。
(3).删除业务员孙七的信息
(4).查询技术部人员的姓名,年龄,职位和工资, 并分别用列名:姓名,年龄,职位和工资
(5).查询1月份工资在10000元以上(含10000)的员工的部门,姓名,职位, 并分别用列名:部门,姓名,职位和工资
(6).创建一个视图v_program 要求显示职位为程序员的姓名和工资, 并分别用列名:姓名,工资
(7).创建一个触发器g_after_employee_insert,该触发器将在employee表上的插入操作之后被触发。触发器需要执行以下操作:为该员工在salary表中创建一个薪资记录。薪资记录将包含员工的编号(eid).一个默认的薪资金额5000,以及该记录被创建的时间(使用当前时间戳,即NOW()函数);
(8).创建一个存储过程GetEmployeeSalary,该存储过程接收一个员工ID(emp_id)作为输入参数,类型为VARCHAR(10),查询结果返回该员工的姓名(ename)和薪资(money),并分别用列名姓名和薪资来表示;
10.网上商城数据库db_online,包含商品分类表category,商品表products,用户表users, 订单表orders,订单详细表orderitems, 其中:
category(cid,cname,description) 各字段的含义依次为:商品类别ID,类别名称, 类别描述。主键是cid。
products(pid,cid, pname,price, quantity,sale_qty)各字段的含义依次为: 商品ID,类别ID,商品名称,价格,库存数量,销售数量。主键商品ID, 自增长
users(username,pwd, cellphone,credit)各字段的含义依次为: 主键用户名,密码,手机,积分。
orders(oid,uid, amount,ordertime, address)各字段的含义依次为:主键订单ID,用户ID,订单金额,下单时间, 收货地址。
orderitems(item_id,oid,gid,inum)各字段的含义依次为:主键详情ID,订单ID,商品ID,购买数量。
上述数据库及数据表已经创建,请按要求完成以下操作。
(1).修改用户阿美的密码,新密码为123qwe
(2).创建一个购物车表cart,字段如下:
字段名称 类型 长度 需求
cart_id(购物车) int 主键,自增长
uname(用户名) char 10 不能为空,外键,与users表关联
pid(商品ID) varchar 10 不能为空,外键,与products表关联
pnum(商品数量) int
(3).要求创建一个名为 procedure_add_product的存储过程,功能是在商品表中添加商品, 要求输入参数 为以下6个,各个参数的数据类型与products表格中对应字段一致:
pid:商品ID
cid:类别ID
pname:商品名称
price:价格
quantity:库存数量
sale_qty:销售数量
(4).请使用调用语句调用procedure_add_product存储过程,在商品表中给酒类添加商品如下:法国拉菲干红葡萄酒,商品id是p0007 , 价格150元/瓶,库存数量300,销售数量0。
张裕解百纳蛇龙珠干红葡萄酒,商品id是p0008,价格120元/瓶,库存数量500,销售数量0。
(5).阿美向购物车添加了如下商品,请完善数据库中cart表的信息:法国拉菲干红葡萄酒3瓶,水蜜桃5斤
(6).创建一个视图view_sale,查询每种商品的销售数量,并按销售数量以降序排列,并分别用列名:商品名,销售数量
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
第10题/db_hrm.myd
/*
Navicat MySQL Data Transfer
Source Server : demo
Source Server Type : MySQL
Source Server Version : 50743 (5.7.43-log)
Source Host : localhost:3306
Source Schema : db_hrm
Target Server Type : MySQL
Target Server Version : 50743 (5.7.43-log)
File Encoding : 65001
Date: 15/07/2024 13:10:10
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for department
-- ----------------------------
DROP TABLE IF EXISTS `department`;
CREATE TABLE `department` (
`did` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
`dname` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`description` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '',
PRIMARY KEY (`did`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of department
-- ----------------------------
INSERT INTO `department` VALUES ('01', '技术部', '');
INSERT INTO `department` VALUES ('02', '财务部', '');
INSERT INTO `department` VALUES ('03', '销售部', '');
-- ----------------------------
-- Table structure for employee
-- ----------------------------
DROP TABLE IF EXISTS `employee`;
CREATE TABLE `employee` (
`eid` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
`ename` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`age` int(11) NULL DEFAULT NULL,
`sex` char(2) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`position` char(10) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`did` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
PRIMARY KEY (`eid`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of employee
-- ----------------------------
INSERT INTO `employee` VALUES ('001', '张一', 40, '男', '项目经理', '01');
INSERT INTO `employee` VALUES ('002', '张二', 35, '男', '架构师', '01');
INSERT INTO `employee` VALUES ('003', '张三', 30, '男', '程序员', '01');
INSERT INTO `employee` VALUES ('004', '张四', 25, '女', '程序员', '01');
INSERT INTO `employee` VALUES ('005', '李五', 25, '女', '出纳', '02');
INSERT INTO `employee` VALUES ('006', '李六', 35, '女', '会计', '02');
INSERT INTO `employee` VALUES ('007', '孙七', 25, '男', '业务员', '03');
-- ----------------------------
-- Table structure for salary
-- ----------------------------
DROP TABLE IF EXISTS `salary`;
CREATE TABLE `salary` (
`sid` int(11) NOT NULL AUTO_INCREMENT,
`eid` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`money` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`stime` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
PRIMARY KEY (`sid`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 8 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of salary
-- ----------------------------
INSERT INTO `salary` VALUES (1, '001', '10000', '2024-01-15');
INSERT INTO `salary` VALUES (2, '002', '8000', '2024-01-15');
INSERT INTO `salary` VALUES (3, '003', '15000', '2024-01-15');
INSERT INTO `salary` VALUES (4, '004', '12000', '2024-01-15');
INSERT INTO `salary` VALUES (5, '005', '9000', '2024-01-15');
INSERT INTO `salary` VALUES (6, '006', '9500', '2024-01-15');
INSERT INTO `salary` VALUES (7, '007', '20000', '2024-01-15');
SET FOREIGN_KEY_CHECKS = 1;
第1题/db_hotel.myd
/*
Navicat MySQL Data Transfer
Source Server : 答题专用
Source Server Type : MySQL
Source Server Version : 50743 (5.7.43-log)
Source Host : localhost:6033
Source Schema : db_hotel
Target Server Type : MySQL
Target Server Version : 50743 (5.7.43-log)
File Encoding : 65001
Date: 16/10/2024 14:13:34
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for t_hotel
-- ----------------------------
DROP TABLE IF EXISTS `t_hotel`;
CREATE TABLE `t_hotel` (
`hid` int(10) NOT NULL AUTO_INCREMENT,
`hname` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`location` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`level` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
PRIMARY KEY (`hid`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 10011 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of t_hotel
-- ----------------------------
INSERT INTO `t_hotel` VALUES (10001, '香蕉酒店', '成都市', '五星');
INSERT INTO `t_hotel` VALUES (10002, '菠萝酒店', '上海市', '三星');
INSERT INTO `t_hotel` VALUES (10003, '荔枝酒店', '湖南市', '二星');
INSERT INTO `t_hotel` VALUES (10004, '西瓜酒店', '上海市', '四星');
INSERT INTO `t_hotel` VALUES (10005, '草莓酒店', '北京市', '五星');
INSERT INTO `t_hotel` VALUES (10006, '芒果酒店', '天津市', '二星');
INSERT INTO `t_hotel` VALUES (10007, '榴莲酒店', '兰州市', '二星');
-- ----------------------------
-- Table structure for t_room
-- ----------------------------
DROP TABLE IF EXISTS `t_room`;
CREATE TABLE `t_room` (
`rid` int(10) NOT NULL AUTO_INCREMENT,
`hid` int(10) NOT NULL,
`rname` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`price` decimal(10, 2) NULL DEFAULT NULL,
PRIMARY KEY (`rid`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 10031 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of t_room
-- ----------------------------
INSERT INTO `t_room` VALUES (10001, 10005, '豪华大床房', 836.00);
INSERT INTO `t_room` VALUES (10002, 10007, '大床房', 888.00);
INSERT INTO `t_room` VALUES (10003, 10007, '家庭间', 736.00);
INSERT INTO `t_room` VALUES (10004, 10006, '豪华大床房', 934.00);
INSERT INTO `t_room` VALUES (10005, 10004, '家庭间', 712.00);
INSERT INTO `t_room` VALUES (10006, 10009, '家庭间', 518.00);
INSERT INTO `t_room` VALUES (10007, 10003, '家庭间', 959.00);
INSERT INTO `t_room` VALUES (10008, 10005, '家庭间', 884.00);
INSERT INTO `t_room` VALUES (10009, 10004, '家庭间', 670.00);
INSERT INTO `t_room` VALUES (10010, 10004, '家庭间', 872.00);
INSERT INTO `t_room` VALUES (10011, 10007, '标准间', 552.00);
INSERT INTO `t_room` VALUES (10012, 10002, '家庭间', 819.00);
INSERT INTO `t_room` VALUES (10013, 10005, '标准间', 844.00);
INSERT INTO `t_room` VALUES (10014, 10010, '家庭间', 573.00);
INSERT INTO `t_room` VALUES (10015, 10008, '标准间', 807.00);
INSERT INTO `t_room` VALUES (10016, 10010, '家庭间', 968.00);
INSERT INTO `t_room` VALUES (10017, 10001, '家庭间', 543.00);
INSERT INTO `t_room` VALUES (10018, 10006, '豪华大床房', 972.00);
INSERT INTO `t_room` VALUES (10019, 10006, '标准间', 883.00);
INSERT INTO `t_room` VALUES (10020, 10010, '标准间', 727.00);
INSERT INTO `t_room` VALUES (10021, 10003, '大床房', 772.00);
INSERT INTO `t_room` VALUES (10022, 10009, '家庭间', 605.00);
INSERT INTO `t_room` VALUES (10023, 10003, '家庭间', 999.00);
INSERT INTO `t_room` VALUES (10024, 10009, '家庭间', 653.00);
INSERT INTO `t_room` VALUES (10025, 10008, '家庭间', 790.00);
INSERT INTO `t_room` VALUES (10026, 10008, '标准间', 711.00);
INSERT INTO `t_room` VALUES (10027, 10002, '豪华大床房', 999.00);
INSERT INTO `t_room` VALUES (10028, 10001, '大床房', 601.00);
INSERT INTO `t_room` VALUES (10029, 10002, '标准间', 600.00);
INSERT INTO `t_room` VALUES (10030, 10001, '大床房', 850.00);
SET FOREIGN_KEY_CHECKS = 1;
第2题/db_hotel.myd
/*
Navicat MySQL Data Transfer
Source Server : 答题专用
Source Server Type : MySQL
Source Server Version : 50743 (5.7.43-log)
Source Host : localhost:6033
Source Schema : db_hotel
Target Server Type : MySQL
Target Server Version : 50743 (5.7.43-log)
File Encoding : 65001
Date: 16/10/2024 16:47:35
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for t_hotel
-- ----------------------------
DROP TABLE IF EXISTS `t_hotel`;
CREATE TABLE `t_hotel` (
`hid` int(10) NOT NULL AUTO_INCREMENT,
`hname` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`location` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`level` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
PRIMARY KEY (`hid`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 10011 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of t_hotel
-- ----------------------------
INSERT INTO `t_hotel` VALUES (10001, '华宇辉煌大酒店', '成都市', '五星');
INSERT INTO `t_hotel` VALUES (10002, '帝景盛世大酒店', '长沙市', '三星');
INSERT INTO `t_hotel` VALUES (10003, '悦榕阁大酒店', '湖南市', '二星');
INSERT INTO `t_hotel` VALUES (10004, '天悦澜庭大酒店', '青岛市', '四星');
INSERT INTO `t_hotel` VALUES (10005, '锦绣华庭大酒店', '北京市', '五星');
INSERT INTO `t_hotel` VALUES (10006, '苹果大酒店', '天津市', '二星');
INSERT INTO `t_hotel` VALUES (10007, '御龙盛世大酒店', '兰州市', '二星');
-- ----------------------------
-- Table structure for t_room
-- ----------------------------
DROP TABLE IF EXISTS `t_room`;
CREATE TABLE `t_room` (
`rid` int(10) NOT NULL AUTO_INCREMENT,
`hid` int(10) NOT NULL,
`rname` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`price` decimal(10, 2) NULL DEFAULT NULL,
PRIMARY KEY (`rid`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 10031 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of t_room
-- ----------------------------
INSERT INTO `t_room` VALUES (10001, 10005, '豪华大床房', 836.00);
INSERT INTO `t_room` VALUES (10002, 10007, '大床房', 888.00);
INSERT INTO `t_room` VALUES (10003, 10007, '家庭间', 736.00);
INSERT INTO `t_room` VALUES (10004, 10006, '豪华大床房', 934.00);
INSERT INTO `t_room` VALUES (10005, 10004, '家庭间', 712.00);
INSERT INTO `t_room` VALUES (10006, 10009, '家庭间', 518.00);
INSERT INTO `t_room` VALUES (10007, 10003, '家庭间', 959.00);
INSERT INTO `t_room` VALUES (10008, 10005, '家庭间', 884.00);
INSERT INTO `t_room` VALUES (10009, 10004, '家庭间', 670.00);
INSERT INTO `t_room` VALUES (10010, 10004, '标准间', 872.00);
INSERT INTO `t_room` VALUES (10011, 10007, '标准间', 552.00);
INSERT INTO `t_room` VALUES (10012, 10002, '家庭间', 819.00);
INSERT INTO `t_room` VALUES (10013, 10005, '标准间', 844.00);
INSERT INTO `t_room` VALUES (10014, 10010, '家庭间', 573.00);
INSERT INTO `t_room` VALUES (10015, 10008, '标准间', 807.00);
INSERT INTO `t_room` VALUES (10016, 10010, '家庭间', 968.00);
INSERT INTO `t_room` VALUES (10017, 10001, '家庭间', 543.00);
INSERT INTO `t_room` VALUES (10018, 10006, '豪华大床房', 972.00);
INSERT INTO `t_room` VALUES (10019, 10006, '标准间', 883.00);
INSERT INTO `t_room` VALUES (10020, 10010, '标准间', 727.00);
INSERT INTO `t_room` VALUES (10021, 10003, '大床房', 772.00);
INSERT INTO `t_room` VALUES (10022, 10009, '家庭间', 605.00);
INSERT INTO `t_room` VALUES (10023, 10003, '家庭间', 999.00);
INSERT INTO `t_room` VALUES (10024, 10009, '家庭间', 653.00);
INSERT INTO `t_room` VALUES (10025, 10008, '家庭间', 790.00);
INSERT INTO `t_room` VALUES (10026, 10008, '标准间', 711.00);
INSERT INTO `t_room` VALUES (10027, 10002, '豪华大床房', 999.00);
INSERT INTO `t_room` VALUES (10028, 10001, '大床房', 601.00);
INSERT INTO `t_room` VALUES (10029, 10002, '标准间', 600.00);
INSERT INTO `t_room` VALUES (10030, 10001, '大床房', 850.00);
SET FOREIGN_KEY_CHECKS = 1;
第3题/db_library.myd
/*
Navicat MySQL Data Transfer
Source Server : localhost
Source Server Type : MySQL
Source Server Version : 50743 (5.7.43-log)
Source Host : localhost:6033
Source Schema : db_library
Target Server Type : MySQL
Target Server Version : 50743 (5.7.43-log)
File Encoding : 65001
Date: 21/10/2024 11:41:26
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for books
-- ----------------------------
DROP TABLE IF EXISTS `books`;
CREATE TABLE `books` (
`bookID` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
`author` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`isbn` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`publishedDate` date NULL DEFAULT NULL,
`available` int(11),
PRIMARY KEY (`bookID`) USING BTREE,
UNIQUE INDEX `isbn`(`isbn`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of books
-- ----------------------------
INSERT INTO `books` VALUES (1, '数据库系统概论', '王珊', '9787302123456', '2010-01-01', 1);
INSERT INTO `books` VALUES (2, '操作系统原理', '汤小丹', '9787302567890', '2015-09-01', 1);
INSERT INTO `books` VALUES (3, '编程珠玑', 'Jon Bentley', '9787115234567', '1989-09-15', 0);
-- ----------------------------
-- Table structure for borrowrecords
-- ----------------------------
DROP TABLE IF EXISTS `borrowrecords`;
CREATE TABLE `borrowrecords` (
`borrowRecordID` int(11) NOT NULL AUTO_INCREMENT,
`readerID` int(11) NULL DEFAULT NULL,
`bookID` int(11) NULL DEFAULT NULL,
`borrowDate` date NOT NULL,
`dueDate` date NOT NULL,
`returned` int(11) NULL DEFAULT 0,
PRIMARY KEY (`borrowRecordID`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of borrowrecords
-- ----------------------------
INSERT INTO `borrowrecords` VALUES (1, 1, 1, '2024-09-16', '2024-09-21', 0);
INSERT INTO `borrowrecords` VALUES (2, 2, 2, '2024-09-18', '2024-09-28', 0);
INSERT INTO `borrowrecords` VALUES (3, 1, 3, '2024-09-11', '2024-09-19', 1);
-- ----------------------------
-- Table structure for readers
-- ----------------------------
DROP TABLE IF EXISTS `readers`;
CREATE TABLE `readers` (
`readerID` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
`phoneNumber` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`email` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`registrationDate` date NULL DEFAULT NULL,
PRIMARY KEY (`readerID`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of readers
-- ----------------------------
INSERT INTO `readers` VALUES (1, '张三', '12345678901', 'zhangsan@example.com', '2024-05-21');
INSERT INTO `readers` VALUES (2, '李四', '09876543210', 'lisi@example.com', '2024-05-20');
SET FOREIGN_KEY_CHECKS = 1;
第4题/db_marathon.myd
/*
Navicat MySQL Data Transfer
Source Server : localhost
Source Server Type : MySQL
Source Server Version : 50743 (5.7.43-log)
Source Host : localhost:6033
Source Schema : db_marathon
Target Server Type : MySQL
Target Server Version : 50743 (5.7.43-log)
File Encoding : 65001
Date: 21/10/2024 11:58:15
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for marathonresults
-- ----------------------------
DROP TABLE IF EXISTS `marathonresults`;
CREATE TABLE `marathonresults` (
`resultId` int(11) NOT NULL AUTO_INCREMENT,
`participantId` int(11) NULL DEFAULT NULL,
`raceId` int(11) NULL DEFAULT NULL,
`finishTime` time NOT NULL,
`rank` int(11) NOT NULL,
PRIMARY KEY (`resultId`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 8 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of marathonresults
-- ----------------------------
INSERT INTO `marathonresults` VALUES (1, 1, 1, '03:05:12', 7);
INSERT INTO `marathonresults` VALUES (2, 1, 2, '03:07:25', 9);
INSERT INTO `marathonresults` VALUES (3, 1, 3, '02:55:32', 5);
INSERT INTO `marathonresults` VALUES (4, 2, 1, '03:20:45', 25);
INSERT INTO `marathonresults` VALUES (5, 3, 2, '02:58:30', 4);
INSERT INTO `marathonresults` VALUES (6, 3, 3, '03:15:00', 15);
INSERT INTO `marathonresults` VALUES (7, 2, 4, '03:30:00', 30);
-- ----------------------------
-- Table structure for participants
-- ----------------------------
DROP TABLE IF EXISTS `participants`;
CREATE TABLE `participants` (
`participantId` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
`age` int(11) NOT NULL,
`gender` char(2) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
`city` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`email` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`phone` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`registrationDate` date NULL DEFAULT NULL,
PRIMARY KEY (`participantId`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of participants
-- ----------------------------
INSERT INTO `participants` VALUES (1, '张三', 30, '男', '北京', 'zhangsan@ex.com', '13800000001', '2023-01-01');
INSERT INTO `participants` VALUES (2, '李四', 28, '女', '上海', 'lisi@ex.com', '13900000002', '2023-02-15');
INSERT INTO `participants` VALUES (3, '王五', 35, '男', '广州', 'wangwu@ex.com', '13600000003', '2023-03-10');
-- ----------------------------
-- Table structure for races
-- ----------------------------
DROP TABLE IF EXISTS `races`;
CREATE TABLE `races` (
`raceId` int(11) NOT NULL AUTO_INCREMENT,
`raceName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
`raceDate` date NOT NULL,
`location` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
PRIMARY KEY (`raceId`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of races
-- ----------------------------
INSERT INTO `races` VALUES (1, '2023北京马拉松', '2023-04-16', '北京');
INSERT INTO `races` VALUES (2, '2023上海马拉松', '2023-11-05', '上海');
INSERT INTO `races` VALUES (3, '2023广州马拉松', '2023-12-10', '广州');
INSERT INTO `races` VALUES (4, '2023深圳马拉松', '2023-10-22', '深圳');
SET FOREIGN_KEY_CHECKS = 1;
第5题/db_insurance.myd
/*
Navicat MySQL Data Transfer
Source Server : localhost
Source Server Type : MySQL
Source Server Version : 50743 (5.7.43-log)
Source Host : localhost:6033
Source Schema : db_insurance
Target Server Type : MySQL
Target Server Version : 50743 (5.7.43-log)
File Encoding : 65001
Date: 31/10/2024 15:21:23
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for t_cars
-- ----------------------------
DROP TABLE IF EXISTS `t_cars`;
CREATE TABLE `t_cars` (
`carID` int(11) NOT NULL AUTO_INCREMENT,
`customerID` int(11) NOT NULL,
`licensePlate` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`brand` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`model` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`vin` varchar(17) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
PRIMARY KEY (`carID`) USING BTREE,
UNIQUE INDEX `vin`(`vin`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of t_cars
-- ----------------------------
INSERT INTO `t_cars` VALUES (1, 1, '京A12345', '宝马', 'X5', '1HGCM82633A123456');
INSERT INTO `t_cars` VALUES (2, 1, '京A11545', '小米', 'su7', 'ACEGA599357892478');
INSERT INTO `t_cars` VALUES (3, 2, '沪B67890', '奔驰', 'S级', 'WDD22412345678901');
INSERT INTO `t_cars` VALUES (4, 3, '粤C24680', '奥迪', 'A6L', 'WAUZZZ4G5DN123456');
INSERT INTO `t_cars` VALUES (5, 4, '鄂A12587', '特斯拉', 'Model S', 'TSL20222408071567');
-- ----------------------------
-- Table structure for t_customers
-- ----------------------------
DROP TABLE IF EXISTS `t_customers`;
CREATE TABLE `t_customers` (
`customerID` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
`phone` varchar(11) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`email` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`address` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
PRIMARY KEY (`customerID`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of t_customers
-- ----------------------------
INSERT INTO `t_customers` VALUES (1, '张三', '13800138000', 'zhangsan@example.com', '北京市朝阳区');
INSERT INTO `t_customers` VALUES (2, '李四', '13900139000', 'lisi@example.com', '上海市黄浦区');
INSERT INTO `t_customers` VALUES (3, '王五', '13700137000', 'wangwu@example.com', '广州市天河区');
-- ----------------------------
-- Table structure for t_policies
-- ----------------------------
DROP TABLE IF EXISTS `t_policies`;
CREATE TABLE `t_policies` (
`policyID` int(11) NOT NULL AUTO_INCREMENT,
`customerID` int(11) NOT NULL,
`carID` int(11) NOT NULL,
`policyNumber` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
`startDate` date NULL DEFAULT NULL,
`endDate` date NULL DEFAULT NULL,
`premium` decimal(10, 2) NULL DEFAULT NULL,
`coverageType` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
PRIMARY KEY (`policyID`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 7 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of t_policies
-- ----------------------------
INSERT INTO `t_policies` VALUES (1, 1, 1, 'P123456', '2023-01-01', '2024-01-01', 8000.00, '全险');
INSERT INTO `t_policies` VALUES (2, 1, 2, 'P135687', '2023-06-01', '2024-01-01', 12000.00, '全险+保养');
INSERT INTO `t_policies` VALUES (3, 2, 3, 'P654321', '2023-02-15', '2024-02-15', 10000.00, '交强险+车损险');
INSERT INTO `t_policies` VALUES (4, 3, 4, 'P789456', '2023-03-10', '2024-03-10', 9500.00, '全险+玻璃险');
INSERT INTO `t_policies` VALUES (5, 1, 1, 'P123587', '2024-01-01', '2025-01-01', 8500.00, '全险');
INSERT INTO `t_policies` VALUES (6, 4, 5, 'P202408', '2023-08-01', '2024-08-01', 7500.00, '交强险');
SET FOREIGN_KEY_CHECKS = 1;
第6题/db_teacher.myd
/*
Navicat MySQL Data Transfer
Source Server : localhost
Source Server Type : MySQL
Source Server Version : 50743 (5.7.43-log)
Source Host : localhost:6033
Source Schema : db_teacher
Target Server Type : MySQL
Target Server Version : 50743 (5.7.43-log)
File Encoding : 65001
Date: 01/11/2024 08:40:33
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for t_courses
-- ----------------------------
DROP TABLE IF EXISTS `t_courses`;
CREATE TABLE `t_courses` (
`courseID` int(11) NOT NULL AUTO_INCREMENT,
`courseName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
`teacherID` int(11) NULL DEFAULT NULL,
PRIMARY KEY (`courseID`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 8 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of t_courses
-- ----------------------------
INSERT INTO `t_courses` VALUES (1, '数据结构', 1);
INSERT INTO `t_courses` VALUES (2, '高等数学', 2);
INSERT INTO `t_courses` VALUES (3, '中国古代文学', 3);
INSERT INTO `t_courses` VALUES (4, '操作系统', 4);
INSERT INTO `t_courses` VALUES (5, 'C语言', 5);
INSERT INTO `t_courses` VALUES (6, '线性代数', 2);
INSERT INTO `t_courses` VALUES (7, '量子力学', 3);
-- ----------------------------
-- Table structure for t_salaries
-- ----------------------------
DROP TABLE IF EXISTS `t_salaries`;
CREATE TABLE `t_salaries` (
`salaryID` int(11) NOT NULL AUTO_INCREMENT,
`teacherID` int(11) NULL DEFAULT NULL,
`basicSalary` decimal(10, 2) NOT NULL,
`bonus` decimal(10, 2) NULL DEFAULT 0.00,
`totalSalary` decimal(10, 2) GENERATED ALWAYS AS ((`basicSalary` + `bonus`)) STORED NULL,
`year` int(11) NOT NULL,
PRIMARY KEY (`salaryID`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 9 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of t_salaries
-- ----------------------------
INSERT INTO `t_salaries` VALUES (1, 1, 8000.00, 2000.00, DEFAULT, 2023);
INSERT INTO `t_salaries` VALUES (2, 2, 9000.00, 1500.00, DEFAULT, 2023);
INSERT INTO `t_salaries` VALUES (3, 3, 12000.00, 3000.00, DEFAULT, 2023);
INSERT INTO `t_salaries` VALUES (4, 1, 8200.00, 2100.00, DEFAULT, 2022);
INSERT INTO `t_salaries` VALUES (5, 2, 8800.00, 1400.00, DEFAULT, 2022);
INSERT INTO `t_salaries` VALUES (6, 3, 12200.00, 2900.00, DEFAULT, 2022);
INSERT INTO `t_salaries` VALUES (7, 4, 5300.00, 1000.00, DEFAULT, 2023);
INSERT INTO `t_salaries` VALUES (8, 5, 7500.00, 2400.00, DEFAULT, 2023);
-- ----------------------------
-- Table structure for t_teachers
-- ----------------------------
DROP TABLE IF EXISTS `t_teachers`;
CREATE TABLE `t_teachers` (
`teacherID` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
`gender` enum('男','女') CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`age` int(11) NULL DEFAULT NULL,
`email` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`phoneNumber` varchar(11) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`departmentID` int(11) NOT NULL,
`isactive` int(11) NULL DEFAULT 1,
PRIMARY KEY (`teacherID`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of t_teachers
-- ----------------------------
INSERT INTO `t_teachers` VALUES (1, '马庆存', '男', 45, 'zhangsan@example.com', '13800138000', 1, 1);
INSERT INTO `t_teachers` VALUES (2, '娄妮野', '女', 32, 'lisi@example.com', '13900139000', 2, 1);
INSERT INTO `t_teachers` VALUES (3, '陆沁琴', '男', 50, 'wangwu@example.com', NULL, 3, 0);
INSERT INTO `t_teachers` VALUES (4, '柳毓影', '女', 28, NULL, NULL, 1, 1);
INSERT INTO `t_teachers` VALUES (5, '郑姗璐', '女', 35, 'zhengshanlu@example.com', NULL, 1, 1);
SET FOREIGN_KEY_CHECKS = 1;
第7题/db_music.myd
/*
Navicat MySQL Data Transfer
Source Server : localhost
Source Server Type : MySQL
Source Server Version : 50743 (5.7.43-log)
Source Host : localhost:6033
Source Schema : db_music
Target Server Type : MySQL
Target Server Version : 50743 (5.7.43-log)
File Encoding : 65001
Date: 07/11/2024 17:16:33
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for songs
-- ----------------------------
DROP TABLE IF EXISTS `songs`;
CREATE TABLE `songs` (
`song_id` int(11) NOT NULL AUTO_INCREMENT,
`song_name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
`singer_name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
`album_name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`genre` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`release_date` date NULL DEFAULT NULL,
PRIMARY KEY (`song_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 15 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of songs
-- ----------------------------
INSERT INTO `songs` VALUES (1, '以父之名', '周杰伦', '叶惠美', '流行', '2003-07-31');
INSERT INTO `songs` VALUES (2, '晴天', '周杰伦', '叶惠美', '流行', '2003-07-31');
INSERT INTO `songs` VALUES (3, '东风破', '周杰伦', '叶惠美', '中国风', '2003-07-31');
INSERT INTO `songs` VALUES (4, '床边故事', '周杰伦', '周杰伦床边故事', '流行', '2016-06-24');
INSERT INTO `songs` VALUES (5, '前世情人', '周杰伦', '周杰伦床边故事', '流行', '2016-06-24');
INSERT INTO `songs` VALUES (6, '说走就走', '周杰伦', '周杰伦床边故事', '嘻哈', '2016-06-24');
INSERT INTO `songs` VALUES (7, '夜第七章', '周杰伦', '十一月的萧邦', '流行', '2005-11-01');
INSERT INTO `songs` VALUES (8, '一路向北', '周杰伦', '十一月的萧邦', '流行', '2005-11-01');
INSERT INTO `songs` VALUES (9, '逆鳞', '周杰伦', '十一月的萧邦', '嘻哈', '2005-11-01');
INSERT INTO `songs` VALUES (10, '漂移', '周杰伦', '十一月的萧邦', '摇滚', '2005-11-01');
INSERT INTO `songs` VALUES (11, 'Shape of You', 'Ed Sheeran', '÷ (Divide)', 'Pop', '2017-01-06');
INSERT INTO `songs` VALUES (12, 'Blinding Lights', 'The Weeknd', 'After Hours', 'Pop/R&B', '2020-03-06');
INSERT INTO `songs` VALUES (13, 'Levitating', 'Dua Lipa', 'Future Nostalgia', 'Pop/Dance', '2020-08-28');
INSERT INTO `songs` VALUES (14, 'Radioactive', 'Imagine Dragons', 'Night Visions', 'Alternative Rock/Pop', '2012-09-04');
-- ----------------------------
-- Table structure for user_song_stats
-- ----------------------------
DROP TABLE IF EXISTS `user_song_stats`;
CREATE TABLE `user_song_stats` (
`stat_id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` int(11) NULL DEFAULT NULL,
`song_id` int(11) NULL DEFAULT NULL,
`play_count` int(11) NULL DEFAULT 0,
`total_play_time` int(11) NULL DEFAULT 0,
PRIMARY KEY (`stat_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 13 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of user_song_stats
-- ----------------------------
INSERT INTO `user_song_stats` VALUES (1, 1, 1, 15, 90);
INSERT INTO `user_song_stats` VALUES (2, 1, 2, 8, 48);
INSERT INTO `user_song_stats` VALUES (3, 2, 2, 1, 3);
INSERT INTO `user_song_stats` VALUES (4, 2, 3, 22, 132);
INSERT INTO `user_song_stats` VALUES (5, 2, 5, 10, 60);
INSERT INTO `user_song_stats` VALUES (6, 3, 6, 7, 42);
INSERT INTO `user_song_stats` VALUES (7, 3, 8, 19, 114);
INSERT INTO `user_song_stats` VALUES (8, 2, 8, 4, 15);
INSERT INTO `user_song_stats` VALUES (9, 1, 9, 3, 18);
INSERT INTO `user_song_stats` VALUES (10, 2, 10, 5, 30);
INSERT INTO `user_song_stats` VALUES (11, 3, 11, 11, 66);
INSERT INTO `user_song_stats` VALUES (12, 2, 12, 2, 12);
-- ----------------------------
-- Table structure for users
-- ----------------------------
DROP TABLE IF EXISTS `users`;
CREATE TABLE `users` (
`user_id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
`password` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
`email` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`created_date` date NULL DEFAULT NULL,
PRIMARY KEY (`user_id`) USING BTREE,
UNIQUE INDEX `username`(`username`) USING BTREE,
UNIQUE INDEX `email`(`email`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of users
-- ----------------------------
INSERT INTO `users` VALUES (1, '张三', 'password123', 'zhangsan@qq.com', '2023-01-01');
INSERT INTO `users` VALUES (2, '李四', 'securepwd456', 'lisi@google.com', '2023-10-02');
INSERT INTO `users` VALUES (3, '王五', 'mypassword789', 'wangwu@qq.com', '2023-08-03');
SET FOREIGN_KEY_CHECKS = 1;
第8题/db_maintenance.myd
/*
Navicat MySQL Data Transfer
Source Server : localhost
Source Server Type : MySQL
Source Server Version : 50743 (5.7.43-log)
Source Host : localhost:6033
Source Schema : db_maintenance
Target Server Type : MySQL
Target Server Version : 50743 (5.7.43-log)
File Encoding : 65001
Date: 07/11/2024 14:56:33
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for customers
-- ----------------------------
DROP TABLE IF EXISTS `customers`;
CREATE TABLE `customers` (
`customerID` int(11) NOT NULL AUTO_INCREMENT,
`cuname` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
`gender` enum('男','女') CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`age` int(11) NULL DEFAULT NULL,
`phone` varchar(11) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`email` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
PRIMARY KEY (`customerID`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of customers
-- ----------------------------
INSERT INTO `customers` VALUES (1, '张三', '男', 30, '13842138480', 'zhangsan@qq.com');
INSERT INTO `customers` VALUES (2, '李四', '女', 25, '13457804500', 'lisi@qq.com');
INSERT INTO `customers` VALUES (3, '王五', '男', 45, '13538355400', 'wangwu@qq.com');
-- ----------------------------
-- Table structure for repairs
-- ----------------------------
DROP TABLE IF EXISTS `repairs`;
CREATE TABLE `repairs` (
`repairID` int(11) NOT NULL AUTO_INCREMENT,
`vehicleID` int(11) NULL DEFAULT NULL,
`repairDate` date NOT NULL,
`description` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL,
`cost` decimal(10, 2) NULL DEFAULT NULL,
PRIMARY KEY (`repairID`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 14 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of repairs
-- ----------------------------
INSERT INTO `repairs` VALUES (1, 1, '2022-05-20', '更换空气滤清器', 150.00);
INSERT INTO `repairs` VALUES (2, 1, '2023-03-10', '更换火花塞', 300.00);
INSERT INTO `repairs` VALUES (3, 1, '2023-10-01', '更换刹车片', 800.00);
INSERT INTO `repairs` VALUES (4, 1, '2023-11-15', '发动机保养', 1200.00);
INSERT INTO `repairs` VALUES (5, 1, '2024-01-15', '四轮定位', 450.00);
INSERT INTO `repairs` VALUES (6, 2, '2022-07-30', '更换冷却液', 200.00);
INSERT INTO `repairs` VALUES (7, 2, '2023-08-20', '更换刹车油', 250.00);
INSERT INTO `repairs` VALUES (8, 2, '2023-10-10', '更换轮胎', 2000.00);
INSERT INTO `repairs` VALUES (9, 2, '2023-12-05', '更换雨刮片', 50.00);
INSERT INTO `repairs` VALUES (10, 3, '2022-11-15', '更换轮胎(后轮)', 1000.00);
INSERT INTO `repairs` VALUES (11, 3, '2023-06-05', '更换轮胎(前轮)', 1000.00);
INSERT INTO `repairs` VALUES (12, 3, '2023-11-05', '检查并更换电池', 400.00);
INSERT INTO `repairs` VALUES (13, 3, '2024-02-20', '全车检查', 800.00);
-- ----------------------------
-- Table structure for vehicles
-- ----------------------------
DROP TABLE IF EXISTS `vehicles`;
CREATE TABLE `vehicles` (
`vehicleID` int(11) NOT NULL AUTO_INCREMENT,
`plateNumber` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
`brand` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
`model` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
`proDate` year NULL DEFAULT NULL,
`customerID` int(11) NULL DEFAULT NULL,
PRIMARY KEY (`vehicleID`) USING BTREE,
UNIQUE INDEX `plateNumber`(`plateNumber`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of vehicles
-- ----------------------------
INSERT INTO `vehicles` VALUES (1, '鄂A12345', 'Toyota', 'Camry', 2018, 1);
INSERT INTO `vehicles` VALUES (2, '京C51545', 'Honda', 'Civic', 2016, 2);
INSERT INTO `vehicles` VALUES (3, '沪B67890', 'BMW', 'X5', 2020, 3);
INSERT INTO `vehicles` VALUES (4, '津B25487', 'xiaomi', 'su7', 2024, 4);
SET FOREIGN_KEY_CHECKS = 1;
第9题/db_bus.myd
CREATE DATABASE IF NOT EXISTS `db_bus` /*!40100 DEFAULT CHARACTER SET utf8 */;
USE `db_bus`;
/*
Navicat MySQL Data Transfer
Source Server : 1
Source Server Type : MySQL
Source Server Version : 50743 (5.7.43-log)
Source Host : localhost:3306
Source Schema : db_bus
Target Server Type : MySQL
Target Server Version : 50743 (5.7.43-log)
File Encoding : 65001
Date: 19/06/2024 14:21:11
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for t_attendance
-- ----------------------------
DROP TABLE IF EXISTS `t_attendance`;
CREATE TABLE `t_attendance` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`b_id` int(10) NOT NULL,
`d_id` int(10) NOT NULL,
`starttime` datetime NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 10101 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of t_attendance
-- ----------------------------
INSERT INTO `t_attendance` VALUES (10001, 10022, 10002, '2023-08-25 09:07:31');
INSERT INTO `t_attendance` VALUES (10002, 10012, 10030, '2023-09-07 11:06:41');
INSERT INTO `t_attendance` VALUES (10003, 10014, 10010, '2023-08-31 10:41:17');
INSERT INTO `t_attendance` VALUES (10004, 10005, 10012, '2023-03-23 11:12:33');
INSERT INTO `t_attendance` VALUES (10005, 10017, 10023, '2023-08-18 14:47:37');
INSERT INTO `t_attendance` VALUES (10006, 10029, 10016, '2023-01-06 12:29:33');
INSERT INTO `t_attendance` VALUES (10007, 10008, 10004, '2023-01-24 16:52:11');
INSERT INTO `t_attendance` VALUES (10008, 10021, 10028, '2023-03-26 19:37:46');
INSERT INTO `t_attendance` VALUES (10009, 10001, 10026, '2023-09-07 13:53:22');
INSERT INTO `t_attendance` VALUES (10010, 10024, 10006, '2023-03-23 09:26:14');
INSERT INTO `t_attendance` VALUES (10011, 10013, 10018, '2023-07-05 19:57:22');
INSERT INTO `t_attendance` VALUES (10013, 10016, 10007, '2023-10-20 09:07:33');
INSERT INTO `t_attendance` VALUES (10014, 10018, 10014, '2023-02-10 15:44:22');
INSERT INTO `t_attendance` VALUES (10015, 10010, 10001, '2023-09-02 18:56:22');
INSERT INTO `t_attendance` VALUES (10016, 10003, 10029, '2023-03-07 10:18:40');
INSERT INTO `t_attendance` VALUES (10017, 10004, 10021, '2023-05-28 12:14:06');
INSERT INTO `t_attendance` VALUES (10018, 10002, 10005, '2023-03-08 12:37:45');
INSERT INTO `t_attendance` VALUES (10019, 10006, 10008, '2023-04-04 14:22:22');
INSERT INTO `t_attendance` VALUES (10020, 10030, 10024, '2023-03-05 14:50:02');
INSERT INTO `t_attendance` VALUES (10021, 10026, 10003, '2023-11-21 10:32:26');
INSERT INTO `t_attendance` VALUES (10022, 10023, 10013, '2023-11-06 13:28:33');
INSERT INTO `t_attendance` VALUES (10023, 10020, 10019, '2023-12-30 19:34:49');
INSERT INTO `t_attendance` VALUES (10024, 10027, 10015, '2023-06-25 13:35:57');
INSERT INTO `t_attendance` VALUES (10025, 10019, 10009, '2023-08-19 14:58:24');
INSERT INTO `t_attendance` VALUES (10026, 10015, 10020, '2023-01-22 15:25:28');
INSERT INTO `t_attendance` VALUES (10027, 10011, 10017, '2023-08-23 14:02:10');
INSERT INTO `t_attendance` VALUES (10028, 10007, 10025, '2023-02-25 11:05:08');
INSERT INTO `t_attendance` VALUES (10029, 10028, 10011, '2023-06-03 16:56:48');
INSERT INTO `t_attendance` VALUES (10030, 10009, 10022, '2023-08-01 11:26:41');
INSERT INTO `t_attendance` VALUES (10031, 10020, 10013, '2023-11-05 10:11:38');
INSERT INTO `t_attendance` VALUES (10032, 10018, 10015, '2023-05-21 18:35:25');
INSERT INTO `t_attendance` VALUES (10033, 10020, 10009, '2023-02-23 14:16:09');
INSERT INTO `t_attendance` VALUES (10034, 10024, 10030, '2023-08-12 13:46:36');
INSERT INTO `t_attendance` VALUES (10035, 10022, 10025, '2023-03-01 13:59:40');
INSERT INTO `t_attendance` VALUES (10036, 10027, 10022, '2023-04-23 17:15:48');
INSERT INTO `t_attendance` VALUES (10037, 10029, 10017, '2023-07-13 09:03:04');
INSERT INTO `t_attendance` VALUES (10038, 10025, 10023, '2023-02-02 19:08:01');
INSERT INTO `t_attendance` VALUES (10039, 10017, 10016, '2023-05-30 13:22:39');
INSERT INTO `t_attendance` VALUES (10040, 10029, 10021, '2023-11-21 14:04:09');
INSERT INTO `t_attendance` VALUES (10041, 10029, 10006, '2023-06-29 13:32:19');
INSERT INTO `t_attendance` VALUES (10042, 10004, 10010, '2023-01-13 19:04:23');
INSERT INTO `t_attendance` VALUES (10043, 10023, 10019, '2023-09-05 16:36:19');
INSERT INTO `t_attendance` VALUES (10044, 10022, 10023, '2023-03-08 10:34:10');
INSERT INTO `t_attendance` VALUES (10045, 10029, 10001, '2023-01-05 11:31:37');
INSERT INTO `t_attendance` VALUES (10046, 10001, 10021, '2023-12-04 09:25:37');
INSERT INTO `t_attendance` VALUES (10047, 10024, 10014, '2023-01-09 15:07:08');
INSERT INTO `t_attendance` VALUES (10048, 10001, 10003, '2023-08-14 14:52:45');
INSERT INTO `t_attendance` VALUES (10049, 10025, 10001, '2023-06-15 11:27:16');
INSERT INTO `t_attendance` VALUES (10050, 10020, 10013, '2023-08-17 16:42:19');
INSERT INTO `t_attendance` VALUES (10051, 10019, 10009, '2023-05-02 19:25:32');
INSERT INTO `t_attendance` VALUES (10052, 10024, 10004, '2023-02-16 09:40:03');
INSERT INTO `t_attendance` VALUES (10053, 10021, 10004, '2023-02-05 11:25:57');
INSERT INTO `t_attendance` VALUES (10054, 10008, 10011, '2023-08-09 16:08:41');
INSERT INTO `t_attendance` VALUES (10055, 10017, 10009, '2023-08-09 09:12:14');
INSERT INTO `t_attendance` VALUES (10056, 10023, 10027, '2023-07-01 13:49:50');
INSERT INTO `t_attendance` VALUES (10057, 10010, 10009, '2023-07-07 15:37:31');
INSERT INTO `t_attendance` VALUES (10058, 10022, 10029, '2023-01-01 17:06:08');
INSERT INTO `t_attendance` VALUES (10059, 10030, 10021, '2023-11-30 19:45:59');
INSERT INTO `t_attendance` VALUES (10060, 10025, 10025, '2023-12-10 09:49:41');
INSERT INTO `t_attendance` VALUES (10061, 10021, 10005, '2023-01-19 09:01:16');
INSERT INTO `t_attendance` VALUES (10062, 10003, 10011, '2023-11-09 18:17:00');
INSERT INTO `t_attendance` VALUES (10063, 10020, 10010, '2023-01-07 16:13:11');
INSERT INTO `t_attendance` VALUES (10064, 10018, 10013, '2023-10-26 19:16:52');
INSERT INTO `t_attendance` VALUES (10065, 10027, 10018, '2023-04-22 14:41:12');
INSERT INTO `t_attendance` VALUES (10066, 10010, 10007, '2023-06-18 19:36:42');
INSERT INTO `t_attendance` VALUES (10067, 10003, 10029, '2023-04-16 19:17:53');
INSERT INTO `t_attendance` VALUES (10068, 10007, 10018, '2023-12-01 16:02:21');
INSERT INTO `t_attendance` VALUES (10069, 10023, 10018, '2023-05-27 18:15:06');
INSERT INTO `t_attendance` VALUES (10070, 10023, 10002, '2023-02-07 09:36:44');
INSERT INTO `t_attendance` VALUES (10071, 10004, 10014, '2023-10-25 12:42:57');
INSERT INTO `t_attendance` VALUES (10072, 10030, 10029, '2023-11-02 15:48:02');
INSERT INTO `t_attendance` VALUES (10073, 10012, 10002, '2023-02-13 09:53:12');
INSERT INTO `t_attendance` VALUES (10074, 10013, 10008, '2023-06-03 13:01:57');
INSERT INTO `t_attendance` VALUES (10075, 10024, 10010, '2023-12-06 13:37:06');
INSERT INTO `t_attendance` VALUES (10076, 10001, 10030, '2023-09-25 17:11:48');
INSERT INTO `t_attendance` VALUES (10077, 10028, 10011, '2023-03-17 16:00:25');
INSERT INTO `t_attendance` VALUES (10078, 10008, 10010, '2023-03-30 16:18:53');
INSERT INTO `t_attendance` VALUES (10079, 10025, 10030, '2023-01-04 12:35:19');
INSERT INTO `t_attendance` VALUES (10080, 10017, 10021, '2023-03-06 17:14:56');
INSERT INTO `t_attendance` VALUES (10081, 10011, 10020, '2023-03-25 09:43:01');
INSERT INTO `t_attendance` VALUES (10082, 10009, 10017, '2023-04-27 18:40:03');
INSERT INTO `t_attendance` VALUES (10083, 10017, 10020, '2023-02-03 10:40:02');
INSERT INTO `t_attendance` VALUES (10084, 10019, 10018, '2023-10-18 09:47:19');
INSERT INTO `t_attendance` VALUES (10085, 10021, 10005, '2023-02-02 10:51:45');
INSERT INTO `t_attendance` VALUES (10086, 10007, 10013, '2023-12-13 09:13:00');
INSERT INTO `t_attendance` VALUES (10087, 10021, 10030, '2023-06-01 10:55:42');
INSERT INTO `t_attendance` VALUES (10088, 10022, 10022, '2023-07-25 10:45:58');
INSERT INTO `t_attendance` VALUES (10089, 10001, 10005, '2023-07-05 19:23:06');
INSERT INTO `t_attendance` VALUES (10090, 10030, 10028, '2023-07-29 14:14:38');
INSERT INTO `t_attendance` VALUES (10091, 10030, 10017, '2023-03-12 11:45:46');
INSERT INTO `t_attendance` VALUES (10092, 10002, 10015, '2023-03-05 15:44:02');
INSERT INTO `t_attendance` VALUES (10093, 10019, 10022, '2023-08-10 11:58:36');
INSERT INTO `t_attendance` VALUES (10094, 10019, 10019, '2023-07-05 09:19:00');
INSERT INTO `t_attendance` VALUES (10095, 10004, 10027, '2023-04-01 13:52:53');
INSERT INTO `t_attendance` VALUES (10096, 10011, 10005, '2023-01-14 15:09:12');
INSERT INTO `t_attendance` VALUES (10097, 10005, 10016, '2023-01-24 12:23:13');
INSERT INTO `t_attendance` VALUES (10098, 10012, 10027, '2023-10-24 16:27:54');
INSERT INTO `t_attendance` VALUES (10099, 10005, 10019, '2023-09-12 16:13:19');
INSERT INTO `t_attendance` VALUES (10100, 10007, 10028, '2023-09-02 19:04:05');
-- ----------------------------
-- Table structure for t_bus
-- ----------------------------
DROP TABLE IF EXISTS `t_bus`;
CREATE TABLE `t_bus` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`platenum` char(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
`linenum` char(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 10031 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of t_bus
-- ----------------------------
INSERT INTO `t_bus` VALUES (10001, '汽A112955', '518');
INSERT INTO `t_bus` VALUES (10002, '汽A607691', '518');
INSERT INTO `t_bus` VALUES (10003, '汽A104488', '546');
INSERT INTO `t_bus` VALUES (10004, '汽A610201', '518');
INSERT INTO `t_bus` VALUES (10005, '汽A206621', '518');
INSERT INTO `t_bus` VALUES (10006, '汽A841495', '709');
INSERT INTO `t_bus` VALUES (10007, '汽A747618', '156');
INSERT INTO `t_bus` VALUES (10008, '汽A480086', '912');
INSERT INTO `t_bus` VALUES (10009, '汽A184551', '518');
INSERT INTO `t_bus` VALUES (10010, '汽A178252', '709');
INSERT INTO `t_bus` VALUES (10011, '汽A268525', '659');
INSERT INTO `t_bus` VALUES (10012, '汽A164580', '912');
INSERT INTO `t_bus` VALUES (10013, '汽A684949', '156');
INSERT INTO `t_bus` VALUES (10014, '汽A787640', '518');
INSERT INTO `t_bus` VALUES (10015, '汽A796090', '156');
INSERT INTO `t_bus` VALUES (10016, '汽A008904', '709');
INSERT INTO `t_bus` VALUES (10017, '汽A031829', '518');
INSERT INTO `t_bus` VALUES (10018, '汽A064919', '156');
INSERT INTO `t_bus` VALUES (10019, '汽A351322', '572');
INSERT INTO `t_bus` VALUES (10020, '汽A504115', '156');
INSERT INTO `t_bus` VALUES (10021, '汽A503898', '546');
INSERT INTO `t_bus` VALUES (10022, '汽A586531', '709');
INSERT INTO `t_bus` VALUES (10023, '汽A931569', '546');
INSERT INTO `t_bus` VALUES (10024, '汽A730504', '709');
INSERT INTO `t_bus` VALUES (10025, '汽A440456', '518');
INSERT INTO `t_bus` VALUES (10026, '汽A371647', '912');
INSERT INTO `t_bus` VALUES (10027, '汽A367102', '518');
INSERT INTO `t_bus` VALUES (10028, '汽A293829', '912');
INSERT INTO `t_bus` VALUES (10029, '汽A185285', '659');
INSERT INTO `t_bus` VALUES (10030, '汽A112046', '546');
-- ----------------------------
-- Table structure for t_driver
-- ----------------------------
DROP TABLE IF EXISTS `t_driver`;
CREATE TABLE `t_driver` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`sex` char(2) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`age` int(3) NULL DEFAULT NULL,
`salary` decimal(10, 2) NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 10032 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of t_driver
-- ----------------------------
INSERT INTO `t_driver` VALUES (10001, '崔震南', '男', 52, 7441.00);
INSERT INTO `t_driver` VALUES (10002, '蔡宇宁', '男', 48, 7565.00);
INSERT INTO `t_driver` VALUES (10003, '吴子异', '男', 48, 8017.00);
INSERT INTO `t_driver` VALUES (10004, '雷岚', '女', 48, 8880.00);
INSERT INTO `t_driver` VALUES (10005, '蒋璐', '女', 33, 7922.00);
INSERT INTO `t_driver` VALUES (10006, '谢云熙', '男', 50, 7101.00);
INSERT INTO `t_driver` VALUES (10007, '于安琪', '女', 49, 7130.00);
INSERT INTO `t_driver` VALUES (10008, '尹睿', '男', 37, 7987.00);
INSERT INTO `t_driver` VALUES (10009, '吴睿', '男', 46, 8326.00);
INSERT INTO `t_driver` VALUES (10010, '曾睿', '男', 30, 7882.00);
INSERT INTO `t_driver` VALUES (10011, '钟睿', '男', 33, 8263.00);
INSERT INTO `t_driver` VALUES (10012, '谢嘉伦', '男', 54, 8394.00);
INSERT INTO `t_driver` VALUES (10013, '杜震南', '男', 53, 7001.00);
INSERT INTO `t_driver` VALUES (10014, '韩云熙', '男', 38, 7179.00);
INSERT INTO `t_driver` VALUES (10015, '董子韬', '男', 49, 7271.00);
INSERT INTO `t_driver` VALUES (10016, '金安琪', '女', 54, 8684.00);
INSERT INTO `t_driver` VALUES (10017, '卢子异', '男', 36, 7699.00);
INSERT INTO `t_driver` VALUES (10018, '叶子异', '男', 51, 7144.00);
INSERT INTO `t_driver` VALUES (10019, '姚震南', '男', 36, 7136.00);
INSERT INTO `t_driver` VALUES (10020, '程震南', '男', 28, 8821.00);
INSERT INTO `t_driver` VALUES (10021, '于秀英', '女', 44, 8815.00);
INSERT INTO `t_driver` VALUES (10022, '傅睿', '男', 50, 7667.00);
INSERT INTO `t_driver` VALUES (10023, '向安琪', '女', 30, 8852.00);
INSERT INTO `t_driver` VALUES (10024, '谢致远', '男', 54, 8299.00);
INSERT INTO `t_driver` VALUES (10025, '姚云熙', '男', 48, 8610.00);
INSERT INTO `t_driver` VALUES (10026, '姚震南', '男', 48, 8631.00);
INSERT INTO `t_driver` VALUES (10027, '蒋致远', '男', 40, 7779.00);
INSERT INTO `t_driver` VALUES (10028, '郑秀英', '女', 38, 7157.00);
INSERT INTO `t_driver` VALUES (10029, '熊睿', '男', 42, 8965.00);
INSERT INTO `t_driver` VALUES (10030, '余岚', '女', 52, 7105.00);
INSERT INTO `t_driver` VALUES (10031, '李常德', '男', 34, 7200.00);
SET FOREIGN_KEY_CHECKS = 1;
$
编写说明:湖北省技能高考理论考试《计算机网络技术(计算机基础)考纲百套卷》,依据《湖北省技能高考计算机专业考试大纲专业课考试纲要》编写每门课程均分三层训练:基础层(具象化支架)以拆解考点为微目标,紧扣考纲 掌握理解 要求编写考点训练卷;巩固层(关联性支架)强化知识交叉与场景关联,按考纲专题编专题训练卷;应用层(引导性支架)聚焦真题突破,结合知识模块与教材编写课程综合卷
本试卷是第80卷,按《MySQL数据库基础》范围和要求编写。具体内容为:掌握MySQL数据库中创建.更新.重命名.复制.删除.查看数据表的操作方法,掌握SQL查询的基本概念,熟练掌握简单查询.统计函数查询.条件查询.连接查询的操作方法,使用SQL语句创建.删除.修改.查看视图的操作方法及应用,掌握触发器的基本概念.种类和使用场景,熟练掌握创建.删除触发器的操作方法,掌握存储过程与存储函数的特性.应用场景及核心区别;熟练执行存储过程的创建.修改与删除操作;掌握在存储过程中运用游标实现数据集的逐行处理技术;精通存储过程体的构建方法(含变量声明.流程控制.游标操作),并能规范调用存储函数
湖北省《计算机类考纲百套卷》第80卷
《MySQL数据库基础》
考试时间80分钟 满分100分
班级 姓名 学号 成绩
一.数据库操作题(本大题共10小题,每题10分,共100分)
1.酒店预订数据库db_hotel包含了t_hotel酒店表和t_room房间表。
t_hotel包含字段hid(酒店编号),hname(酒店名称),location(地址).level(星级评价)。
t_room包含字段 rid(房间编号),hid(酒店编号),rname(房间名称),price(价格)。
上述数据库及数据表已经创建,请按要求完成以下操作:
(1).创建一个客人表hotel_people,字段名称.类型.长度.需求如下:
id(主键id),int(1).0,非空,自动增加,无符号类型。
cname(客户名),char20,注释客户名;
birthday(出生日期),date类型;
jianjie(简介),text类型。
(2).酒店表中插入一条数据((1).0008, 张口大酒店, 上海市, 四星)。
(3).修改苹果大酒店星级评价为五星。
(4).删除地址为青岛市所有房间信息。
(5).查询武汉市和长沙市的酒店名称,星级评价,房间名称和价格。
(6).查询每个酒店所有房间的价格总和,显示酒店名称和价格总和(列名为total_price)
(7).创建一个视图view_hotel,要求视图中显示出二星房间名称和价格。
(8).创建一个触发器trg_insert_room,该触发器将在t_room表上插入之后被触发。触发器需要执行以下操作:插入 t_room 表记录时,如果 hid 酒店编号不存在于 t_hotel 表中,则自动在 t_hotel 表中新增此酒店编号 hid,其余字段可为空;
(9).创建一个存储过程pro_get_AvgPrice,该存储过程接收一个城市名(city_name)和一个房间类型(room_type)作为输入参数,数据类型为VARCHAR(255)和VARCHAR(30),并计算该城市对应房间类型的平均价格。最后,存储过程输出一段话,格式为“XX的XX类型的房间平均价格为XX”。
答案:
1).CREATE TABLE hotel_people (
id INT(1) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT '主键id',
cname CHAR(20) COMMENT '客户名',
birthday DATE,
jianjie TEXT
);
2).INSERT INTO t_hotel (hid, hname, location, level)
VALUES ('0008', '张口大酒店', '上海市', '四星');
3).UPDATE t_hotel SET level = '五星' WHERE hname = '苹果大酒店';
4).DELETE FROM t_room WHERE hid IN (SELECT hid FROM t_hotel WHERE location = '青岛市');
5).SELECT h.hname, h.level, r.rname, r.price FROM t_hotel h JOIN t_room r ON h.hid = r.hid WHERE h.location IN ('武汉市', '长沙市');
6).SELECT h.hname, SUM(r.price) AS total_price FROM t_hotel h JOIN t_room r ON h.hid = r.hid GROUP BY h.hid;
7).CREATE VIEW view_hotel AS SELECT r.rname, r.price FROM t_room r JOIN t_hotel h ON r.hid = h.hid WHERE h.level = '二星';
8).DELIMITER //CREATE TRIGGER trg_insert_room AFTER INSERT ON t_room FOR EACH ROW
BEGIN
IF NOT EXISTS (SELECT 1 FROM t_hotel WHERE hid = NEW.hid) THEN
INSERT INTO t_hotel (hid) VALUES (NEW.hid);
END IF;
END//DELIMITER ;
9).DELIMITER // CREATE PROCEDURE pro_get_AvgPrice(IN city_name VARCHAR(255), IN room_type VARCHAR(30))
BEGIN
DECLARE avg_price DECIMAL(10,2);
SELECT AVG(r.price) INTO avg_price
FROM t_room r
JOIN t_hotel h ON r.hid = h.hid
WHERE h.location = city_name AND r.rname LIKE CONCAT('%', room_type, '%');
SELECT CONCAT(city_name, '的', room_type, '类型的房间平均价格为', IFNULL(avg_price, 0)) AS result;
END//DELIMITER ;
2.图书管理数据库db_library包含了3个表,即读者表(readers).书籍表(books).借阅记录表(borrowrecords)。
读者表readers包含字段readerID(读者ID),name(读者姓名),phoneNumber(电话号码).email(邮箱).registrationDate(注册时间),主键是readerID
书籍表books包含字段bookID(书籍ID),title(书籍标题),author(作者),isbn(书号),publishedDate(出版日期),available(借阅状态:(1).:未借出,0:借出),主键是bookID
借阅阅记录表borrowRecords包含字段borrowRecordID(借阅记录ID),readerID(借阅读者ID),bookID(借阅书籍ID),borrowDate(借阅时间),dueDate(应还日期),returned(归还状态:1:归还,0:未归还),主键是borrowRecordID.上述数据库及数据表已经创建,请按要求完成以下操作。
(1).修改books表的借阅状态默认为1
(2).创建一个书籍预定表reservation,字段如下:
字段名称 类型 长度 需求
reservationID (预定编号) int 主键,自增长
readerID(读者ID) int 不能为空
bookID(书籍ID) int 不能为空
date(预定日期) date
status(预定状态) varchar 默认值为待处理
(3).在书籍表中新增一条记录,书籍标题:追风筝的人,作者:卡勒德·胡赛尼,书号:9787530214313,出版日期:2006-05-01,借阅状态:1
(4).请用sql语句找出读者ID为2借阅的所有书籍,要求显示书籍标题,作者,书号,出版日期,借阅状态,借阅时间。
(5).请用sql语句查询出当前有书籍尚未归还的读者。要求显示读者姓名,电话号码,邮箱,借阅时间,应还日期,returned=0表示未归还。
(6).创建一个视图view_readerHistory要求显示读者的借阅历史记录,要求显示读者姓名,书籍标题,书号,借阅时间,应还日期,是否归还。
(7).创建一个触发器update_books,该触发器将在borrowrecords表插入操作之后被触发。触发器需要执行以下操作:根据新增的书籍ID,更新书籍表books中借阅状态为0(借出),;
(8).创建一个存储过程update_borrowrecords,该存储过程接收一个借阅记录ID(p_borrowRecordID)和一个归还状态(p_returned)作为输入参数,数据类型均为int,根据输入的借阅记录ID和归还状态更新借阅记录表borrowRecords中的记录;
答案:
1).ALTER TABLE books MODIFY available INT DEFAULT 1;
2).CREATE TABLE reservation (reservationID INT PRIMARY KEY AUTO_INCREMENT,readerID INT NOT NULL,bookID INT NOT NULL,date DATE,status VARCHAR(50) DEFAULT '待处理'
);
3).INSERT INTO books (title, author, isbn, publishedDate, available)
VALUES ('追风筝的人', '卡勒德·胡赛尼', '9787530214313', '2006-05-01', 1);
4).SELECT b.title, b.author, b.isbn, b.publishedDate, b.available, br.borrowDate
FROM borrowRecords br JOIN books b ON br.bookID = b.bookID WHERE br.readerID = 2;
5).SELECT r.name, r.phoneNumber, r.email, br.borrowDate, br.dueDate FROM readers r JOIN borrowRecords br ON r.readerID = br.readerID WHERE br.returned = 0;
6).CREATE VIEW view_readerHistory AS SELECT r.name AS 读者姓名, b.title AS 书籍标题, b.isbn AS 书号,br.borrowDate AS 借阅时间, br.dueDate AS 应还日期,CASE WHEN br.returned = 1 THEN '已归还' ELSE '未归还' END AS 是否归还 FROM readers r JOIN borrowRecords br ON r.readerID = br.readerID JOIN books b ON br.bookID = b.bookID;
7).DELIMITER //CREATE TRIGGER update_books AFTER INSERT ON borrowRecords FOR EACH ROW BEGIN UPDATE books SET available = 0 WHERE bookID = NEW.bookID;
END//DELIMITER ;
8).DELIMITER //CREATE PROCEDURE update_borrowrecords(IN p_borrowRecordID INT, IN p_returned INT) BEGIN UPDATE borrowRecords SET returned = p_returned WHERE borrowRecordID = p_borrowRecordID;END//DELIMITER ;
3.马拉松数据库db_marathon包含了3个表,即参赛者表(participants).比赛表(races).成绩表(marathonresults)。
参赛者表participants包含字段participantId(参赛者ID),name(姓名),age(年龄).gender(性别).city(城市).email(电子邮件).phone(电话).registrationDate(注册日期),主键是participantId
比赛表races包含字段raceId(比赛ID).raceName(比赛名称).raceDate(比赛日期).location(比赛地点),主键是raceId
马拉松成绩表marathonResults包含字段resultId(马拉松成绩ID),participantId(参赛者ID),raceId(比赛ID),finishTime(完成时间),rank(排名),主键是resultId
上述数据库及数据表已经创建,请按要求完成以下操作。
(1).修改participants表gender字段设置只能存储男或者女。
(2).创建一个训练表tranning,字段如下:
字段名称 类型 长度 需求
sessionId(预定编号) int 主键,自增长 不能为空
participantId(参赛者ID) int 不能为空
sessionDate(训练日期) date
duration(训练时长) int
location(训练地点) varchar (1).00
(3).为李四插入一条比赛记录,李四在2023年上海马拉松的完成时间是02:22:01,排名第10
(4).请用sql语句查询所有参赛者及其参加的比赛名称和完成时间,要求显示姓名,性别,年龄,比赛名称,完成时间,排名。排名按升序排序。
(5).请用sql语句查询出张三在马拉松比赛中最好的一次排名记录。要求显示姓名,比赛名称,完成时间,排名。
(6).创建一个视图view_grade显示参赛人员的马拉松记录数据,要求显示姓名,比赛名称,完成时间,排名。其中排名按升序排序,完成时间按降序排序。
(7).创建一个触发器trigger_delete,该触发器将在marathonresults表新增操作之前被触发。触发器需要执行以下操作:检查参赛者信息是否存在,如果不存在,则阻止插入操作并抛出错误信息参赛者信息不存在!;
(8).创建一个存储过程pro_select,该存储过程接收一个参赛者ID(p_participantId)作为输入参数,数据类型为INT,根据输入的参赛者ID,查询出参赛者的姓名,完成时间,排名;
答案:
1).ALTER TABLE participants MODIFY gender ENUM('男', '女');
2).CREATE TABLE training (
sessionId INT PRIMARY KEY AUTO_INCREMENT NOT NULL,
participantId INT NOT NULL,
sessionDate DATE,
duration INT,
location VARCHAR(100)
);
3).INSERT INTO marathonResults (participantId, raceId, finishTime, rank)
SELECT p.participantId, r.raceId, '02:22:01', 10 FROM participants p, races r
WHERE p.name = '李四' AND r.raceName = '上海马拉松' AND r.raceDate = '2023-01-01';
4).SELECT p.name, p.gender, p.age, r.raceName, m.finishTime, m.rank FROM participants p JOIN marathonResults m ON p.participantId = m.participantId JOIN races r ON m.raceId = r.raceId ORDER BY m.rank ASC;
5).SELECT p.name, r.raceName, m.finishTime, m.rank FROM participants p JOIN marathonResults m ON p.participantId = m.participantId JOIN races r ON m.raceId = r.raceId WHERE p.name = '张三' ORDER BY m.rank ASC LIMIT 1;
6).CREATE VIEW view_grade AS SELECT p.name, r.raceName, m.finishTime, m.rank
FROM participants p JOIN marathonResults m ON p.participantId = m.participantId JOIN races r ON m.raceId = r.raceId ORDER BY m.rank ASC, m.finishTime DESC;
7).DELIMITER //
CREATE TRIGGER trigger_delete BEFORE INSERT ON marathonResults FOR EACH ROW
BEGIN
IF NOT EXISTS (SELECT 1 FROM participants WHERE participantId = NEW.participantId) THEN
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = '参赛者信息不存在!';
END IF;
END//DELIMITER ;
8).DELIMITER //CREATE PROCEDURE pro_select(IN p_participantId INT)
BEGIN
SELECT p.name, m.finishTime, m.rank
FROM participants p
JOIN marathonResults m ON p.participantId = m.participantId
WHERE p.participantId = p_participantId;
END//DELIMITER ;
4.汽车保险系统数据库db_insurance包含了t_customers客户表.t_cars汽车表.t_policies保单表。
t_customers客户表包含字段customerID(客户ID),name(客户姓名),phone(电话号码),email(邮箱),address(地址)。
t_cars汽车表包含字段carID(汽车ID),customerID(客户ID),licensePlate(汽车牌照),brand(汽车品牌),model(汽车型号),vin(车辆识别号)。
t_policies保单表包含字段policyID(保单ID),customerID(客户ID),carID(汽车ID),policyNumber(保单号),startDate(开始时间),endDate(结束时间),premium(保单费用),coverageType(保单类型)。
上述数据库及数据表已经创建,请按要求完成以下操作。
(1).创建一个保养记录表t_maintenance,字段如下:
字段名称 类型 长度 需求
recordID(记录编号) int 主键,自增长
carID(汽车ID) int 不能为空
date(保养日期) date
mileage(里程数) int
type(保养类型) varchar (1).00
details(保养记录) text
cost(保养费用) decimal (1).0,2
(2).在客户表中插入一条客户数据('赵六', '13824897891', 'zhaoliu@example.com', '武汉市江汉区')
(3).将车牌号为鄂A12587的汽车型号修改为Model Y;
(4).将t_policies表中policyNumber字段修改为唯一约束;
(5).查询所有客户的保单信息,按保单费用升序排序,要求显示客户姓名,保单类型,开始时间,结束时间,保单费用。
(6).查询客户张三拥有的汽车数量和保单总金额,列名分别为汽车数量,保单总金额。
(7).创建一个视图view_details,要求视图中显示出所有客户的姓名.汽车品牌.汽车型号.保单类型.结束时间,查询结果按照结束时间升序,按照汽车品牌降序;
(8).创建一个名称为trg_delete_customer的触发器用来自动删除数据,具体描述如下:当一个客户从t_customers表中删除后,与该客户相关的所有汽车记录和保单记录也会被相应地删除,。
9.创建一个名称为pro_select的存储过程查询指定客户的车辆信息,具体描述如下:这个存储过程接收一个客户姓名(in_name)作为输入参数,数据类型为varchar((1).00),查询出客户名下的汽车信息,要求显示汽车牌照.汽车品牌.汽车型号;
答案:
1).CREATE TABLE t_maintenance (
recordID INT PRIMARY KEY AUTO_INCREMENT,
carID INT NOT NULL,
date DATE,
mileage INT,
type VARCHAR(100),
details TEXT,
cost DECIMAL(10,2)
);
2).INSERT INTO t_customers (name, phone, email, address)
VALUES ('赵六', '13824897891', 'zhaoliu@example.com', '武汉市江汉区');
3).UPDATE t_cars SET model = 'Model Y' WHERE licensePlate = '鄂A12587';
4).ALTER TABLE t_policies ADD UNIQUE (policyNumber);
5).SELECT c.name, p.coverageType, p.startDate, p.endDate, p.premium FROM t_customers c JOIN t_policies p ON c.customerID = p.customerID ORDER BY p.premium ASC;
6).SELECT COUNT(DISTINCT car.carID) AS 汽车数量, SUM(p.premium) AS 保单总金额 FROM t_customers c LEFT JOIN t_cars car ON c.customerID = car.customerID LEFT JOIN t_policies p ON c.customerID = p.customerID WHERE c.name = '张三';
7).CREATE VIEW view_details AS SELECT c.name, car.brand, car.model, p.coverageType, p.endDate FROM t_customers c JOIN t_cars car ON c.customerID = car.customerID
JOIN t_policies p ON c.customerID = p.customerID ORDER BY p.endDate ASC, car.brand DESC;
8).DELIMITER //CREATE TRIGGER trg_delete_customer
BEFORE DELETE ON t_customers
FOR EACH ROW
BEGIN
DELETE FROM t_policies WHERE customerID = OLD.customerID;
DELETE FROM t_cars WHERE customerID = OLD.customerID;
END//DELIMITER ;
9).DELIMITER //CREATE PROCEDURE pro_select(IN in_name VARCHAR(100))
BEGIN
SELECT car.licensePlate, car.brand, car.model
FROM t_customers c
JOIN t_cars car ON c.customerID = car.customerID
WHERE c.name = in_name;
END//DELIMITER ;
5.教师系统数据库db_teacher包含了t_teachers教师表.t_courses课程表.t_salaries薪资表。
t_teachers教师表包含字段 teacherID(教师ID),name(教师名称),gender(教师性别),age(教师年龄),email(邮箱),phoneNumber(联系电话),departmentID(部门ID),isactive(是否在职,1:在职,0:离职)。
t_courses课程表包含字段courseID(课程ID),courseName(课程名称),teacherID(教师ID)。
t_salaries薪资表包含字段salaryID(薪资ID),teacherID(教师ID),basicSalary(基本薪资),bonus(奖金),totalSalary(总薪资),year(年份)。
上述数据库及数据表已经创建,请按要求完成以下操作。
(1).创建一个部门表t_departments,字段如下:
字段名称 类型 长度 需求
departmentID(部门ID) int 主键,自增长
departmentName(部门名称) varchar 100 不能为空
(2).在部门表中插入四条记录,部门名称分别为计算机系,数学系,文学系,物理系。
(3).将计算机系教师在2023年的基本薪资(basicSalary)整体上调200
(4).郑姗璐老师已经离职,请更新她的在职状态。
(5).查询每位教师的课程信息,要求显示教师名称.教师性别.教师年龄.课程名称。
(6).查询2023年在职教师的薪资信息,要求显示教师名称.教师性别.教师年龄.院系名称.基本工资.奖金.总薪资。
(7).创建一个视图view_info,要求视图中显示出所有在职教师的教师名称.教师性别.教师年龄.部门名称.基本薪资.年份。
(8).创建一个名称为update_teacher的触发器用来删除薪资表中的记录,具体描述如下:当在t_teachers表中更新记录之后,如果教师的在职状态从在职变成离职((1).→0),则删除t_salaries薪资表对应的数据。
9.创建一个名称为pro_getTotalSalary的存储过程计算指定教师在该年份的总薪资,具体描述如下:这个存储过程接收一个教师ID(p_teacherID),数据类型为int,一个年份(p_year),数据类型为int,作为输入参数,并查询指定年份该教师在t_salaries表中的总薪资,然后通过输出参数(p_totalSalary)返回总薪资,返回类型为decimal(10, 2)。
答案:
1).CREATE TABLE t_departments (
departmentID INT PRIMARY KEY AUTO_INCREMENT,
departmentName VARCHAR(100) NOT NULL
);
2).INSERT INTO t_departments (departmentName) VALUES ('计算机系'), ('数学系'), ('文学系'), ('物理系');
3).UPDATE t_salaries s JOIN t_teachers t ON s.teacherID = t.teacherID JOIN t_departments d ON t.departmentID = d.departmentID SET s.basicSalary = s.basicSalary + 200 WHERE d.departmentName = '计算机系' AND s.year = 2023;
4).UPDATE t_teachers SET isactive = 0 WHERE name = '郑姗璐';
5).SELECT t.name, t.gender, t.age, c.courseName FROM t_teachers t JOIN t_courses c ON t.teacherID = c.teacherID;
6).SELECT t.name, t.gender, t.age, d.departmentName,s.basicSalary, s.bonus, s.totalSalary FROM t_teachers t JOIN t_departments d ON t.departmentID = d.departmentID JOIN t_salaries s ON t.teacherID = s.teacherID WHERE t.isactive = 1 AND s.year = 2023;
7).CREATE VIEW view_info AS SELECT t.name, t.gender, t.age, d.departmentName, s.basicSalary, s.year FROM t_teachers t JOIN t_departments d ON t.departmentID = d.departmentID JOIN t_salaries s ON t.teacherID = s.teacherID WHERE t.isactive = 1;
8).DELIMITER //CREATE TRIGGER update_teacher AFTER UPDATE ON t_teachers
FOR EACH ROW BEGIN
IF OLD.isactive = 1 AND NEW.isactive = 0 THEN
DELETE FROM t_salaries WHERE teacherID = NEW.teacherID;
END IF;
END//DELIMITER ;
9).DELIMITER //CREATE PROCEDURE pro_getTotalSalary(
IN p_teacherID INT,
IN p_year INT,
OUT p_totalSalary DECIMAL(10,2)
)
BEGIN
SELECT totalSalary INTO p_totalSalary
FROM t_salaries
WHERE teacherID = p_teacherID AND year = p_year;
END//DELIMITER ;
6.音乐数据库db_music包含了users用户表.songs歌曲表.user_song_stats用户歌曲统计表。
users用户表包含字段user_id(用户ID),username(用户名),password(用户密码),email(邮箱),created_date(创建日期)。
songs歌曲表包含字段song_id(歌曲ID),song_name(歌曲名称),singer_name(歌手姓名),album_name(专辑名称),genre(音乐类型),release_date(发行日期)。
user_song_stats用户歌曲统计表包含字段stat_id(统计ID),user_id(用户ID),song_id(歌曲ID),play_count(播放次数),total_play_time(播放时长,单位分钟)。
上述数据库及数据表已经创建,请按要求完成以下操作。
(1).创建一个歌单表favorite_songs,字段如下:
字段名称 类型 长度 需求
favorite_id(喜好ID) int 主键,自增长
user_id(用户ID) int 不能为空
song_id(歌曲ID) int 不能为空
add_date(添加日期) date
(2).在歌曲表中插入一条记录(告白气球,周杰伦,周杰伦的床边故事,流行,2016-06-24)。
(3).用户张三播放了晴天5次,听歌时长12分钟,请更新user_song_stats用户歌曲统计表中的记录。
(4).歌曲Shape of You已下架,请删除对应的歌曲和统计记录。
(5).查询播放次数最多的歌曲名称及其播放次数,列名分别为:name.count;
(6).查询每个用户的总播放次数和总播放时间,列名分别为:用户名.播放次数.播放时间。
(7).创建一个视图view_details,要求视图中显示出所有用户的用户名.歌曲名称.播放次数.播放时长。按播放次数升序排序;
(8).创建一个名称为trg_songUpdate的触发器用来添加歌单表表中的记录,具体描述如下:当在user_song_stats用户歌曲统计表中更新记录之后,如果播放次数大于等于25,则向歌单表新增记录,日期默认为当前日期
9.创建一个名称为pro_update的存储过程更新指定统计ID的数据,具体描述如下:这个存储过程接收一个统计ID(in_statID),数据类型为int,一个播放次数(in_count),数据类型为int作为输入参数。根据统计ID(in_statID)在user_song_stats用户歌曲统计表里更新播放次数(in_count);现调用存储过程,in_statID为4,in_count为25;
答案:
1).CREATE TABLE favorite_songs (
favorite_id INT PRIMARY KEY AUTO_INCREMENT,
user_id INT NOT NULL,
song_id INT NOT NULL,
add_date DATE
);
2).INSERT INTO songs (song_name, singer_name, album_name, genre, release_date)
VALUES ('告白气球', '周杰伦', '周杰伦的床边故事', '流行', '2016-06-24');
3).UPDATE user_song_stats SET play_count = play_count + 5,total_play_time = total_play_time + 12 WHERE user_id = (SELECT user_id FROM users WHERE username = '张三') AND song_id = (SELECT song_id FROM songs WHERE song_name = '晴天');
4).DELETE FROM user_song_stats WHERE song_id = (SELECT song_id FROM songs WHERE song_name = 'Shape of You');
DELETE FROM songs WHERE song_name = 'Shape of You';
5).SELECT s.song_name AS name, MAX(stats.play_count) AS count FROM songs s JOIN user_song_stats stats ON s.song_id = stats.song_id GROUP BY s.song_id ORDER BY count DESC LIMIT 1;
6).SELECT u.username AS 用户名,SUM(stats.play_count) AS 播放次数,
SUM(stats.total_play_time) AS 播放时间 FROM users u JOIN user_song_stats stats ON u.user_id = stats.user_id GROUP BY u.user_id;
7).CREATE VIEW view_details AS SELECT u.username, s.song_name, stats.play_count, stats.total_play_time FROM users u JOIN user_song_stats stats ON u.user_id = stats.user_id JOIN songs s ON stats.song_id = s.song_id ORDER BY stats.play_count ASC;
8).DELIMITER // CREATE TRIGGER trg_songUpdate AFTER UPDATE ON user_song_stats
FOR EACH ROW BEGIN
IF NEW.play_count >= 25 THEN
INSERT INTO favorite_songs (user_id, song_id, add_date)
VALUES (NEW.user_id, NEW.song_id, CURDATE());
END IF;
END//DELIMITER ;
9).DELIMITER //CREATE PROCEDURE pro_update(IN in_statID INT, IN in_count INT)
BEGIN
UPDATE user_song_stats SET play_count = in_count WHERE stat_id = in_statID;
END//DELIMITER ;
7.汽车维修系统数据库db_maintenance包含了customers客户表.vehicles车辆表.repairs维修记录表。
customers客户表包含字段customerID(客户ID),cuname(客户姓名),gender(性别),age(年龄),phone(电话号码),email(邮箱)。
vehicles车辆表包含字段vehicleID(车辆ID),plateNumber(车牌号),brand(车辆品牌),model(车辆型号),proDate(车辆生产年份),customerID(客户ID)。
repairs维修记录表包含字段repairID(维修记录ID),vehicleID(车辆ID),repairDate(维修日期),description(维修描述),cost(维修费用)。
上述数据库及数据表已经创建,请按要求完成以下操作。
(1).创建一个维修日志表repair_log,字段如下:
字段名称 类型 长度 需求
logID(日志ID) int 主键,自增长
repairID(维修记录ID) int 不能为空
operation(具体操作) text 不能为空
time(耗费工时) int
tname(技术人员姓名) varchar 50
(2).在客户表中插入一条客户数据(赵六,男,35,13453245040)
(3).将客户王五的车牌号修改为沪A88888;
(4).将客户李四在2023年10月10日更换轮胎的维修费用减去1000;
(5).查询客户张三的车辆维修记录,要求显示:维修描述.维修日期.维修费用;按维修日期升序排序;
(6).查询每位客户的维修次数,列名分别为:客户姓名.维修次数。
(7).创建一个视图v_car_repair,要求视图中显示出客户姓名.车牌号.车辆品牌.车辆型号.维修描述.维修日期.维修费用;按维修日期升序排序;
(8).创建一个名称为trigger_insert的触发器,具体描述如下:当向customers客户表新增数据之前,如果客户的年龄(age)小于18岁,提示错误信息年龄必须大于等于18周岁。
9.创建一个名称为p_getTotalCost的存储过程查询指定客户在该年份的维修总费用,具体描述如下:这个存储过程接收一个客户姓名(in_name),数据类型为varchar(20),一个年份(in_year),数据类型为year,作为输入参数,查询指定年份该客户的维修总费用,通过输出参数totalCost返回,类型为DECIMAL((1).0, 2);
答案:
1).CREATE TABLE repair_log (
logID INT PRIMARY KEY AUTO_INCREMENT,
repairID INT NOT NULL,
operation TEXT NOT NULL,
time INT,
tname VARCHAR(50)
);
2).INSERT INTO customers (cuname, gender, age, phone) VALUES ('赵六', '男', 35, '13453245040');
3).UPDATE vehicles v JOIN customers c ON v.customerID = c.customerID SET v.plateNumber = '沪A88888' WHERE c.cuname = '王五';
4).UPDATE repairs r JOIN vehicles v ON r.vehicleID = v.vehicleID JOIN customers c ON v.customerID = c.customerID SET r.cost = r.cost - 1000 WHERE c.cuname = '李四' AND r.repairDate = '2023-10-10' AND r.description LIKE '%更换轮胎%';
5).SELECT r.description, r.repairDate, r.cost FROM repairs r JOIN vehicles v ON r.vehicleID = v.vehicleID JOIN customers c ON v.customerID = c.customerID WHERE c.cuname = '张三' ORDER BY r.repairDate ASC;
6).SELECT c.cuname AS 客户姓名, COUNT(r.repairID) AS 维修次数 FROM customers c LEFT JOIN vehicles v ON c.customerID = v.customerID LEFT JOIN repairs r ON v.vehicleID = r.vehicleID GROUP BY c.customerID;
7).CREATE VIEW v_car_repair AS SELECT c.cuname, v.plateNumber, v.brand, v.model,
r.description, r.repairDate, r.cost FROM customers c JOIN vehicles v ON c.customerID = v.customerID JOIN repairs r ON v.vehicleID = r.vehicleID ORDER BY r.repairDate ASC;
8).DELIMITER //CREATE TRIGGER trigger_insert BEFORE INSERT ON customers FOR EACH ROW
BEGIN
IF NEW.age < 18 THEN
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = '年龄必须大于等于18周岁';
END IF;
END//DELIMITER ;
9).DELIMITER //
CREATE PROCEDURE p_getTotalCost(
IN in_name VARCHAR(20),
IN in_year YEAR,
OUT totalCost DECIMAL(10,2)
)
BEGIN
SELECT SUM(r.cost) INTO totalCost
FROM repairs r
JOIN vehicles v ON r.vehicleID = v.vehicleID
JOIN customers c ON v.customerID = c.customerID
WHERE c.cuname = in_name AND YEAR(r.repairDate) = in_year;
END//DELIMITER ;
8.公交管理系统数据库db_bus包含了t_driver司机表.t_bus公交表和t_attendance发车表
t_driver包含字段id(司机编号),name(司机姓名),sex(性别),age(年龄),salary(薪资)。
t_bus包含字段 id(公交编号),platenum(车牌号),linenum(线路号码)。
t_attendance包含字段id(发车编号),b_id(公交编号),d_id(司机编号),starttime(发车时间)。
(1).创建一个收益表,名称为t_income,字段如下
字段名称 类型 长度 需求
id(收益编号) int 10 主键,自动增长
att_id(用户名) int 10 外键,对应t_attendance表id字段
money(金额) double 6,2
(2).添加一个公交信息,公交编号10031车牌号汽A781681线路号码572
(3).修改司机杜震南的薪资增加200。
(4).用sql语句查询年龄37,42和48岁的司机信息。
(5).用sql语句查询行驶过线路号码为709的司机信息并去除重复,查询结果按照司机编号升序显示。
(6).创建视图名称为v_attendance。要求显示发车信息,分别用列名:发车编号.公交车牌号.公交线路号码.司机姓名.发车时间。
(7).创建一个触发器delete_driver,该触发器在t_driver表中删除司机信息之前,先删除与该司机相关的所有发车记录;
(8).创建一个存储过程UpdateDriverSalary,该存储过程接收一个司机姓名(driverName)和一个薪资增加金额(increment)作为输入参数,参数类型分别为VARCHAR(255)和INT;根据司机的姓名更新指定司机的薪资;
答案:
1).CREATE TABLE t_income (
id INT(10) PRIMARY KEY AUTO_INCREMENT,
att_id INT(10),
money DOUBLE(6,2),
FOREIGN KEY (att_id) REFERENCES t_attendance(id)
);
2).INSERT INTO t_bus (id, platenum, linenum) VALUES (10031, '汽A781681', '572');
3).UPDATE t_driver SET salary = salary + 200 WHERE name = '杜震南';
4).SELECT * FROM t_driver WHERE age IN (37, 42, 48);
5).SELECT DISTINCT d.* FROM t_driver d JOIN t_attendance a ON d.id = a.d_id
JOIN t_bus b ON a.b_id = b.id WHERE b.linenum = '709' ORDER BY d.id ASC;
6).CREATE VIEW v_attendance AS SELECT a.id AS 发车编号, b.platenum AS 公交车牌号, b.linenum AS 公交线路号码,d.name AS 司机姓名, a.starttime AS 发车时间 FROM t_attendance a JOIN t_bus b ON a.b_id = b.id JOIN t_driver d ON a.d_id = d.id;
7).DELIMITER //CREATE TRIGGER delete_driver BEFORE DELETE ON t_driver FOR EACH ROW
BEGIN
DELETE FROM t_attendance WHERE d_id = OLD.id;
END//DELIMITER ;
8).DELIMITER //CREATE PROCEDURE UpdateDriverSalary(IN driverName VARCHAR(255), IN increment INT)
BEGIN
UPDATE t_driver SET salary = salary + increment WHERE name = driverName;
END//DELIMITER ;
9.人力资源管理系统数据库db_hrm包含了department部门表.employee员工表.和 salary薪资表。
department部门表 包含字段 did(部门编号),dname(部门名称),description(部门介绍)。
employee员工表 包含字段eid(员工编号),ename(员工姓名),sex(性别),age(年龄),position(职位),did(部门编号)。
salary薪资表 包含字段sid(薪资编号, 自增长),eid(员工编号),money(薪资),stime(薪资日期)。
上述数据库及数据表已经创建,请按要求完成以下操作。
(1).创建一个培训记录表training,字段如下:
字段名称 类型 长度 需求
tid(流水编号) int 主键,自增长
did(部门编号) varchar 10 不能为空, 外键,与department表关联
eid(员工编号) varchar 10 不能为空 , 外键,与employee表关联
topics(培训内容) varchar 50 默认值空
costs (培训费用) int 默认值0
duration(培训天数) int 默认值0
(2).修改程序员张三1月份的工资,为其加1000元工资。
(3).删除业务员孙七的信息
(4).查询技术部人员的姓名,年龄,职位和工资, 并分别用列名:姓名,年龄,职位和工资
(5).查询1月份工资在10000元以上(含10000)的员工的部门,姓名,职位, 并分别用列名:部门,姓名,职位和工资
(6).创建一个视图v_program 要求显示职位为程序员的姓名和工资, 并分别用列名:姓名,工资
(7).创建一个触发器g_after_employee_insert,该触发器将在employee表上的插入操作之后被触发。触发器需要执行以下操作:为该员工在salary表中创建一个薪资记录。薪资记录将包含员工的编号(eid).一个默认的薪资金额5000,以及该记录被创建的时间(使用当前时间戳,即NOW()函数);
(8).创建一个存储过程GetEmployeeSalary,该存储过程接收一个员工ID(emp_id)作为输入参数,类型为VARCHAR(10),查询结果返回该员工的姓名(ename)和薪资(money),并分别用列名姓名和薪资来表示;
答案:
1).CREATE TABLE training (
tid INT PRIMARY KEY AUTO_INCREMENT,
did VARCHAR(10) NOT NULL,
eid VARCHAR(10) NOT NULL,
topics VARCHAR(50) DEFAULT '',
costs INT DEFAULT 0,
duration INT DEFAULT 0,
FOREIGN KEY (did) REFERENCES department(did),
FOREIGN KEY (eid) REFERENCES employee(eid)
);
2).UPDATE salary s JOIN employee e ON s.eid = e.eid SET s.money = s.money + 1000
WHERE e.ename = '张三' AND e.position = '程序员' AND MONTH(s.stime) = 1;
3).DELETE FROM employee WHERE ename = '孙七' AND position = '业务员';
4).SELECT e.ename AS 姓名, e.age AS 年龄, e.position AS 职位, s.money AS 工资 FROM employee e JOIN department d ON e.did = d.did JOIN salary s ON e.eid = s.eid WHERE d.dname = '技术部';
5).SELECT d.dname AS 部门, e.ename AS 姓名, e.position AS 职位, s.money AS 工资
FROM employee e JOIN department d ON e.did = d.did JOIN salary s ON e.eid = s.eid
WHERE MONTH(s.stime) = 1 AND s.money >= 10000;
6).CREATE VIEW v_program AS SELECT e.ename AS 姓名, s.money AS 工资 FROM employee e JOIN salary s ON e.eid = s.eid WHERE e.position = '程序员';
7).DELIMITER //CREATE TRIGGER g_after_employee_insert AFTER INSERT ON employee
FOR EACH ROW
BEGIN
INSERT INTO salary (eid, money, stime)
VALUES (NEW.eid, 5000, NOW());
END//DELIMITER ;
8).DELIMITER //CREATE PROCEDURE GetEmployeeSalary(IN emp_id VARCHAR(10))
BEGIN
SELECT e.ename AS 姓名, s.money AS 薪资
FROM employee e
JOIN salary s ON e.eid = s.eid
WHERE e.eid = emp_id;
END//DELIMITER ;
10.网上商城数据库db_online,包含商品分类表category,商品表products,用户表users, 订单表orders,订单详细表orderitems, 其中:
category(cid,cname,description) 各字段的含义依次为:商品类别ID,类别名称, 类别描述。主键是cid。
products(pid,cid, pname,price, quantity,sale_qty)各字段的含义依次为: 商品ID,类别ID,商品名称,价格,库存数量,销售数量。主键商品ID, 自增长
users(username,pwd, cellphone,credit)各字段的含义依次为: 主键用户名,密码,手机,积分。
orders(oid,uid, amount,ordertime, address)各字段的含义依次为:主键订单ID,用户ID,订单金额,下单时间, 收货地址。
orderitems(item_id,oid,gid,inum)各字段的含义依次为:主键详情ID,订单ID,商品ID,购买数量。
上述数据库及数据表已经创建,请按要求完成以下操作。
(1).修改用户阿美的密码,新密码为123qwe
(2).创建一个购物车表cart,字段如下:
字段名称 类型 长度 需求
cart_id(购物车) int 主键,自增长
uname(用户名) char 10 不能为空,外键,与users表关联
pid(商品ID) varchar 10 不能为空,外键,与products表关联
pnum(商品数量) int
(3).要求创建一个名为 procedure_add_product的存储过程,功能是在商品表中添加商品, 要求输入参数 为以下6个,各个参数的数据类型与products表格中对应字段一致:
pid:商品ID
cid:类别ID
pname:商品名称
price:价格
quantity:库存数量
sale_qty:销售数量
(4).请使用调用语句调用procedure_add_product存储过程,在商品表中给酒类添加商品如下:法国拉菲干红葡萄酒,商品id是p0007 , 价格150元/瓶,库存数量300,销售数量0。
张裕解百纳蛇龙珠干红葡萄酒,商品id是p0008,价格120元/瓶,库存数量500,销售数量0。
(5).阿美向购物车添加了如下商品,请完善数据库中cart表的信息:法国拉菲干红葡萄酒3瓶,水蜜桃5斤
(6).创建一个视图view_sale,查询每种商品的销售数量,并按销售数量以降序排列,并分别用列名:商品名,销售数量
答案:
1).UPDATE users SET pwd = '123qwe' WHERE username = '阿美';
2).CREATE TABLE cart (
cart_id INT PRIMARY KEY AUTO_INCREMENT,
uname CHAR(10) NOT NULL,
pid VARCHAR(10) NOT NULL,
pnum INT,
FOREIGN KEY (uname) REFERENCES users(username),
FOREIGN KEY (pid) REFERENCES products(pid)
);
3).DELIMITER //
CREATE PROCEDURE procedure_add_product(
IN p_pid VARCHAR(10),
IN p_cid INT,
IN p_pname VARCHAR(100),
IN p_price DECIMAL(10,2),
IN p_quantity INT,
IN p_sale_qty INT
)
BEGIN
INSERT INTO products (pid, cid, pname, price, quantity, sale_qty)
VALUES (p_pid, p_cid, pname, price, quantity, sale_qty);
END//
DELIMITER ;
4).CALL procedure_add_product('p0007', (SELECT cid FROM category WHERE cname='酒类'), '法国拉菲干红葡萄酒', 150, 300, 0);
CALL procedure_add_product('p0008', (SELECT cid FROM category WHERE cname='酒类'), '张裕解百纳蛇龙珠干红葡萄酒', 120, 500, 0);
5).INSERT INTO cart (uname, pid, pnum) VALUES
('阿美', 'p0007', 3),
('阿美', (SELECT pid FROM products WHERE pname='水蜜桃'), 5);
6).CREATE VIEW view_sale AS
SELECT pname AS 商品名, sale_qty AS 销售数量
FROM products
ORDER BY sale_qty DESC;
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$