实验二查询设计
数据库原理及应用 数据库查询 实验二
《数据库原理及应用》实验报告实验名称数据库查询实验室502 实验日期求选修了课程的学生学号。
Use 学生课程GoSelect 学号from 学生where 学号in (select 学号from where 课程号 is not null)求选修1102课程的学生学号和成绩,并要求对查询结果按成绩的降序排列,如果成绩相同则按学号的升序排列。
Use 学生课程GoSelect 学号,成绩 from 课程,选课 where 课程.课程号and 课程号=1102 order by 成绩 desc,学号 asc求选修课程1102且成绩在80~90分之间的学生学号和成绩,并将成绩乘以系数0.8输出。
Use 学生课程GoSelect 学号,成绩*0.8 as 成绩 from选课 where 成绩 between 80 and求数学系或计算机系姓张的学生的信息。
Use 学生课程GoSelect * from 学生,课程,选课 where 学生.学号=选课.学号 and 课程号=课程.课程号and 姓名like ’张%’and (所在系=’数学’在系=’计算机’)求缺少了成绩的学生的学号和课程号。
Use 学生课程GoSelect 学号,课程号 from 选课 where 成绩 is null连接查询实验语句在“学生选课”数据库中实现下列数据连接查询操作。
查询每个学生的情况以及他(她)所选修的课程。
Use 学生课程GoSelect * from 学生,选课,课程 where 学生.学号=选课.学号课程号=课程.课程号求学生的学号、姓名、选修的课程名及成绩。
Use 学生课程GoSelect 学号,姓名,课程名,成绩 from 学生,选课,课程 where学生求选修1105课程且成绩为90分以上的学生学号、姓名及成绩。
Use 学生课程GoSelect 学号,姓名,成绩 from 学生,选课 where 学生.学号=选课and 课程号=1105 and 成绩>90查询每门课的选课人数。
《数据库》实验二SQL查询代码
)
)
);
Q23. List the names of managers who have at least one dependent.
查询至少有一个家属的部门经理姓名。
SELECT FNAME,LNAME FROM EMPLOYEE
WHERE SSN IN (
ORDER BY FNAME ASC;
Q2. 查询不重复的员工工资值。
SELECT DISTINCT SALARY FROM EMPLOYEE
Q3. 查询没有直接上司的员工姓名。
SELECT FNAME,LNAME FROM EMPLOYEE
WHERE SUPERSSN IS NULL;
查询至少参与了所有John Smith参与项目的员工姓名。
SELECT FNAME,LNAME FROM EMPLOYEE
WHERE SSN IN (
SELECT ESSN FROM WORKS_ON
WHERE PNO=ANY (
SELECT PNUMBER FROM PROJECT
Q16. Select all combinations of EMPLOYEE SSN and DEPARTMENT DNAME in the Company database.
查询Company数据库中所有员工SSN与DNAME(部门名称)的组合。
SELECT E.SSN,D.DNAME
WHERE SALARY>=30000 GROUP BY D.DNAME
HAVING COUNT(SALARY)>=2;
Q18. Retrieve the names of all employees who do not work on any project controlled by department number 5.
SQL实验二:数据库查询实验报告
SQL实验⼆:数据库查询实验报告实验⼆数据库的查询实验⼀、实验⽬的和要求(1)掌握SQL Server查询分析器的使⽤⽅法,加深对SQL和Transact-SQL语⾔的查询语句的理解。
(2)熟练掌握简单表的数据查询、数据排序和数据连接查询的操作⽅法。
(3)熟练掌握数据查询中的分组、统计、计算和组合的操作⽅法。
⼆、实验内容和原理在实验⼀定义的“学⽣成绩数据库”中,使⽤T-SQL语句完成以下查询:(1)求计算机系学⽣的学号和姓名。
(2)求选修了数学的学⽣学号、姓名和成绩。
(3)求选修01课程的学⽣学号和成绩,并要求对查询结果按成绩降序排列,如果成绩相同则按学号升序排列。
(4)查找选修课程的平均成绩位于前三名的学⽣的学号。
(5)查询计算机系的姓刘且单名的学⽣的信息。
(6)查询⾄少选修两门课程的学⽣学号。
(7)查询学⽣的学号、课程号以及对应成绩与所有学⽣所有课程的最⾼成绩的百分⽐。
(8)查询选修“数据库”课程,且成绩在80分以上的学⽣的学号和成绩。
(9)查询所有姓“王”的同学没有选修的课程名。
(请分别⽤exists和in完成该查询)(10)查询选修了全部课程的学⽣的姓名。
(请⾄少写出两种查询语句)(11)求选修了学⽣“95001”所选修的全部课程的学⽣学号和姓名。
(12)查询每⼀门课的间接先修课。
(13)列出所有学⽣所有可能的选课情况。
(14)列出每个学⽣的学号及选修课程号,没有选修的学⽣的学号也⼀并列出。
(15)输出与“张三”同性别并位于同⼀个系的所有同学的姓名。
(请⾄少写出两种查询语句)(16)查询⾄少被两名男⽣选修的课程名。
(17)对被两名以上学⽣所选修的课程统计每门课的选课⼈数。
要求输出课程号和选修⼈数,查询结果按⼈数降序排列;若⼈数相同,按课程号升序排列。
(18)列出选修课程超过3门的学⽣姓名及选修门数。
(19)检索⾄少选修课程号为01和03的学⽣姓名。
(20)检索⾄少选修课程“数学”和“操作系统”的学⽣学号。
VF实验二关联、查询和数据库
实验二关联、查询和数据库实验2-1 多表关联与查询实验目的:〔1〕理解关联的概念,掌握在数据工作期窗口中建立关联的方法。
〔2〕掌握SELECT-SQL查询命令。
〔3〕掌握用查询设计器建立查询的方法。
实验要求:〔1〕在数据工作期窗口上建立以“订单〞为父表,“订单明细〞为子表的一多关系;再建立以“订单明细〞为父表,“货物〞为子表的多一关系的二级关联。
然后查看关联后的效果。
〔2〕用SELECT-SQL命令对上述5个表作多表查询练习。
①查询联系“东南实业〞公司的员工**及联系。
②查询订购麻油的订单份数。
〔3〕用查询设计器查询公司订货情况。
实验步骤:〔1〕为“关联〞建立索引:为订单表的订单号字段建立索引,再为货物表的货号字段建立索引。
1)翻开“订单明细表〞在命令窗口里输入命令:INDE* ON 订单号 TAG ddh,执行命令就为该表建立了索引,翻开表生成器查看如下:图中显示了索引,默认是升序的。
2〕同样的方法,翻开“订单明细表〞在命令窗口里输入命令:INDE* ON 货号 TAG hh,执行命令就为该表建立了索引,〔2〕建立关联:过程方法:1〕翻开数据工作期窗口→分别用“翻开〞按钮翻开订单表、订单明细表和货物表→在“别名〞列表框中选定“订单〞,单击“关系〞按钮→在“别名〞列表框中选定“订单明细〞→随即弹出“设置南索引顺序〞对话框,其列表框中显示“订单明细.订单号〞。
选定“确定〞按钮→随即弹出“表达式生成器〞对话框,其SET RELATION框中显示“订单号〞。
选定“确定〞按钮,多一关系建立完成→选定“一对多〞按钮→在随即弹出的“创立一对多关系〞对话框中→选定“确定〞按钮,一多关系建立完成。
显示的表达式生成器如下:2)在“别名〞列表框中选定“订单明细〞→为确定以订单明细表为父表建立下一级关联,在“关系〞列表框中也选定“订单明细〞→单击“关系〞按钮→在“别名〞列表框中选定“货物〞→在随即弹出的“设置索引顺序〞对话框中选定“确定〞按钮→在“表达式生成器〞对话中选定“确定〞按钮,多一关系建立完成,如图下列图所示:〔3〕查看关联效果:分别“订单〞、“订单明细〞和“货物〞浏览窗口,并按左中右顺序排列→选定“订单〞表的*个记录,“订单明细〞和“货物〞浏览窗口的内容即会关联变化,如下列图所示。
实验2 序列查询(Entrez)、BLAST序列相似性搜索
实验二:序列查询(Entrez)、BLAST序列相似性搜索实验目的:1.学会用Entrez系统查找目标序列2.学会使用BLAST在数据库中搜索相似序列3.学会分析数据库搜索结果实验内容:一、EntrezEntrez是一个由NCBI创建并维护的基于Web界面的综合生物信息数据库检索系统。
用户不仅可以方便地检索Genbank的核酸数据,还可以检索来自Genbank和其它数据库的蛋白质序列数据、基因组图谱数据、来自分子模型数据库(MMDB)的蛋白质三维结构数据、种群序列数据集、以及由PubMed获得Medline的文献数据。
网址:/Entrez/(或在NCBI主页默认All Databases时点击搜索框右边的Search进入)。
如Figure 2.1所示:Figure 2.1 entrez 检索系统子数据库点击搜索框右边的help按钮,即可进入Entrez帮助页面。
在搜索栏输入你要查找的关键词,点击“GO”即可开始搜索。
如果输入多个关键词,它们之间默认的是“与”(AND)的关系。
Tips:搜索的关键词可以是一个单词,短语,句子,数据库的识别号,基因名字等等,但必须明确,不能是“gene”, “protein”等没有明确指向的词语。
但“transcription factor”这样有一定范围的词是可以接受的。
可以用你感兴趣的领域的专业术语,也可以是非专业术语,比如:h1n1,lung cancer,albinism; subtilism, peroxidase, myoglobin。
输入关键词,点击“GO”之后,每个数据库图标前方出现了数字,代表的是在相对应的数据库里搜索到的条目数。
点击进入对应的数据库,可以查看搜索到的条目。
如果在数据库图标前面为灰色,显示“none”,说明在对应的数据库里没有搜索到任何结果。
也可以直接通过NCBI任一页面上的搜索栏进行Entrez搜索。
点击“search”后面的下拉菜单,选择数据库,在下面的文本框里输入关键词,点击“Search”即可(Figure 2.2)。
数据库实验二数据查询
实验4 数据查询一、实验目的1.掌握SELECT语句的基本语法和查询条件的表示方法;2.掌握连接查询的表示方法;3.掌握嵌套查询的表示方法;4.掌握数据汇总的方法;5.掌握ORDER BY子句的作用和使用方法;6.掌握HAVING子句的作用和使用方法;二、实验内容使用SELECT查询语句,在数据库StudentCourse的Student表、Course 表和StuCourse 表上进行各种查询,包括单表查询、连接查询、嵌套查询,并进行数据汇总,以及使用GROUP BY子句、ORDER BY子句和HAVING子句对结果进行分组、排序和筛选处理。
1.SELECT语句的基本使用;2.连接查询;3.嵌套查询;4.数据汇总;5.使用GROUP BY 子句对结果分组;6.使用ORDER BY子句对结果排序;7.使用HAVING子句对分组结果进行筛选;思考与练习:1.用SELECT语句查询Course表和StuCourse表中的所有记录。
SQL语句:select * from Course;select * from StuCourse;实验结果:2.用SELECT语句查询Course表和StuCourse表中满足指定条件的一列或若干列。
SQL语句:select 课程号,课程名 from Course where 学分=5;select 学号,课程号 from StuCourse where 成绩>80;实验结果:3.查询所有姓名中包含有“红”的学生的学号及姓名。
SQL语句:select 学号,姓名 from Student where 姓名 like '%红%';实验结果:4.用连接查询的方法查找所有选修了“2001” 或“1002”号课程的学生学号和姓名。
SQL语句:selectdistinct Student.学号,姓名from StuCourse,Studentwhere(课程号='1002'or 课程号='2001')and StuCourse.学号=Student.学号;实验结果:5.用子查询的方法查找所有选修了“2001”或“1002”号课程的学生学号和姓名。
数据库原理实验2数据查询
课程名称数据库原理实验序号 2实验项目数据查询实验地点实验学时实验类型验证性指导教师实验员专业班级学号姓名年月日成绩:A教师该学生本次实验的内容丰富,完成的操作步骤详细具体,实验结果正确,在实验报告的填写中态度十分严谨,对数据分析有自己的见解。
四、实验过程(实验步骤、记录、数据、分析)实验准备:在实验一的基础上(包括数据库的建立、定义表和添加表内容)进行实验,下面分别为depts表、students表、courses表、reports表。
一、简单的选择与投影查询1、无条件查询1.1查询全体学生的详细记录。
这是一个无条件的选择查询,其命令为:其命令为:select * from students运行结果如右图,显示整张表的内容。
1.2查询全体学生的姓名(Sname)、学号(Sno)、所在系(dno)。
这是一个无条件的投影查询,其命令为:select sname,ssexfrom students运行结果如右图,显示了表中的三列。
1.3查询全体学生的姓名(Sname)、出生年份及学号(Sno)。
其命令为:select sno,sname,2017-sage as birth from students运行结果如右图,显示了三列内容。
1.4查询全体学生的姓名、出生年份和学号,要求用小写字母表示学号中的字母。
其命令为:select sname,'birth:' title,YEAR(GETDATE())-sagebirthyear,LOWER(sno) lsnofrom students运行结果如右图,显示了四列内容。
1.5查询选修了课程的学生学号。
其命令为:select distinct snofrom reports运行结果如右图,distinct短语是为了消去查询结果中的重复值。
2、条件查询(1)比较条件1.1查询d03系全体学生的学号(Sno)和姓名(Sname)。
其命令为:select sno,snamefrom studentswhere dno='d03'运行结果如右图,显示了d03系的全体学生姓名与学号。
实验二查询部分及查询作业答案
实验二. 数据库查询Student表:列名含义数据类型约束Sno 学号字符串,长度为7 主码Sname 姓名字符串,长度为10 非空Ssex 性别字符串,长度为2Sage 年龄整形Sdept 所在系字符串,长度为20Course表:列名含义数据类型约束Cno 课程号字符串,长度为10 主码Cname 课程名字符串,长度为20 非空Ccredit 学分字节Semester 学期字节SC表:列名含义数据类型约束Sno 学号字符串,长度为7 主码引用Student的Sno作为外码Cno 课程号字符串,长度为10 主码引用Course的Cno作为外码Grade 成绩小整形XKLB 修课类别字符串,长度为4 请写明创建以上三张基本表的语句。
3.将如下数据插入建好的三张表中。
Student表学号姓名性别年龄所在系'9512101','李勇','男',19,'计算机系''9512102','刘晨','男',20,'计算机系''9512103','王敏','女',20,'计算机系''9521101','张立','男',22,'信息系''9521102','吴宾','女',21,'信息系''9521103','张海','男',20,'信息系''9531101','钱小平','女',18,'数学系''9531102','张大力','男',19,'数学系'Course表课程号课程名学分学期'c01','计算机文化学',3,1'c02','VB',2,3'c03','计算机网络',4,7'c04','数据库基础',6,6'c05','高等数学',8,2'c06','数据结构',5,4SC表学号课程号成绩修课类别'9512101','c01',90,'必修''9512101','c02',86,'选修''9512101','c06',null,'必修''9512102','c02',78,'选修''9512102','c04',66,'必修''9521102','c01',82,'选修''9521102','c02',75,'选修''9521102','c04',92,'必修''9521102','c05',50,'必修''9521103','c02',68,'选修''9521103','c06',null,'必修''9531101','c01',80,'选修''9531101','c05',95,'必修''9531102','c05',85,'必修'请写明使用的数据插入语句。
数据库系统原理与设计 实验二答案
实验四多表查询1 实验目的与要求(1) 熟练掌握SQL语句的使用。
(2) 熟练使用SQL语句进行连接操作。
2 实验内容1)实验题目:(1) 找出同一天进入公司服务的员工。
(2) 查找与“陈诗杰”在同一个单位工作的员工姓名、性别、部门和职务。
(3) 在Employee表中查询薪水超过员工平均薪水的员工信息。
(4) 查找有销售记录的客户编号、名称和订单总额。
(5) 查询没有订购商品的客户编号和客户名称。
(6) 使用子查询查找32M DRAM的销售情况,要求显示相应的销售员的姓名、性别,销售日期、销售数量和金额,其中性别用“男”、“女”表示。
(7) 查询OrderMaster表中订单金额最高的订单号及订单金额。
(8) 在订单主表中查询订单金额大于“E2005002业务员在2008-1-9这天所接的任一张订单的金额”的所有订单信息。
(9) 查询单价高于400元的商品编号、商品名称、订货数量和订货单价。
(10) 分别使用左外连接、右外连接、完整外部连接查询单价高于400元的商品编号、商品名称、订货数量和订货单价,并分析比较检索的结果。
(11) 使用左外连接查找每个客户的客户编号、名称、订货日期、订单金额,其中订货日期不要显示时间,日期格式为“yyyy-mm-dd”,按客户编号排序,同一客户再按订单金额降序排序输出。
(12) 查找每个员工的销售记录,要求显示销售员的编号、姓名、性别、商品名称、数量、单价、金额和销售日期,其中性别使用“男”和“女”表示,日期使用“yyyy-mm-dd”格式显示。
(13) 查找16M DRAM的销售情况,要求显示相应的销售员的姓名、性别,销售日期、销售数量和金额,其中性别用“男”、“女”表示。
(14) 找出公司男业务员所接且订单金额超过2000元的订单号及订单金额。
(15) 查询每种商品的总销售数量及总销售金额,要求显示出商品编号、商品名称、总数量及总金额,并按商品号从小到大排列。
数据库实验二 简单查询
实验二简单无条件查询
一、实验目的
通过本次实验使学生掌握数据库中表数据的基本查询操作。
二、实验内容
补充:数据库的备份和还原操作
1、查询指定列
2、查询所有列
3、查询计算列
4、函数的使用
三、实验环境
1、Windows XP
2、SQL Server 2000
四、实验步骤
1、还原一个数据库,文件名为“school”
2、打开“STUDENT”数据库
3、输入如下数据:
S表
SC 表
T表
4、根据下列题目书写查询语句,调试,运行,得到正确执行结果。
1)查询所有学生的学号和姓名
2)检索出所有学生的信息
3)从选课关系中检索出学生所选的课程号
4)检索每个学生的出生年份
5)统计学生的人数
6)统计选修了课程的学生人数
7)计算出学号为0001的学生的总分、平均分、最高分和最低分。
答案:
1)Select s#,sname from s;
2)Select * from s;
3)Select distinct c# from sc;
4)Select s#,sname,year(getdate())-age as birth_year from s; 5)Select count(*) as 人数 from s;
6)Select count(distinct s#) as 选课人数 from sc;
7)Select sum(score), avg(score), max(score), min(score) from sc where s#=‘0001’;。
实验训练2数据查询操作
实验训练2:数据查询操作实验目的:基于实验1创建的汽车用品网上商城数据库Shopping,理解MySQL运算符、函数、谓词,练习Select语句的操作方法。
实验内容:1.单表查询【实验2.1】字段查询(1)查询商品名称为“挡风玻璃”的商品信息。
分析:商品信息存在于商品表,而且商品表中包含商品名称此被查询信息,因此这是只需要涉及一个表就可以完成简单单表查询。
(2)查询ID为1的订单。
分析:所有的订单信息存在于订单表中,而且订单用户ID也存在于此表中,因此这是只需要查询订单表就可以完成的查询。
【实验2.2】多条件查询查询所有促销的价格小于1000的商品信息。
分析:此查询过程包含两个条件,第一个是是否促销,第二个是价格,在商品表中均有此信息,因此这是一个多重条件的查询。
【实验2.3】DISTINCT(1)查询所有对商品ID为1的商品发表过评论的用户ID。
分析:条件和查询对象存在于评论表中,对此商品发表过评论的用户不止一个,而且一个用户可以对此商品发表多个评论,因此,结果需要进行去重,这里使用DISTINCT实现。
(2)查询此汽车用品网上商城会员的创建时间段,1年为一段。
分析:通过用户表可以完成查询,每年可能包含多个会员,如果把此表中的创建年份都列出来会有重复,因此使用DISTINCT去重。
【实验2.4】ORDER BY(1)查询类别ID为1的所有商品,结果按照商品ID降序排列。
分析:从商品表中可以查询出所有类别ID为1的商品信息,结果按照商品ID的降序排列,因此使用ORDER BY语句,降序使用DESC关键字。
(2)查询今年新增的所有会员,结果按照用户名字排序。
分析:在用户表中可以完成查询,创建日期条件设置为今年,此处使用语句ORDER BY。
【实验2.5】GROUP BY(1)查询每个用户的消费总金额(所有订单)。
分析:订单表中包含每个订单的订单总价和用户ID。
现在需要将每个用户的所有订单提取出来分为一类,通过SUM()函数取得总金额。
实验二 数据查询
实验二一、实验目的了解SQL Server 查询分析器中执行T-SQL语句的方法;使用T-SQL语句创建数据表;掌握数据库查询语句SELECT语句的基本语法及使用方法;二、实验内容1.利用企业管理器中提供的“生成SQL脚本”命令生成实验一中创建的数据库中数据表对象的创建的脚本文件,作为实验结果文件保存在实验文件夹下。
2.在查询分析器中完成数据库的创建。
(可另外取名创建数据库文件)3.使用SELECT语句建立以下查询1)显示bookinfo表中所有字段的值;2)查询teacher表中所有记录的teachercode、teachername、enterdate、title字段信息;3)查询男教师的姓名(teachername),显示时将字段名改为“姓名”;4)查询2007年以后出版的教材名称(bookname)、出版日期(publishdate)和库存量(stocknum),显示时字段名称分别为教材名称、出版日期、库存量;显示结果如图1所示。
图15)查询所有教材的出版社代码(publishcode),不包括重复的记录;显示结果如图2所示。
图2 图36)查询学生订书量(stubooknum)最大的3个记录,显示教材代号(bookcode)和学生订书量(stubooknum);显示结果如图3所示。
7)查询学生订书量(stubooknum)在150~250之间的教材信息;显示结果如图4所示。
图48)查询每一种教材的学生订书总量;显示结果如图5所示。
图5 图69)查询书名为“VB程序设计”的教材的学生总订量、教师总订量及总订量;显示结果如图6所示。
10)显示教材的最高价、最低价、平均价、最高价与最低价之间的差值;显示结果如图7所示。
图711)查询出版社代号(publishcode)为10、02、31的出版社所出版的教材信息。
要求显示教材名称(bookname)、作者(author)、价格(price)、库存和出版社名称(publisher);显示结果如图8所示。
实验二 数据检索
实验二数据检索一、目的与要求1.掌握使用SQL SERVER 2008查询语句实现简单数据查询的方法,巩固基本查询的语法;2.练习使用排序、分组、聚合等运算符实现特殊查询;3.练习多表连接查询、联合查询以及子查询的使用方法;二、实验准备1创建自己的项目数据库和表;2.向表中插入数据,以备查询使用;3.熟悉各种查询运算符的用法;4.设计与项目相关的查询题目,以备在实验室中调试完成。
三、实验内容1.登录到SQL SERVER服务器;2.将实验一创建的数据库附加到服务器上,用作实验数据库;3.在SSMS中新建查询,打开查询设计窗口,完成如下查询请求:1)查询选修“高等数学”课程的学生同时还选修了哪些课程。
2)查询“JAVA”课程的平均成绩、最高最低分、前十名学生的信息。
3)统计每个学生的选课门数(包括没选课的学生),列出学号、选课门数和选课情况,其中选课情况显示规则为:如果选课门数大于或等于6门,则选课情况为:“多”;如果选课门数在3-5门之间,则选课情况为:“一般”;如果选课门数大于或等于6门,则选课情况为:“较差”;如果没有选课,则选课情况为:“未选课”。
4)修改全部课程的学分,修改规则如下:如果是第1-2学期开设的课程,则学分增加5分;如果是第3-4学期开设的课程,则学分增加3分;如果是第5-6学期开设的课程,则学分增加1分;对于其他学期开设的课程,学分不变。
5)查询每位学生得分最高的课程信息,列出学生学号、课程号、课程名和成绩。
6)查询选修了计算机文化学而没有选修JAVA课程的学生信息。
7)查询同时选修数据结构和JAVA两门课程的学生信息。
8)查询计算机系学生的信息,列出姓名、所在系、出生日期以及该学生的年龄排名(按从大到小)。
9)定义一个统计每门课程的考试平均成绩和选课人数的CTE,并利用该CTE查询选课人数超过2人的课程。
10)查询course表中的全部数据并将其保存到一个新表NewCourse中,然后为NewCourse表增加一个先修课程列PriorCno,该列表明了当前课程的先修课程编号,NULL 表示该门课程没有先修课程。
实验二 数据查询
实验二数据查询和更新一、实验目的和要求1.了解脚本文件的使用;2.掌握SELECT语句在单表查询中的应用;3.掌握复杂查询的使用方法;4.掌握多表连接的方法;5.掌握子查询的使用方法6.掌握SQL的数据更新操作7.掌握视图的定义、查询和更新操作二、实验内容1、使用脚本文件(create.sql)创建CAP数据库。
操作步骤:①新建查询,将附录中的create.sql的内容输入到查询窗口中,并保存为create.sql②分析并执行2、使用T-SQL装载数据①设置外围应用配置器在开始菜单中:所有程序-SQL Server 2005 -配置工具-SQL Server 外围应用配置器。
在“外围应用配置器”窗口中选择“功能的外围应用配置器”,并在弹出的窗口里选择“启用OPENROWSET和OPENDATASOURCE支持”。
单击“确定”按钮。
②新建查询,并输入以下语句:--以下代码通过使用openrowset8.0;Database=e:\cap.xls',[产品$]);Insert into agents select * from8.0;Database=e:\cap.xls',[代理商$]);insert into products select * fromopenrowset('Microsoft.Jet.OLEDB.4.0','Excel8.0;Database=e:\cap.xls',[产品$]);insert into orders select * fromopenrowset('Microsoft.Jet.OLEDB.4.0','Excel8.0;Database=e:\cap.xls',[订单$]);3、查询和更新操作1)找出所有客户、代理商和商品都在同一城市的三元组(cid, aid, pid)。
Select aid,cid,pidfrom agents,customers,productswhere agents.city=customers.city and agents.city=products.city and products.city=customers.city2)找出所有客户、代理商和商品不都在同一城市(可能有两个在同一城市)的三元组(cid, aid, pid)。
数据库实验二实验报告
_数据库实验二课程实验报告实验名称:姓名班级学号实验台编号同组学生实验课表现出勤、表现得分25% 实验报告得分50%实验总分操作结果得分25%实验目的:1.掌握SELECT语句的基本语法2.掌握SELECT语句中的SELECT子句的作用及使用方法3.掌握SELECT语句中的WHERE子句的作用及使用方法4.掌握SELECT语句中的ORDER BY子句的作用及使用方法5.掌握集合函数的作用及使用方法6.掌握SELECT语句中的GROUP BY子句的作用及使用方法7.熟悉内连接、外连接、自连接和非限制连接的概念8.能够熟练使用连接查询从多个表中查询数据9.能够熟练地使用子查询得到想要的数据实验内容:一、简单查询1.查询XS表中各个同学的所有信息。
select* from XS;2.查询XS表中各个同学的姓名、专业名和总学分。
select姓名,专业,总学分from XS;3.查询XS表中所有同学的学号、姓名和总学分,结果中各列的标题分别指定为num,name和mark。
select学号num,姓名name,总学分mark from XS;4.查询XS表中的学生数据来自哪些专业(使用DISTINCT子句消除结果集中的重复行)。
select distinct专业from XS;5.查询XS表中各个同学的姓名、专业名和总学分,只返回结果集的前5行。
select top 5 姓名,专业,总学分from XS;6.查询XS表中每个学生的学号、姓名和年龄信息。
select datediff(yyyy,出生日期,'2010')年龄from XS;7.查询XS表中专业为“计算机”的同学的情况。
select*from XS where专业='计算机';8.查询XS表中1979年出生的学生姓名和专业情况。
SELECT姓名,专业from XS where year(出生日期)='1979';9.查询XS表中专业名为“计算机”或“电子”或“数学”的学生的情况。
实验二 查询数据库
实验二查询数据库一、实验目的熟悉SQL语句的基本使用方法,学习如何编写SQL语句来实现查询二、实验内容和要求使用SQL查询分析器查询数据,练习查询语句的使用,掌握SELECT 语句的完整结构,包括简单查询、嵌套查询、连接查询等基本实现方法。
三、实验主要仪器设备和材料1.计算机及操作系统:PC机,Windows 2000/xp;2.数据库管理系统:SQL sever 2000/2005;四、实验方法、步骤及结果测试对实验一建立的数据库表进行查询。
实验题目:题目1、查询学生的系别,用小写字母表示。
题目2、查询所有刘姓学生的学号、系别。
实现代码及查询结果截图:select Sno,Sdept from S where Sname like'刘%';题目3、查询教师姓名第二个字是“一”的教师姓名,所教课程名。
实现代码及查询结果截图:select Tname,Cname from C where Tname like'_一_';题目4、查询没有成绩的学生学号,学号降序排列。
实现代码及查询结果截图:select Sno from Sc where Grade is null order by Sno desc;题目5、各科选修课考试成绩及格的人数。
实现代码及查询结果截图:select Count(Sno)from Sc where Grade>60 group by Cno题目6、各学院男生人数,超过2人的输出学院名和人数,并按男生人数降序排列实现代码及查询结果截图:select Sdept,Count(Sno)from S where Ssex='男'group by Sdept having Count(Sno)>2 order by Count(Sno)desc;题目7、查询IS系男女学生人数各是多少实现代码及查询结果截图:select S.Ssex As'性别',count(*) As'IS系人数' from S where S.Sdept='IS'group by Ssex;题目8、找出年龄>23岁,平均成绩不及格的学生学号和平均分实现代码及查询结果截图:select Sno,avg(Grade)from Sc where Sno in(select Sno from S where year(getdate()-Sbirth)>23)group by Sno having avg(Grade)<60题目9、显示所有学生信息,如果该生选修过课程,显示其选修课号和考试成绩实现代码及查询结果截图:select S.*,o,Sc.Grade from S left join Sc on(SC.Sno=S.Sno)题目10、查询每门课都是80分以上的学生的学号与姓名。
实验2复杂查询
(5)查询emp表和salgrade表显示部门20的雇员名,工资及其工E同部门的所有雇员,但不显示BLAKE.
(2)显示超过平均工资的所有雇员名,工资及其部门号
(3)显示超过该部门平均工资的所有该部门雇员名,工资及部门号。
(4)显示高于CLERK岗位所有雇员工资的所有雇员名,工资及岗位
2.select ename,comm,dname from emp e,dept d where e.deptno=d.deptno and comm is not null;
3.select ename,sal,dname from emp e,dept d where d.deptno=e.deptno and loc='LALLAS';
【实验步骤和方法】
1、启动oracle的相关服务。
2、启动SQL*plus工具,用scott普通用户登录oracle。
3、完成实验内容。
【实验预习要求】
重点复习oracle的多表查询,子查询和外连接。
【实验报告要求】
除按实验报告纸的内容进行填写外,主体部分包括以下内容:
(1)程序中用到哪些命令
(2)实验步骤
2.实验步骤
3.实验运行结果及结果分析
4.上机调试中遇到的主要问题及解决办法
倒数第二个显示超过该部门平均工资的所有该部门雇员名,工资及部门号。
查看课本P102例子和p130
还有一种解决方法
select ename,sal,emp.deptno from emp,(select avg(sal) a,deptno from emp group by deptno) t where emp.deptno=t.deptno and emp.sal>t.a;
实验二-数据的查询、更新
实验二数据的查询、更新一、实验目的1、掌握用户自定义数据类型的方法2、掌握用T-SQL语句进行数据的插入、修改、删除的方法3、熟练掌握SELECT语句,能够运用该语句完成各种查询二、实验要求1、实验前做好上机实验的准备,针对实验内容,认真复习与本次实验有关的知识,完成实验内容的预习准备工作;2、能认真独立完成实训内容;3、实验后做好实验总结,根据实验情况完成总结报告。
三、实验内容1、用T-SQL语句,创建一用户自定义数据类型:名称为“char20”,数据类型为varchar,长度为20,允许为空。
sp_addtype char20,'varchar(20)',null提示:sp_addtype [@typename=]用户自定义类型的名字[, @phystype=]系统类型名[, [@nulltype=] ' not null | null '] [, [@owner=] '拥有该类型的用户名'] 例:自定义一个名为address的类型,其所属系统类型为varchar,长度为80,不能为空。
sp_addtype address,' varchar(80)', ' not null '2、用T-SQL语句,建立一个“学生课程数据库”,在此基础上建立该数据库包含的学生表,课程表,学生选修表,并向各表插入如下相应的数据。
create database学生课程数据库学生表:Student(Sno,Sname,Ssex,Sage,Sdept) 其中Sno 为主键、Ssex取值为男或女、SageSno Sname Ssex Sage Sdept95001 李敏勇男20 CS95002 刘晨女19 IS95003 王敏女18 MA95004 张立男18 IScreate table student(sno int primary key,sname char(10),ssex char(2)constraint ssex_ch check(ssex in('男','女')),sage int constraint sage_ch check(sage>=15 andsage<=30),sdept char(10))insert into studentvalues(95001,'李敏勇','男',20,'CS')insert into studentvalues(95002,'刘晨','女',19,'IS')insert into studentvalues(95003,'王敏','女',18,'MA')insert into studentvalues(95004,'张立','男',18,'IS')课程表:Course(Cno,Cname,Cpno,Credeit,remarks) 其中Cno为主键、Teacher的类型为Cno Cname Cpno Credit Teacher1 数据库 5 4 王芳2 数学NULL 2 刘新3 信息系统 14 刘新4 操作系统 6 3 高升5 数据结构7 4 宋明6 数据处理NULL 2 张彬7 Pascal语言 6 4 李磊create table course(cno int primary key,cname char(15),cpno int null,credit int,teacher char20)insert into coursevalues(1,'数据库',5,4,'王芳')insert into coursevalues(2,'数学',NULL,2,'刘新')insert into coursevalues(3,'信息系统',1,4,'刘新')insert into coursevalues(4,'操作系统',6,3,'高升')insert into coursevalues(5,'数据结构',7,4,'宋明')insert into coursevalues(6,'数据处理',NULL,2,'张彬')insert into coursevalues(7,'PASCAL语言',6,4,'李磊')学生选修表:SC(Sno,Cno,Grade) 其中Sno,Cno为主键同时又为外键、Grade值在0到100;Sno Cno Grade95001 1 9295001 2 8595001 3 8895002 2 9095003 2 5595004 2 70create table sc(sno int,cno int,grade int constraint grade_ch check(grade between 0 and100),primary key(sno,cno),constraint fk_sno foreign key (sno)references student(sno),constraint fk_cno foreign key (cno)references course(cno),)insert into scvalues(95001,1,92)insert into scvalues(95001,2,85)insert into scvalues(95001,3,88)insert into scvalues(95002,2,90)insert into scvalues(95003,2,55)insert into scvalues(95004,2,70)3、用T-SQL语句,修改上面所建学生课程数据库中数据:1) 向学生表:Student中加入一条记录:(95030,谢非,男,22,CS)并保存insert into studentvalues(95030,'谢非','男',22,'CS')2) 将李敏勇的数据库的成绩改为98分update scset grade=98where o=(select ofrom coursewhere ame='数据库'and sno=(select snofrom studentwhere sname='李敏勇'))3) 删除学生表Student中谢非的记录并保存deletefrom studentwhere sname='谢非'4) 能不能从Student表中删除李敏勇学生的记录,为什么?能不能删除王敏, 张立两个学生的记录?不能, sc表中列sno是外码,参照student表的sno列。
数据库实验二,sql查询语句
实验二:数据查询语言实验内容SQL数据查询语句:例5-1:(选择表中的若干列) 求全体学生的学号、姓名、性别和年龄。
select sno,sname,sex,sage from student;例5-2:(不选择重复行) 求选修了课程的学生学号。
select distinct cno from sc where cno is not null;例5-3:(选择表中的所有列) 求全体学生的详细信息。
select * from student;例5-4:(使用表达式) 求全体学生的学号、姓名和出生年份。
select sno,sname,birthday from student;例5-5:(使用列的别名) 求学生的学号和出生年份,显示时使用别名“学号”和“出生年份”。
select sno as"学号",birthday as"出生年份" from student;例5-6:(比较大小条件) 求年龄大于19岁的学生的姓名和年龄。
select sname,age from studentwhere age>19;例5-7:(比较大小条件) 求计算机系或经济管理系年龄大于18岁的学生的姓名、系和年龄。
select sname,depname ,agefrom student,departmentwhere student.depno=department.depnoand age>18;例5-8:(确定范围条件) 求年龄在19岁与22岁(含20岁和22岁)之间的学生的学号和年龄。
select sno,age from studentwhere age in(19,22);例5-9:(确定范围条件) 求年龄不在19岁与22岁之间的学生的学号和年龄。
select sno,age from studentwhere age not in(19,22);例5-10:(确定集合条件) 求在下列各系的学生信息:数学系、计算机系。
实验训练2:数据查询操作
实验二MySQL数据库操作实验实验目的:基于实验1创建的汽车用品网上商城数据库Shopping,理解MySQL 运算符、函数、谓词,练习Select语句的操作方法。
实验内容:1.单表查询【实验2.1】字段查询(1)查询商品名称为“挡风玻璃”的商品信息。
分析:商品信息存在于商品表,而且商品表中包含商品名称此被查询信息,因此这是只需要涉及一个表就可以完成简单单表查询。
(2)查询ID为1的订单。
分析:所有的订单信息存在于订单表中,而且订单用户ID也存在于此表中,因此这是只需要查询订单表就可以完成的查询。
【实验2.2】多条件查询查询所有促销的价格小于1000的商品信息。
分析:此查询过程包含两个条件,第一个是是否促销,第二个是价格,在商品表中均有此信息,因此这是一个多重条件的查询。
【实验2.3】DISTINCT(1)查询所有对商品ID为1的商品发表过评论的用户ID。
分析:条件和查询对象存在于评论表中,对此商品发表过评论的用户不止一个,而且一个用户可以对此商品发表多个评论,因此,结果需要进行去重,这里使用DISTINCT实现。
(2)查询此汽车用品网上商城会员的创建时间段,1年为一段。
分析:通过用户表可以完成查询,每年可能包含多个会员,如果把此表中的创建年份都列出来会有重复,因此使用DISTINCT去重。
【实验2.4】ORDER BY(1)查询类别ID为1的所有商品,结果按照商品ID降序排列。
分析:从商品表中可以查询出所有类别ID为1的商品信息,结果按照商品ID的降序排列,因此使用ORDER BY语句,降序使用DESC关键字。
(2)查询今年新增的所有会员,结果按照用户名字排序。
分析:在用户表中可以完成查询,创建日期条件设置为今年,此处使用语句ORDER BY。
【实验2.5】GROUP BY(1)查询每个用户的消费总金额(所有订单)。
分析:订单表中包含每个订单的订单总价和用户ID。
现在需要将每个用户的所有订单提取出来分为一类,通过SUM()函数取得总金额。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Access数据库程序设计
实验报告
实验二查询设计
班级:
姓名:
学号:
实验二查询设计
【实验目的】
1.掌握选择查询的基本方法
2.掌握参数查询的基本方法
3.了解交叉表查询
【实验内容】
1.利用“查找不匹配项查询向导”查找从未借过书的读者的借书证号、姓名、部门和办证日期,查询对象保存为“未借过书的读者”。
2.利用“查找重复项查询向导”查找同一本书的借阅情况,包含书号、借书证号、借书日期和还书日期,查询对象保存为“同一本书的借阅情况”。
3.利用“交叉表查询向导”查询每个读者的借书情况和借书次数,行标题为“借书证号”,列标题为“书号”,按“借书日期”字段计数。
查询对象保存为“借阅明细表”。
4.创建一个名为“法律系借书情况”的查询,查找法律系读者的借书情况,包括借书证号、姓名、部门、书名和借书日期,并按书名排序。
5.创建一个名为“按图书查询”的参数查询,根据用户输入的书名查询该书的借阅情况,包括借书证号、姓名、书名、作者、借书日期和还书日期。
6.创建一个名为“价格总计”的查询,统计各出版社图书价格的总和,查询结果中包括出
版社和价格总计两项信息,并按价格总计项降序排列。
7.创建一个名为“借书超过60天”(还书日期—借书日期>60)的查询,查找借书人的姓名、借书证号、书名、借阅时间等信息。
8.创建一个名为“已借出图书”的查询,查找尚未归还的图书的书号、书名和借书日期。
9.创建一个名为“查询部门借书情况”的生成表查询,将“法律系”和“英语系”两个部门的借书情况(包括借书证号、姓名、部门、书号)保存到一个新表中,新表的名称为“部门借书登记”。
10.创建一个名为“添加部门借书情况”的追加查询,将“人事处”读者的借书情况添加到“部门借书登记”表中。
11.创建一个名为“删除部门借书情况”的删除查询,将“英语系”读者的借书情况从“部门借书登记”表中删除。
12.将“读者”表复制一份,复制后的表名为“读者copy”,然后创建一个名为“更改部门”的更新查询,将“读者copy”表中部门为“人事处”的字段值改为“教务处”。