第一篇:数据库设计实战题目(简单)
数据库设计实战题目一
一个简单的《参观接待管理系统》,数据库中涉及以下数据: 展厅HALL
展厅编号HNO、展厅名称HNAME、功能介绍HDESCRIPTION和展厅容量HCAPACITY
员工EMPLOYEE
员工号ENO、员工姓名ENAME和所在单位EUNIT 客户CUSTOMER
客户编号CNO、客户姓名CNAME、客户单位CUNIT和职务CDUTY
一位员工可以申请多个展厅,每个展厅在不同的时间(DATE)可以借给多位员工,一位员工可以在不同的时间邀请多个客户来参观展厅,要求能描述员工申请展厅来接待客户等信息。具体如下:
1)设计出展厅管理系统的E/R图;
2)将以上E/R图转换成关系模型(请注明每个关系的键码);
第二篇:数据库设计可选题目
保险代理人资格模拟考试系统的设计与实现 暴龙眼镜专卖店销售系统的设计与实现 机电学院职工信息系统的设计与实现 博阳高中学生管理系统的设计与实现 五家子村信息化管理系统的设计与实现
九阳股份有限公司人事管理系统的设计与实现 新世纪酒店餐饮管理系统的设计与实现 嘉华超市库存管理系统的设计与实现 丹东华美手机销售系统的设计与实现
《系统建模工具》课程中心的设计与实现 金阳客运站售票系统的设计与实现 华夏酒店客房管理系统的设计与实现 天康集团人事管理系统的设计与实现 神州汽车租赁管理系统的设计与实现 万豪酒店餐饮管理系统的设计与实现 世纪高中运动会管理系统的设计与实现 安正办公用品管理系统的设计与实现 迷你饰品网络销售系统的设计与实现 美食每刻订餐网的设计与实现
丹东一中学生管理系统的设计与实现 鼎盛房屋租赁管理系统设计与实现
广天食品公司人事管理系统设计与实现 丹东星火公司手机销售系统设计与实现 兴隆小区物业管理系统设计与实现 海迪酒店客房管理系统设计与实现 昌旭超市进销存管理系统的设计与实现 云飞音像公司库存管理系统设计与实现 宇飞公司工资管理系统设计与实现 国际酒店客房管理系统的设计与实现 东港烟草公司网络销售系统的设计与实现 辽东学院运动会管理系统的设计与实现 秀曼童装网络销售系统的设计与实现 北方图书网络销售系统的设计与实现 佳琪鞋业库存管理系统的设计与实现
贝多分婴儿用品网络销售系统的设计与实现 “携手”情侣表网络销售系统的设计与实现 雨林时尚饰品网站的设计与实现 森玛网络休闲服饰网站的设计与实现 金湾小区物业管理系统的设计与实现 《网站开发技术》课程网站的设计与实现 鸿利手包专卖店网站的设计与实现 尼丰汽配公司网站的设计与实现 林明臣国画专卖店网站的设计与实现
名品太阳镜网上专营店网站的设计与实现 云裳嫁衣婚纱专卖店网站的设计与实现 “Ben”笔记本专营店网站的设计与实现 旭东网上烟具店网站的设计与实现
第三篇:14级数据库设计题目
题目:
(1)高校学籍管理系统
功能要求:
实现学生信息、班级、院系、专业等的管理; 实现课程、学生成绩信息管理; 实现学生的奖惩信息管理;
限制性别项只能输入“男”或“女”;
创建视图查询各个学生的学号、姓名、班级、专业、院系; 创建存储过程查询指定学生的成绩单;
创建触发器当增加、删除学生和修改学生班级信息时自动修改相应班级学生人数;
建立数据库相关表之间的参照完整性约束。(2)学校人力资源管理系统
实现学校部门信息、职务、职称和教职工信息管理; 实现教师的学籍经历管理; 实现教师的家庭关系管理; 实现教师的奖惩信息管理;
创建存储过程查询学校各部门各种职称的教职工数量;
创建触发器当增加、删除教职工和修改教职工部门信息时自动修改相应部门的职工人数;
建立数据库相关表之间的参照完整性约束。(3)某单位人事管理系统
实现部门、职务、职称等信息的管理; 实现职工信息的管理;
实现职工学习经历和任职经历的管理; 实现职工家庭关系的管理; 实现奖惩信息的管理;
创建存储过程查询个部门各种职称的职工数量;
创建视图查询各职工的工号、姓名、部门、职务信息;
创建触发器当增加、删除职工和修改职工部门信息时自动修改相应部门的职工人数;
建立数据库相关表之间的参照完整性约束。(4)某书店图书进货、销售管理系统
实现图书类别、出版社、图书、仓库信息的管理; 实现进货、入库管理; 实现销售、出库管理;
创建存储过程查询某段时间内各种图书的进货和销售情况; 创建视图查询各类图书的库存总数; 创建触发器当图书入库时自动修改相应图书的总量和存放仓库中该图书的数量;
建立数据库相关表之间的参照完整性约束。(5)某医院信息管理系统(药品库存、收费、医生病人等)
实现药品类型及药品信息的管理; 实现药品的入库、出库管理; 实现科室、医生、病人的管理; 实现处方的登记管理; 实现收费管理;
创建触发器,当药品入库、出库时自动修改库存;
创建存储过程统计某段时间内,各科室的就诊人数和输入情况; 创建视图查询各种药品的库存总数;
建立数据库相关表之间的参照完整性约束。
(6)音响店VCD零售出租管理系统
实现VCD类型及信息的管理; 实现VCD的入库管理; 实现VCD的借还管理; 实现VCD的零售管理;
创建触发器,入库登记、零售时自动修改、现货和库存,借、还时自动修改现货数量;
创建存储过程统计某段时间内各VCD的销售、借还数量; 创建视图查询各类VCD的库存情况;
建立数据库相关表之间的参照完整性约束。(7)某期刊的在线投稿审稿管理系统
实现作者、审稿人的信息管理; 实现稿件类型、稿件信息的管理; 实现稿件的审阅过程管理;
实现稿费、审稿费和版面费的管理;
创建存储过程,统计指定作者的稿件信息;
创建触发器,当收到审稿费时自动修改审稿费收到标记为“是”; 建立数据库相关表之间的参照完整性约束。
(8)学校的工资管理系统
实现部门、职务、职称等基本信息的管理; 实现教职工信息的管理;
实现工资项目的管理,工资项目设有启用标志和加扣标志; 实现教职工工资项目及其工资的管理;
创建触发器当往教职工工资项目表中插入记录或删除记录时,自动修改该职工的应发工资数和实发工资数;
创建存储过程统计某个月各种工资项目的发放总和; 创建视图查询各个员工的应发、应扣和实发工资; 建立数据库相关表之间的参照完整性约束。(9)某高校科研管理系统
实现部门、职务、职称等基本信息的管理; 实现教师信息的管理;
实现可以科研项目的申报、审批管理; 实现科研项目的验收管理;
创建默认,并邦定到科研项目的验收标志,使其默认值为“未验收”; 创建触发器,验收项目时自动修改项目的验收标志为“验收通过”; 创建存储过程统计个院系科研项目的申报和完成数量; 建立数据库相关表之间的参照完整性约束。实现班级、课程等基本信息的管理; 实现学生、教师信息的管理;
实现班级课程及课程的任课教师和排课管理; 创建存储过程检测指定教师、指定节次是否有课; 创建存储过程生成指定班级的课程表; 创建存储过程生成指定老师的课程表; 建立数据库相关表之间的参照完整性约束。
实现家具类型、供应商信息的管理; 实现客户信息、家具信息的管理; 实现家具入库管理; 实现家具的销售管理; 实现收款管理;
创建触发器,实现家具入库和销售时自动修改库存;
创建存储过程统计某段时间内各种商品的入库数量和销售数量; 建立数据库相关表之间的参照完整性约束。(10)某中学的排课管理系统
(11)某家具城进销存管理系统
(12)高校教材管理系统
实现出版社、教材类型等的管理; 实现教材的订购管理; 实现教材的入库管理; 实现教材的领用管理;
限定实现教材的书号必须满足以ISBN开头,后跟10个数字的格式,比如:ISBN7302120363;
创建触发器,实现教材入库和出库时自动修改库存数量; 创建存储过程统计各种教材的订购、到货和发放数量; 建立数据库相关表之间的参照完整性约束。(13)高校教师信息管理系统
实现部门、职称、职务的基本信息的管理; 实现教师信息的管理;
实现教师家庭关系和教育经历的管理; 实现教师的奖惩管理;
创建触发器,实现修改教师所在部门时自动修改相应部门的教师人数; 创建存储过程统计各部门各种职称的人数; 建立数据库相关表之间的参照完整性约束。
实现房屋户型、房东信息的管理; 实现租房客户信息的管理; 实现房屋的出租、归还登记; 实现租房收费管理;
创建存储过程统计各种户型的房屋的出租数量; 创建触发器,当房屋租出时自动修改该房屋的状态; 创建视图查询当前所有房屋的房号、房东、状态信息; 建立数据库相关表之间的参照完整性约束。(14)二手房中介管理系统
(15)某宾馆客房管理系统
实现客房类型、价目信息、客房信息的管理; 实现客户信息的管理; 实现入住和退房管理; 实现费用管理;
创建触发器,实现入住和退房时自动修改客房的状态;
创建存储过程统计某段时间内各种类型的客房的入住时间合计和费用合计;
创建视图查询某一时刻没有入住的房间信息; 建立数据库相关表之间的参照完整性约束。(16)建材物资管理信息系统
实现物资类型、供应商、仓库等信息的管理; 实现物资信息的管理; 实现物资入库、销售管理;
创建触发器,实现物资入库、销售出库时自动修改对应的库存; 创建存储过程查询某段时间内各种物资的入库数量和销售数量; 创建存储过程查询某段时间内各种物资的销售收入; 建立数据库相关表之间的参照完整性约束。
(17)某客运公司的运输管理系统
实现车型、路线、驾驶员等信息的管理; 实现线路车次、线路站点及票价管理; 实现售票管理; 创建存储过程按线路统计乘坐次数;
创建存储过程按车次统计某段时间的乘坐次数;
创建触发器,实现售票时自动修改相应车次已售座位数; 创建视图查询各线路各车型的数量;
建立数据库相关表之间的参照完整性约束。
部门、专业、班级等基本信息的管理; 实现学生信息的管理; 实现学生成绩的管理; 实现学生的奖惩管理;
创建视图查询学生的学号、姓名、性别、院系、专业、班级信息; 创建存储过程统计各院系、专业学生的男女人数;
创建触发器当新增、修改或删除学生时自动修改相应班级的学生人数; 创建check约束限制学生的性别只能输入“男”或“女”; 建立数据库相关表之间的参照完整性约束。(18)某高校的学籍管理系统
(19)某煤气公司送气管理系统
实现工作人员、客户信息的管理; 实现煤气类别和供应商的管理; 实现煤气入库管理和出库管理; 实现费用管理;
创建触发器,实现入库、出库时相应类型煤气的数量的增加或减少; 创建存储过程统计每个送气员工指定月份送气的数量; 创建存储过程查询指定月份用气量最大的前10个用户,并按用气量递减排列;
建立数据库相关表之间的参照完整性约束;(20)职业介绍信息管理系统
实现职业分类、职业信息管理(职业号、职业类型号、用人单位、需求人数、已聘人数、备注);
实现用人单位、求职者信息管理,求职者信息设有聘用标志,默认值为未聘用;
实现求职者和职业匹配管理(职业号、求职人员编号);
实现费用管理,包括用人单位交费情况、求职人员交费情况;
创建触发器,求职成功时,自动修改相应职业的已聘人数和相应职工的聘用标志为‘聘用成功’;另外如果相应职业的已聘人数不得超过需求人数;
创建存储过程查询各种职业的需求数和已聘用数; 创建规则限制求职者的性别,必须为‘男’或‘女’; 建立表间关系。(21)再就业服务中心管理信息系统
实现服务中心信息管理;
实现职业分类、用人单位信息管理;
实现求职人员信息、职业信息管理(职业号、职业类型号、用人单位、需求人数、已聘人数、备注); 实现求职成功登记;
实现费用管理,包括用人单位交费情况、求职人员交费情况;
创建触发器,求职成功时,自动修改相应职业的已聘人数和相应职工的聘用标志为‘聘用成功’;另外如果相应职业的已聘人数不得超过需求人数;
创建存储过程查询各种职业的需求数和已聘用数; 创建约束限制求职者的性别,必须为‘男’或‘女’; 建立表间关系。(22)学校家教服务管理系统
实现教师信息、职业类型管理;
实现职业登记(职业号、名称、地址、电话等);
实现职业作息登记(职业号、日期、开始时间、结束时间、教师); 实现工资管理和收费管理;
创建存储过程统计指定日期范围内各的时刻时间总和; 创建存储过程统计各种职业的需求次数;
创建check约束限制教师性别必须输入‘男’或‘女’; 建立表间关系。
(23)高校学生就业管理系统
实现院系、专业、毕业生信息管理(设有就业标志,初值为‘待业’); 实现职业类型、职业信息(职业号、类型号、需求数量、聘用数量、用人单位)登记;
实现毕业生就业登记(学号、职业号),自动修改相应学生的就业标志和职业的聘用数量,并保证聘用数量不大于需求数量;
创建存储过程查询毕业生的人数、待业人数、就业人数和就业率; 创建存储过程查询各专业的毕业生就业率;
创建check约束限制毕业生性别必须为‘男’或‘女’; 建立表间关系。(24)某景点门票销售管理系统
实现票价管理(应分老年、小孩、成人、团体等); 实现营业员管理;
实现门票销售、退票管理;
创建存储过程统计指定日期的门票销售情况; 创建存储过程统计指定月份的门票销售情况;
创建存储过程统计指定日期各种价格的门票销售情况; 创建存储过程统计指定营业员指定日期的收费情况; 创建表间关系。(25)某商店进销存管理系统
实现商品类别、供货商、业务员信息管理; 实现商品信息、仓库信息管理、仓库商品管理;
实现商品验收入库、商品销售出库管理,入库和出库时自动修改对应商品的总库存和分库库存量(用触发器实现),另外验收或销售时一单可以验收或销售多种商品; 实现转仓管理,转仓时自动修改转出仓库和转入仓库对应商品的数量(用触发器实现);
创建存储过程统计指定时间段内各种商品的进货数量和销售数量; 创建表间关系。
(26)某书店书刊出租和零售管理系统
实现图书类别、期刊类别、出版社等基本信息管理; 实现图书信息、期刊信息、客户信息管理; 实现借阅、归还、零售管理;
借阅或归还时自动修改图书或期刊的在册数量,零售时修改图书或期刊的总量和在册数量(用触发器实现);
创建存储过程统计指定时间段内各种图书、期刊的借阅、零售数量; 创建存储过程统计指定客户借阅、购买情况(书名(刊物名)、数量); 创建check约束限制图书、期刊的单位为‘本’; 创建表间关系。
实现美容项目及价格信息管理;
实现客户信息、客户车辆信息管理; 实现美容登记和收费管理;
创建存储过程统计指定月份各种美容项目的美容次数; 创建存储过程统计指定年份各客户的美容次数; 创建存储过程统计指定月份美容店的收入情况; 创建规则限制客户的性别必须输入‘男’或‘女’; 创建表间关系。
实现学生信息、课程学生管理; 实现教师及任课信息管理;
实现选课登记,要保证学生不能选修重复的课程(实用触发器实现); 创建存储过程统计各学生指定学期选修课程的总学分数; 创建视图查询2013-2014学年,没有被选修的课程; 创建存储过程统计各教师任课的学生人数; 创建表间关系。(27)某汽车美容店管理系统
(28)某高校学生选课管理系统(29)火车站票务管理系统
实现车次管理;
实现车次及价格管理(含到各站的价格); 实现业务员管理; 实现车票销售管理,车票销售时不能超员,并自动修改剩余的座位数(用触发器实现);
创建存储过程统计指定车次指定发车时间的车票销售情况; 创建存储过程统计指定日期各业务员车票的销售收入; 实现退票管理,退票时自动修改相应车次的剩余座位数(用触发器实现); 创建表间关系。
实现费用类型、业务员管理;
实现客户信息管理,客户设有结余金额;
实现收费管理,自动修改用户的结余金额(用触发器实现); 创建存储过程统计指定月份各种费用类型的收费情况; 创建存储过程统计指定日期各业务员的收费情况;
限定客户的电话号码是有非0数字开头的七位数字组成的号码; 创建表间关系。(30)某电信营业厅营业收费管理系统
(31)某单位设备管理系统
实现设备类别、设备信息管理; 实现用户管理;
实现设备入库管理,必须自动修改相应设备的数量;
实现设备的领用和归还管理(要自动修改相应设备的可领用数量); 实现设备的报损管理(报损后要自动修改相应设备的数量和可领用数量);
创建存储过程统计各种类型设备的数量;
创建存储过程统计指定月份各设备的领用归还情况; 创建表间关系。(32)某单位考勤管理系统
实现部门、员工信息管理;
实现系统信息管理,用于设置上午、下午的上下班时间; 实现考勤登记;
创建触发器,如果打卡时间超出上班时间,并且小于5分钟,登记为迟到,否则登记为旷工;
创建存储过程统计各员工指定月份的缺席、旷工次数; 创建视图分组查询各部门的职工信息及职工人数;
创建check约束,限制员工的性别必须为‘男’或‘女’; 建立表间关系。(33)机房管理系统
实现机房信息、机器信息、学生信息、上机类型信息的管理; 实现学生上机充值信息的管理;
实现学生上机过程的登记、费用信息的管理; 实现教学班及教学班学生信息的管理;
实现上机费率标准的设置及教学班上机的预约,即设置各教学班的上课时段。
创建存储过程统计各机房上机费用的统计;
创建触发器实现费用登记时,自动修改该生的账户余额。 建立各表之间的关系。(34)网上书店
功能需求:(参考www.xiexiebang.com)
系统管理:用户注册、注销、登陆、修改密码;
图书查询:图书具有书名、作者、编号(ISBN)、出版社、定价、折扣、目录、库存状态等信息。用户可根据书名、作者、出版社等信息进行模糊查询。 订单管理:用户可通过网络下订单,经检查有效的订单发送到用户信箱,等待用户支付款项。用户付款后,通过邮局向用户发送图书,并对这一过程进行跟踪管理。
信息服务:跟踪每一个注册用户购买或浏览习惯,当书库中有此类新书时用电子邮件通知该用户。
用户论坛:用户可在此发表书评或进行投诉。(35)求职网站
功能需求:(可参考51job等求职网站)
系统管理:用户注册、注销、登陆、修改密码。其中用户分为求职用户与企业用户。
档案管理:用户档案的建立、修改、保存、查询;
信息查询:用户可根据专业、工作经验、薪金等属性进行模糊查询; 信息互动:用户开通相关服务后,可自动收到相关求职/招聘信息,从而减少用户搜索负担。
行业动态:根据行业需求/工资变化,自动生成分析报告,从而为就业提供一定指导。
求职论坛:为用户提供一个网上交流论坛。
第四篇:数据库综合设计题目
数据库综合设计题目
本部分作业是设计性实验部分,要求如下:
(1)绘制出E-R图,E-R图要求有必要的属性。
(2)将E-R图转换成相应的关系模式,要求指出主码。
(3)使用SQL语句创建相应的表,表中要有必要的约束。
(4)创建主要表的查询视图。
(5)最后上交设计性实验报告。
题目一:图书管理系统(学号1-5号的做本题目)
涉及到的实体有:读者、读者部门、读者类型、图书、出版社、图书类别,其它的由自己确定。
题目二:学生选课系统(学号6-10号的做本题目)
涉及到的实体有:教师、院系、学生、课程、班级等,其它信息由自己确定。题目三:班费管理系统(学号11-15号的做本题目)
涉及到的实体有:班费项目、学生、班费、学生职务等信息,其它信息由自己确定。本题目药反映出欠费信息。
题目四:住院管理系统(学号16-20号的做本题目)
涉及到的实体有:医生、病人、病房、病房等级、医生类别等信息,其它信息有自己来确定。
题目五:工资管理系统(学号21-25号的做本题目)
涉及到的实体有:职工信息、部门信息、工资等级信息、工作信息,其它信息由自己来确定。
题目六:毕业设计管理系统(剩余学生做本题目)
涉及到的实体有:学生、班级、毕业设计信息、指导老师信息、院系信息,其它信息由自己确定
设计性实验报告题目格式为:数据库原理与应用设计性实验
你所做的题目
其它内容包括:班级:学号:姓名:任课老师:年月日(每个信息占一行)
第五篇:数据库面试题目
SQL
(二)数据库面试题
标签:it
提供最全的DBA类, 开发类面试题
数据库面试题: http:///html/category/it-interview/database
Oracle面试题:
MySQL面试题:
SQL Server面试题:
更多面试题请访问: http://
(二)数据库面试题
1. 存储过程和函数的区别?
答:存储过程是用户定义的一系列sql语句的集合,涉及特定表或其它对象的任务,用户可以调用存储过程,而函数通常是数据库已定义的方法,它接收参数并返回某种类型的值并且不涉及特定用户表。
2. 事务是什么?
答:事务是作为一个逻辑单元执行的一系列操作,一个逻辑工作单元必须有四个属性,称为 ACID(原子性、一致性、隔离性和持久性)属性,只有这样才能成为一个事务:
原子性:事务必须是原子工作单元;对于其数据修改,要么全都执行,要么全都不执行。
一致性:事务在完成时,必须使所有的数据都保持一致状态。在相关数据库中,所有规则都必须应用于事务的修改,以保持所有数据的完整性。事务结束时,所有的内部数据结构(如 B 树索引或双向链表)都必须是正确的。
隔离性:由并发事务所作的修改必须与任何其它并发事务所作的修改隔离。事务查看数据时数据所处的状态,要么是另一并发事务修改它之前的状态,要么是另一事务修改它之后的状态,事务不会查看中间状态的数据。这称为可串行性,因为它能够重新装载起始数据,并且重播一系列事务,以使数据结束时的状态与原始事务执行的状态相同。
持久性:事务完成之后,它对于系统的影响是永久性的。该修改即使出现系统故障也将一直保持。
3. 游标的作用?如何知道游标已经到了最后?
答:游标用于定位结果集的行,通过判断全局变量@@FETCH_STATUS可以判断是否到了最后,通常此变量不等于0表示出错或到了最后。
4. 触发器分为事前触发和事后触发,这两种触发有和区别。语句级触发和行级触发有何区别。
答:事前触发器运行于触发事件发生之前,而事后触发器运行于触发事件发生之后。通常事前触发器可以获取事件之前和新的字段值。语句级触发器可以在语句执行前或后执行,而行级触发在触发器所影响的每一行触发一次
1,统计函数 avg, count, max, min, sum
1维护数据库的完整性、一致性、你喜欢用触发器还是自写业务逻辑?为什么?
答:尽可能用约束(包括CHECK、主键、唯一键、外键、非空字段)实现,这种方式的效率最好;其次用触发器,这种方式可以保证无论何种业务系统访问数据库都能维持数据库的完整性、一致性;最后再考虑用自写业务逻辑实现,但这种方式效率最低、编程最复杂,当为下下之策。
2什么是事务?什么是锁?
答:事务是指一个工作单元,它包含了一组数据操作命令,并且所有的命令作为一个整体一起向系统提交或撤消请求操作,即这组命令要么都执行,要么都不执行。
锁是在多用户环境中对数据的访问的限制。SqlServer自动锁定特定记录、字段或文件,防止用户访问,以维护数据安全或防止并发数据操作问题,锁可以保证事务的完整性和并发性。
3什么是索引,有什么优点?
答:索引象书的目录类似,索引使数据库程序无需扫描整个表,就可以在其中找到所需要的数据,索引包含了一个表中包含值的列表,其中包含了各个值的行所存储的位置,索引可以是单个或一组列,索引提供的表中数据的逻辑位置,合理划分索引能够大大提高数据库性能。
4视图是什么?游标是什么?
答:视图是一种虚拟表,虚拟表具有和物理表相同的功能,可以对虚拟表进行增该查操作,视图通常是一个或多个表的行或列的子集,视图的结果更容易理解(修改视图对基表不影响),获取数据更容易(相比多表查询更方便),限制数据检索(比如需要隐藏某些行或列),维护更方便。
游标对查询出来的结果集作为一个单元来有效的处理,游标可以定位在结果集的特定行、从结果集的当前位置检索一行或多行、可以对结果集中当前位置进行修改、5什么是存储过程?有什么优点?
答:存储过程是一组予编译的SQL语句,它的优点有1.允许模块化程序设计,就是说只需要创建一次过程,以后在程序中就可以调用该过程任意次。2.允许更快执行,如果某操作需要执行大量SQL语句或重复执行,存储过程比SQL语句执行的要快。3.减少网络流量,例如一个需要数百行的SQL代码的操作有一条执行语句完成,不需要在网络中发送数百行代码。4.更好的安全机制,对于没有权限执行存储过程的用户,也可授权他们执行存储过程。
6什么是触发器?
答:出发器是一种特殊类型的存储过程,出发器主要通过事件触发而被执行的,触发器的优点:1.强化约束,触发器能够提供比CHECK约束。2.跟踪变化,触发器可以跟踪数据库内的操作,从而不允许未经允许许可的更新和变化。3.联级运算,比如某个表上的触发器中包含对另一个表的数据操作,而该操作又导致该表上的触发器被触发。
这是两张表,一张为enployee,另一张是salary表,employee表中有id ,name字段,salary表中有id ,eid ,salary三条字段,在面试的时候数据库是必考题,不管是笔试还是面试一般都不会少的,很多程序员学完面向对象语言后,尤其是许多压根就 不懂计算机的外行,总觉得编程就是唯代码是从,我就见过那么一个哥们,在我耳边总是暗自窃喜说自己学完面向对象的语言后,一下子就少学好多东西,也少去了好多麻烦,比如说什么数据库java封装了,令人头疼的C++指针也被JAVA相关类给取代了,在我们面前的大不了就是引用那么简单了,我听了该怎么说呢,只能为他感到悲哀,剩下我就干脆不说了,但是我奉劝大家,数据库是作为踏入IT或者想在IT行业中有所建树的人,不可忽略甚至是最核心的课程,因为任何复杂程序的设计归根到底是复杂数据库的设计,所以聪明的面试官通常都会将数据库的考核作为你通关的重要环节,现在我就将面试经常出出现的考题代码给大家写出来,不过分析的靠你自己,如果你分析不出来,我就毫不客气的说,你注定不会在IT行业中停留很久,关联人员表、工资表 查询工资最高的三个员工的名字和工资 select e.id ,e.name,s.salary from salary s , employee e where e.id=s.eid order by s.salary desc limit 3;查询工资高于平均工资的员工名字和工资 select e.name,s.salary from employee e,salary s where e.id=s.eid and salary >(select avg(salary)from salary);使用平均值函数查询工资表的平均工资 select avg(salary)from salary;求最高工资 select max(salary)from salary s;使用左联接或右连接查询所有员工的信息和工资 select e.id ,e.name,s.salary from salary s right join employee e on e.id=s.eid order by s.salary desc;查询aa表中相同id2这一列的 值和个数 select *,count(*)from aa group by id2;select id from employee limit 0 ,2;0表示从第几条开始,2 表示取多少条记录; select id form employee limit(当前页-1)*每页的行数,每页的行数;
1.触发器的作用?
答:触发器是一中特殊的存储过程,主要是通过事件来触发而被执行的。它可以强化约束,来维护数
据的完整性和一致性,可以跟踪数据库内的操作从而不允许未经许可的更新和变化。可以联级运算。如,某表上的触发器上包含对另一个表的数据操作,而该操作又会导致该表触发器被触发。
2。什么是存储过程?用什么来调用?
答:存储过程是一个预编译的SQL语句,优点是允许模块化的设计,就是说只需创建一次,以后在该程序中就可以调用多次。如果某次操作需要执行多次SQL,使用存储过程比单纯SQL语句执行要快。可以用一个命令对象来调用存储过程。
3。索引的作用?和它的优点缺点是什么?
答:索引就一种特殊的查询表,数据库的搜索引擎可以利用它加速对数据的检索。它很类似与现实生活中书的目录,不需要查询整本书内容就可以找到想要的数据。索引可以是唯一的,创建索引允许指定单个列或者是多个列。缺点是它减慢了数据录入的速度,同时也增加了数据库的尺寸大小。
3。什么是内存泄漏?
答:一般我们所说的内存泄漏指的是堆内存的泄漏。堆内存是程序从堆中为其分配的,大小任意的,使用完后要显示释放内存。当应用程序用关键字new等创建对象时,就从堆中为它分配一块内存,使用完后程序调用free或者delete释放该内存,否则就说该内存就不能被使用,我们就说该内存被泄漏了。
4。维护数据库的完整性和一致性,你喜欢用触发器还是自写业务逻辑?为什么?
答:我是这样做的,尽可能使用约束,如check,主键,外键,非空字段等来约束,这样做效率最高,也最方便。其次是使用触发器,这种方法可以保证,无论什么业务系统访问数据库都可以保证数据的完整新和一致性。最后考虑的是自写业务逻辑,但这样做麻烦,编程复杂,效率低下。
5。什么是事务?什么是锁?
答:事务就是被绑定在一起作为一个逻辑工作单元的SQL语句分组,如果任何一个语句操作失败那么整个操作就被失败,以后操作就会回滚到操作前状态,或者是上有个节点。为了确保要么执行,要么不执行,就可以使用事务。要将有组语句作为事务考虑,就需要通过ACID测试,即原子性,一致性,隔离性和持久性。
锁:在所以的DBMS中,锁是实现事务的关键,锁可以保证事务的完整性和并发性。与现实生活中锁一样,它可以使某些数据的拥有者,在某段时间内不能使用某些数据或数据结构。当然锁还分级别的。
6。什么叫视图?游标是什么?
答:视图是一种虚拟的表,具有和物理表相同的功能。可以对视图进行增,改,查,操作,试图通常是有一个表或者多个表的行或列的子集。对视图的修改不影响基本表。它使得我们获取数据更容易,相比多表查询。
游标:是对查询出来的结果集作为一个单元来有效的处理。游标可以定在该单元中的特定行,从结果集的当前行检索一行或多行。可以对结果集当前行做修改。一般不使用游标,但是需要逐条处理数据的时候,游标显得十分重要。
7。为管理业务培训信息,建立3个表:
S(S#,SN,SD,SA)S#,SN,SD,SA分别代表学号,学员姓名,所属单位,学员年龄
C(C#,CN)C#,CN分别代表课程编号,课程名称
SC(S#,C#,G)S#,C#,G分别代表学号,所选的课程编号,学习成绩
(1)使用标准SQL嵌套语句查询选修课程名称为’税收基础’的学员学号和姓名?
答案:select s# ,sn from s where S# in(select S# from c,sc where c.c#=sc.c# and cn=’税收基础’)
(2)使用标准SQL嵌套语句查询选修课程编号为’C2’的学员姓名和所属单位?
答:select sn,sd from s,sc where s.s#=sc.s# and sc.c#=’c2’
(3)使用标准SQL嵌套语句查询不选修课程编号为’C5’的学员姓名和所属单位?
答:select sn,sd from s where s# not in(select s# from sc where c#=’c5’)
(4)查询选修了课程的学员人数
答:select 学员人数=count(distinct s#)from sc
(5)查询选修课程超过5门的学员学号和所属单位?
答:select sn,sd from s where s# in(select s# from sc group by s# having count(distinct c#)>5)
问题描述:
为管理岗位业务培训信息,建立3个表:
S(S#,SN,SD,SA)S#,SN,SD,SA 分别代表学号、学员姓名、所属单位、学员年龄
C(C#,CN)C#,CN 分别代表课程编号、课程名称
SC(S#,C#,G)S#,C#,G 分别代表学号、所选修的课程编号、学习成绩
1.使用标准SQL嵌套语句查询选修课程名称为’税收基础’的学员学号和姓名
--实现代码:
Select SN,SD FROM S Where [S#] IN(Select [S#] FROM C,SC Where C.[C#]=SC.[C#] AND CN=N'税收基础')
2.使用标准SQL嵌套语句查询选修课程编号为’C2’的学员姓名和所属单位
--实现代码:
Select S.SN,S.SD FROM S,SC Where S.[S#]=SC.[S#] AND SC.[C#]='C2'
3.使用标准SQL嵌套语句查询不选修课程编号为’C5’的学员姓名和所属单位
--实现代码:
Select SN,SD FROM S Where [S#] NOT IN(Select [S#] FROM SC Where [C#]='C5')
4.使用标准SQL嵌套语句查询选修全部课程的学员姓名和所属单位
--实现代码:
Select SN,SD FROM S Where [S#] IN(Select [S#] FROM SC RIGHT JOIN C ON SC.[C#]=C.[C#] GROUP BY [S#] HAVING COUNT(*)=COUNT([S#]))
5.查询选修了课程的学员人数
--实现代码:
Select 学员人数=COUNT(DISTINCT [S#])FROM SC
6.查询选修课程超过5门的学员学号和所属单位
--实现代码:
Select SN,SD FROM S Where [S#] IN(Select [S#] FROM SC GROUP BY [S#] HAVING COUNT(DISTINCT
[C#])>5)
题目2:
问题描述:
S(SNO,SNAME)学生关系。SNO 为学号,SNAME 为姓名
C(CNO,CNAME,CTEACHER)课程关系。CNO 为课程号,CNAME 为课程名,CTEACHER 为任课教师
SC(SNO,CNO,SCGRADE)选课关系。SCGRADE 为成绩
1.找出没有选修过“李明”老师讲授课程的所有学生姓名
--实现代码:
Select SNAME FROM S Where NOT EXISTS(Select * FROM SC,C Where SC.CNO=C.CNO AND CNAME='李明' AND SC.SNO=S.SNO)
2.列出有二门以上(含两门)不及格课程的学生姓名及其平均成绩
--实现代码:
Select S.SNO,S.SNAME,AVG_SCGRADE=AVG(SC.SCGRADE)FROM S,SC,(Select SNO FROM SC Where SCGRADE<60 GROUP BY SNO HAVING COUNT(DISTINCT CNO)>=2)A Where S.SNO=A.SNO AND SC.SNO=A.SNO GROUP BY S.SNO,S.SNAME
3.列出既学过“1”号课程,又学过“2”号课程的所有学生姓名
--实现代码:
Select S.SNO,S.SNAME FROM S,(Select SC.SNO FROM SC,C Where SC.CNO=C.CNO AND C.CNAME IN('1','2')GROUP BY SNO HAVING COUNT(DISTINCT CNO)=2)SC Where S.SNO=SC.SNO
4.列出“1”号课成绩比“2”号同学该门课成绩高的所有学生的学号
--实现代码:
Select S.SNO,S.SNAME FROM S,(Select SC1.SNO FROM SC SC1,C C1,SC SC2,C C2 Where
SC1.CNO=C1.CNO AND C1.NAME='1' AND SC2.CNO=C2.CNO AND C2.NAME='2' AND
SC1.SCGRADE>SC2.SCGRADE)SC Where S.SNO=SC.SNO
5.列出“1”号课成绩比“2”号课成绩高的所有学生的学号及其“1”号课和“2”号课的成绩--实现代码:
Select S.SNO,S.SNAME,SC.[1号课成绩],SC.[2号课成绩] FROM S,(Select SC1.SNO,[1号课成绩]=SC1.SCGRADE,[2号课成绩]=SC2.SCGRADE FROM SC SC1,C C1,SC SC2,C C2 Where SC1.CNO=C1.CNO AND C1.NAME='1' AND SC2.CNO=C2.CNO AND C2.NAME='2' AND SC1.SCGRADE>SC2.SCGRADE)SC Where S.SNO=SC.SNO