就觉得被数据库折磨了快一个学期了,应该留下点什么,帮助后来的学弟学妹们减轻一下负担,拯救一下发量,缓解一下熬夜爬上眼眶的黑眼圈······
开始上正餐。
实验一:建立数据库
//有的老师直接给你数据库,有的老师让你手动创建一个(当然我是后者(酷死)),总之,自己使用的数据库完整性是一定要保证的。
//教材是数据库系统概念第六版,数据库的数据也可以上网上找好导入SQL里
//实验一要求如下:
//使用企业管理器建立书上的数据库
//在企业管理器中查看数据库的属性,并进行修改,使之符合要求
//通过企业管理器,在建好的数据库中建立表
//要求为属性选择合适的数据类型,定义每个表的主码,是否允许空值和默认值
//在企业管理器中建立以上表间的表级约束:每个表的主码约束;表间的外码约束;实现 check约束
//通过企业管理器向数据库的表中输入记录,要求记录满足数据约束要求
//通过企业管理器实现对数据库表的数据插入、修改和删除数据操作。
//解释:就是把建的库表、主键、外键、还有约束条件截个图,还有流程图,再写几个插入、删除、修改的语句就可。
//插入
insert
into course
value('SD_123','tianjiacaozuo','Datebase',5);
//一定要有 ; 记住,必须是英文输入法的!!!英文、英文、英文!
//删除
delete from department
where dept_name='Biology';
//varchar的常量要用单引号引起来!
//更新
update instructor
set salary=salary*1.5
where ID='10101';
以上就是实验一,仅供参考。有好的写法私我。
实验二:数据库的简单查询和连接查询
- 实验目的:
- 掌握SQL简单查询与连接查询语法。
- 掌握SQL Server查询分析器的使用方法;
- 实验内容:
- 1.找出所有教师的名字
- 2.找出所有教师所在的系
- 3.找出所有在computer science系且工资超过100000元的教师姓名
- 4.找出满足下面条件的所有教师的姓名,他们的工资至少比biology系某个教师的工资要高
- 5.对于大学中所有讲授课程的教师,找出他们的姓名以及所讲述课程的标识。(用连接语句、条件语句分别实现、更名语句)
- 6.找出所在建筑名称中包含子串waso的所有系名
- 7.按工资降序列表,工资相同按姓名升序排列
- 8.找出工资在100000到200000间教师信息(2种语句)
- 9.找出2009年秋和2010春同时开课的所有课程的集合。
- 10.找出2009年秋或2010春同时开课的所有课程的集合。(保留重复数据)select name from instructor;
1.找出所有教师的名字
select name
from instructor;
2.找出所有教师所在的系
select depr_name
from instructor
3.找出所有在computer science系且工资超过100000元的教师姓名
select name
from instructor
where dept_name='Comp.Sci.' and salary>100000;
4.找出满足下面条件的所有教师的姓名,他们的工资至少比biology系某个教师的工资要高
select name
from instructor
where salary>some(select salary
from instructor
where dept_name='Biology');
5.对于大学中所有讲授课程的教师,找出他们的姓名以及所讲述课程的标识。(用连接语句、条件语句分别实现、更名语句)
//条件语句
select name,course_id
from instructor,teaches
where instructor.ID=teaches.ID;
//连接语句
select name,course_id
from instructor inner join teaches
on instructor.ID=teaches.ID;
//inner join 是内联,与on连用,这时侯的条件就不能用where去写
//更名语句
select name,course_id
from instructor as I,teaches asT
where I.ID=T.ID;
6.找出所在建筑名称中包含子串waso的所有系名
select dept_name
from department
where building like '%Waso%;
7.按工资降序列表,工资相同按姓名升序排列
select *
from instructor
ordeer by salary desc,name asc;
//desc降序,asc升序,数据库中默认升序
8.找出工资在100000到200000间教师信息(2种语句)
select *
from instructor
where salary between 100000 and 200000;
select*
from instructor
where salary>=1000 and salary<=200000;
9.找出2009年秋和2010春同时开课的所有课程的集合。
(select course_id
from section
where semester='Fall' and year=2009)
intersect
(
select course_id
from section
where semester='Spring'and year=2010);
10.找出2009年秋或2010春同时开课的所有课程的集合。(保留重复数据)select name from instructor;
(select course_id
from section
where semester='Fall' and year=2009)
union all
(select course_id
from section
where semester='Spring' and year=2010);
//union all 保留重复的数据
以上就是实验二,内容仅供参考。有好的写法私我。
实验好好做,也能收获不少东西。上课一定要好好听,即使老师讲的啥也不是,我们也要从他们的话里挑出精华学到就是赚到,知识是自己的,它比对象好多了,谁也偷不走。就算忘了你也不伤心是不是,哈哈哈哈。
不出意外,数据库我会把写过的实验都整理出来,不定期的哦,嘻嘻。