SQL数据库实验三_简单查询(2)解答
数据库实验报告-SQL语句查询
《数据库原理》实验报告(实验名称:SQL查询语句)一、实验目的数据查询语句是SQL语句的重要组成部分,是编程人员与数据库管理人员必不可少的工具,通过实验达到以下目的:(1)掌握SELECT 语句的基本语法,加深学生对查询语句基本概念的理解。
(2)掌握简单的单表查询。
(3)掌握连接查询。
二、实验内容:实验数据:实验二所建的数据库及表,实验三录入表中的数据。
1、简单查询(1)若干列或行的选择(2)*、distinc、between…and… 、 in、 like等运算符的使用(3)计算列、常量或空值的查询(4)查询结果排序和分组2、连接查询(1)内连接和自身连接(2)外连接(3)复合条件连接(4)多表连接(5)对表和列使用别名三、实验环境SQL server 2000,pc机一台四、程序源码与运行结果1.查询所有学生的全部信息2. 查询全体学生的学号与姓名3 查询年龄在20岁以下的学生姓名及其出生年份,并为出生年份加上标题4 查询选修了课程的学生学号,并消除重复行5 查询年龄在20~23岁的学生信息(用between… and…表示查询条件)6 查询全体学生情况,查询结果按班级编号升序排列,同一班的学生按年龄降序排列7 查询所有姓赵学生的姓名、学号和性别8 查询名字中第2个字为“小”字的学生姓名9 查询电气信息工程学院(dx) 和计算机学院(jsj)的学生(要求:使用IN关键字表示查询条件10 查询没有考试成绩的学生学号和课程号11 查询有2门以上课程是90分以上的学生的学号及(90分以上的)课程数(先用group by 分组,再用Having限定分组条件)12 查询学生总人数13 查询学号为‘’学生的平均成绩和总成绩,并为总成绩和平均成绩取别名。
14 查询c01号课程的最高分数和最低分15 查询没有考试成绩的学生学号和课程号16 查询全体学生的姓名、选修的课程名及成绩17 查询每个学生及其选修课程情况的所有信息(用*表示字段18 查询某门课程考试成绩相同的学生学号和课程名,并为各个表取别名19 查询与“张三”在一个系学习的学生(IN)20 查询选修了“数据结构”的学生学号和姓名五、实验总结列名写错:修改列名:心得体会:通过实验,了解了一些基本的查询操作,会一些的基本操作。
数据库实验三报告_简单查询和连接查询实验
实验三、简单查询和连接查询实验简单查询和连接查询实验是数据库的基本查询操作,简单查询是只涉及到一个表(基本表或视图)的查询,连接查询是涉及两个表以上的数据连接查询。
1.实验内容和实验要求1.1实验目的了解SQL Server查询分析器的使用方法,加深对SQL 和Transaction-SQL语言的查询语句的理解;掌握表的数据简单查询、数据排序和数据连接查询的SQL表达和查询分析操作方法。
1.2实验内容(1)简单查询实验用SQL表达简单查询操作,包括投影、选择条件表达、数据排序和使用临时表等,通过SQL Server 查询分析器输入,并显示正确结果。
(2)连接查询实验用SQL表达连接查询操作,包括等值连接、自然连接、一般连接等,通过SQL Server 查询分析器输入,并显示正确结果。
1.3实验要求(1)简单查询实验在学生-课程库中,用Transaction-SQL语句表示下列操作,并通过查询分析器实现其查询操作:①求数学系学生的学号和姓名;select 学号,姓名from 学生where 所在系='数学系'S7 吴非S8 丁玉S9 赵名②求选修了课程的学生学号;select distinct 学号from 选课S1③求选修了C1课程的学生学号和成绩,并要求对查询结果按成绩的降序排列,如果成绩相同,则按学号的升序排列;select 学号,成绩from 选课where 课程号='C1'order by 成绩desc,学号asc;S2 93S4 89S1 60S3 NULL④求选修了课程C1且成绩在80-90分之间的学生学号和成绩,将成绩乘以系数0.8输出;select 学号,成绩*0.8from 选课where 课程号='C1' and 成绩between 80 and 90;S4 71.2⑤求数学系或计算机系姓张的学生的信息;select *from 学生where 所在系in('数学系','计算机系') and 姓名like '张%';S2 张小红21 男计算机系S4 张三21 男计算机系⑥求缺少了成绩的学生的学号和课程号。
实验三简单查询(2)
SELECTemployeeNo,employeeName,department,orderNo,customerName,orderDate
FROMEmployee a,OrderMaster b,Customer c
WHEREemployeeNo=salerNoANDb.customerNo=c.customerNoANDyear(birthday)=1973
convert(char(10),orderDate,120)orderDate,quantity,金额=quantity*price
FROMEmployee a,Product b,OrctName='52倍速光驱'ANDb.ProductNo=c.ProductNoANDc.orderNo=d.orderNoAND
SQL语句:
SELECTemployeeNo,employeeName,address,orderNo,customerNo,orderDate
FROMEmployee a,OrderMaster b
WHEREaddressLIKE'%上海%'ANDa.employeeNo=b.salerNO
ORDERBYcustomerNo
查询结果:
2.查找订购了“32M DRAM”的商品的客户编号、客户名称、订单编号、订货数量和订货金额,并按客户编号排序输出。
SQL语句:
SELECTa.customerNo,customerName,b.orderNo,quantity,定货金额=price*quantity
FROMCustomer a,OrderDetail b,OrderMaster c,Product d
SQL语句:
实验三简单查询
简单查询(1)实验报告3. 查询全体职工的姓名、年龄、所属部门,并且用汉语显示表头信息。
SQL语句:SELECT employeeNo 姓名,year(getdate())-year(birthday)年龄,department 所属部门FROM Employee查询结果:4.查询1973年出生且为职工的员工信息。
SQL语句:SELECT*FROM EmployeeWHERE year(birthday)=1973 AND headShip='职员'查询结果:7.查询薪水在3000 ~ 4000的职工姓名和薪水。
SQL语句:SELECT employeeName,salaryFROM EmployeeWHERE salary>=3000 AND salary<=4000查询结果:8.查询薪水不在3000 ~ 4000的职工姓名和薪水。
SQL语句:10.查询姓张且全名为三个汉字的职工姓名。
SQL语句:SELECT employeeNameFROM EmployeeWHERE employeeName LIKE'张__'查询结果:11.查询既不在业务科也不在财务科的职工姓名、性别和所在部门。
SQL语句:SELECT employeeName,sex,departmentFROM EmployeeWHERE department NOT IN('业务科','财务科')查询结果:14.查询职工工资最高的前8个职工编号、职工姓名和工资。
SQL语句:SELECT top 8 employeeNo,employeeName,salaryFROM EmployeeORDER BY salary DESC查询结果:15.查询职工工资按高低排序的前10%的职工编号、职工姓名和工资。
实验三SQL(二)SQL语言进行简单查询实验报告范文
实验三SQL(二)SQL语言进行简单查询实验报告范文实验目的:1.掌握SQL查询语句的一般格式2.掌握简单数据查询操作。
3.熟练掌握各种查询条件的表示。
4.掌握排序和分组操作在SQL语句中的实现。
5.掌握集函数的使用。
实验内容;1.创建学生表tudent、课程表coure和选课表SC,并输入数据(注意数据的完整性。
);(可以使用实验一中已经建立的表和数据)2.对各表中的数据进行不同条件的查询;1)查询全体学生的学号和姓名2)3)4)5)6)7)8)9)查询全体学生的详细记录查询所有选修过课程的学生学号查询考试有不及格的学生学号查询不是信息系(IS)、计算机系(CS)的学生性别、年龄、系别查询选修了4号课的学生学号和成绩,结果按成绩降序排列查询每个课程号和相应的选课人数查询计算机系(CS)的学生姓名、年龄、系别查询年龄18-20岁的学生学号、姓名、系别、年龄;10)查询姓刘的学生情况11)查询既选修1号课程,又选修2号课程的学生学号12)查询学生的姓名和出生年份(今年2003年)13)查询没有成绩的学生学号和课程号14)查询总成绩大于200分的学生学号15)查询每门课程不及格学生人数16)查询不及格课程超过3门的学生学号17)查询年龄在10到19岁之间的学生信息18)查询全体学生情况,按所在系升序排列,同一个系的学生按年龄降序排列19)查询选了1号课程的学生平均成绩20)查询选了3号课程的学生的最高分21)查询每个同学的总成绩实验步骤与过程:1.创建学生表tudent、课程表coure和选课表SC,使用实验一中已经建立的表和数据。
2.并输入数据,设置主键。
3.建立索引及三表之间关系。
4.按照SQL语句格式及题目要求输入语句进行以下查询:1、查询全体学生的学号和姓名;2、查询全体学生的详细记录;3、查询所有选修过课程的学生学号;4、查询考试有不及格的学生学号;5、查询不是信息系(IS)、计算机系(CS)的学生性别、年龄、系别;6、查询选修了4号课的学生学号和成绩,结果按成绩降序排列;7、查询每个课程号和相应的选课人数;8、查询计算机系(CS)的学生姓名、年龄、系别;9、查询年龄18-20岁的学生学号、姓名、系别、年龄;10、查询姓刘的学生情况;11、查询既选修1号课程,又选修2号课程的学生学号;12、查询学生的姓名和出生年份(今年2003年);13、查询没有成绩的学生学号和课程号;14、查询总成绩大于200分的学生学号;15、查询每门课程不及格学生人数;16、查询不及格课程超过3门的学生学号;17、查询年龄在10到19岁之间的学生信息;18、查询全体学生情况,按所在系升序排列,同一个系的学生按年龄降序排列;19、查询选了1号课程的学生平均成绩;20、查询选了3号课程的学生的最高分;21、查询每个同学的总成绩实验结果:利用实验一中所建立的表设置主键,建立索引及三表之间关系。
sql的简单查询 -回复
sql的简单查询-回复SQL的简单查询指的是在关系型数据库中使用结构化查询语言(SQL)进行简单的数据查询操作。
SQL是一种针对关系型数据库管理系统的编程语言,用于创建、操作和查询数据库中的数据。
首先,我们需要了解一些基本的SQL查询语句。
最常用的SQL查询语句是SELECT语句,它用于从数据库中检索数据。
下面是一个简单的SELECT 语句的示例:SELECT * FROM 表名;在这个语句中,我们使用了通配符“*”来表示选择所有的列。
FROM子句用于指定要查询的数据表。
例如,如果我们想查询一个名为“customers”的数据表中的所有数据,可以将上述语句修改为:SELECT * FROM customers;这将返回数据表“customers”中的所有行和列。
接下来,我们可以使用WHERE子句来进一步筛选查询结果。
WHERE子句可以根据指定的条件来过滤数据。
例如,我们可以使用以下语句查询名为“customers”的数据表中满足特定条件的数据:SELECT * FROM customers WHERE age > 30;这将返回所有年龄大于30岁的顾客的数据。
除了基本的SELECT语句外,SQL还提供了其他一些强大的查询功能。
比如,我们可以使用ORDER BY子句按照指定列的升序或降序排序查询结果。
以下是一个示例:SELECT * FROM customers ORDER BY last_name ASC;这将按照顾客的姓氏(last_name)按字母顺序升序排序查询结果。
另外,我们还可以使用LIMIT子句来限制查询结果的行数。
例如,以下语句将返回名为“customers”的数据表中前10行的数据:SELECT * FROM customers LIMIT 10;这对于查询结果较大的数据表来说非常有用,可以加快查询的速度并减少网络传输的数据量。
此外,SQL还支持使用聚合函数对查询结果进行统计。
实验三数据库SQL基本表查询
实验三数据库SQL基本表查询数据库原理及应用实验报告实验三SQL 基本表查询实验报告实验类型__综合设计__实验室_软件实验室一__SQL基本表查询1.实验项目的目的和任务:熟练掌握查询语句的一般格式,熟练掌握连接、嵌套和集合查询的使用。
2.程序代码(部分)select * from student where s# in( select s# from sc where c#!='c2') //查询没有选修了2号课程的学生名单select s#,avg(grade) from sc group by s#;//查询每个学生的平均成绩select c#,avg(grade) from sc group by c#;//查询每门课的平均成绩select * from student where s# in(select s# from sc where c#='c2') //嵌套查询select sname from student wherenot exists(select * from c wherenot exists(select * from sc where s#=student.s# and c#=c.c#))// 查询选修了全部课程的学生姓名3运行结果如图所示4实验总结通过具体的上机实践操作,掌握了SQL基本表查询。
(1)确定集合(利用“IN”操作可以查询属性值属于指定集合的元组。
利用“NOT IN”可以查询指定集合外的元组。
(2)GROUP BY 子句可以将查询结果按属性列或属性列组合在行的方向上进行分组,每组在属性列或属性列组合上具有相同的值。
(3)在where子句中包含一个形如select-from-where的查询块,此查询块称为子查询或嵌套查询,包含子查询的语句称为父查询或外部查询。
嵌套查询可以将一系列简单查询构成复杂查询,增强查询能力。
实验3 SQL Server数据库的简单查询
实验3 数据的简单查询实验目的:1. 掌握SELECT 语句的基本语法2. 掌握子查询及order by 子句用法3. 掌握SELECT 语句的统计函数的作用和使用方法实验内容:1.针对pupil表查询所有学生的基本信息,并按出生日期升序排列select*from pupil order by birthday asc。
2.针对pupil表查询女同学的信息和女同学的人数select count(sno)from pupil where ssex=’女’。
3.在pupil表中查询所有男同学的年龄。
4.在pupil表中,(1) 查询‘刘’姓学生的信息;(2) 查询polity为’团员’或’党员’的学生信息like’刘%’。
5.在sc表中,(1) 查询各门课程的选课人数; (2) 查询缺少成绩的学生的学号及课程号select sno ,cno from sc where grade is null 。
6.查询与‘刘成’同一个系的学生情况。
7.查询选修了课程名为‘MIS’的学生的学号和姓名8.查询pubs数据库的Publishers表中居住在Boson或不住在Paris的出版商信息。
9.查询pubs数据库的salers表中saleID为s01,s05,s07的销售人员的信息。
10.查询pubs数据库的authors表中作者居住的城市和州。
11.在Northwind数据库的Products表中查询出价格在5-10元之间的产品信息。
12.在Northwind数据库的orders表中的数据,先按CustomerID的升序排列,当CustomerID相同时再按照SaleID的降序排列。
13.在Northwind数据库的Products表中,查询价格最高的6种商品。
实验三SQL的数据查询
实验三、SQL的数据查询1、实验目的熟悉SQL语句的数据查询语言,能够SQL语句对数据库进行单表查询、连接查询、嵌套查询、集合查询和统计查询。
2、实验内容实验内容主要是对数据库进行查询操作,包括如下四类查询方式:(1)单表查询●查询的目标表达式为所有列、指定的列或指定的列的运算三种不同.●使用DISTINCT保留字消除重复行。
●对查询结果排序和分组。
●集合分组使用集函数进行各项统计.(2)连接查询●笛卡儿连接和等值连接。
●自连接.●外连接●复合条件连接。
●多表连接。
(3)嵌套查询●通过实验验证对子查询的两个限制条件.●体会相关子查询和不相关子查询的不同.●考察四类谓词的用法,包括:第一类,IN、NOT IN;第二类,带有比较运算符的子查询;第三类,SOME、ANY或ALL谓词的子查询,查询最大值和最小值;第四类,带有EXISTS谓词的子查询,实现“所有”等情况(如王宏的“所有”课程,“所有”女生选修的课程)(4)集合运算●使用保留字UNION进行集合或运算。
●采用逻辑运算符AND或OR来实现集合交和减运算.3、实验步骤以University_Mis数据库为例,该数据库中有四张如实验一,其中Score是每门课的考试成绩,Scredit是学生所有考试合格课程所获得的积分总数,Ccredit每门课程的学分数。
在数据库中,存在这样的联系:学生可以选择课程,一个课程对应一个教师.在表Reports 中保存学生的选课记录和考试成绩.请先输入如下元组,再对数据库进行有关的查询操作:图1.1、Students表图1.2、Teachers表图1。
3、Courses表图1.4、Reports表(1)查询性别为“男"的所有学生的名称并按学号升序排列。
SELECT wjy_SnameFROM Wangjy_StudentsWHERE wjy_Ssex='男’ORDER BY wjy_Sno(2)查询学生的选课成绩合格的课程成绩,并把成绩换算为积分。
SQL Server实验三 标准SQL的简单查询和分组统计查询
SQL Server实验三标准SQL的简单查询和分组统计查询
前提:图书管理系统数据库中已有下列三张基本表及有关记录
1)readers(读者信息表)
2)books(图书信息表)
3)borrowinf(借阅信息表)
操作1、标准SQL的简单查询
1)查询读者表的所有信息。
2)查阅编号为”2002060328”的读者的借阅信息。
3)查询图书表中“青山”出版的图书书名和作者。
4)查询书名中包含“程序设计”的图书信息。
5)查询图书表中“青山”出版的图书信息,结果按图书单价升序排列。
6)查询定价最高的前3个图书的书号、书名。
7)查询借阅了“C语言程序设计”的读者的编号和姓名。
(参考书本P23例2.15)
操作2、标准SQL的分组统计查询
1、查询图书馆的藏书量。
2、查询图书馆的图书总价值。
3、查询各出版社的馆藏图书数量。
distinct
4、查询2004-1-1和2004-12-31之间各读者的借阅数量
5、查询2004-1-1和2004-12-31之间作者为“梁晓峰”的图书的借阅情况
6、使用统计函数计算图书信息表中的最高价、最低价和平均价。
SQL数据库实验三_简单查询(2)解答
实验三简单查询(2)解答实验结果1、查询住址在上海的员工所做的订单,结果输出员工编号、姓名、住址、订单编号、客户编号和订单日期,并按客户编号排序输出。
SQL语句:SELECT employeeNo,employeeName,address,orderNo,customerNo,orderDateFROM Employee,OrderMasterWHERE employeeNo= salerNo AND address like'%上海%'ORDER BY customerNo查询结果:2、查找订购了“32M DRAM”的商品的客户编号、客户名称、订单编号、订货数量和订货金额,并按客户编号排序输出。
SQL语句:SELECT a.customerNo,customerName,b.orderNo,quantity, price*quantity total FROM Customer a,OrderMaster b, OrderDetail c, Product dWHERE a.customerNo=b.customerNo AND b.orderNo=c.orderNo ANDc.productNo=d.productNo AND productName='32M DRAM'ORDER BY a.customerNo查询结果:3、查找与“张小娟”在同一个部门工作的员工姓名、所属部门、性别和出生日期。
SQL语句:SELECT b.employeeName,b.department,CASE b.sexWHEN'M'THEN'男'WHEN'F'THEN'女'ELSE'不详'END sex,CONVERT(CHAR(10),b.birthday,120) birthdayFROM Employee a,Employee bWHERE a.department=b.department AND a.employeeName='张小娟'查询结果:4、查询1973年出生的员工所订购产品的订单,输出结果为员工编号、姓名、所属部门、订单编号、客户名称、订单日期,按员工编号排序编号。
SQL数据库 综合实训3 参考解答
实训名称:查询语句及应用一、实训目的通过完成以下实践与操作,牢固掌握SQL Server 中SELECT语句及相关子句的运用;二、实训环境PC机+Windows XP操作系统+SQL Server 2000;三、实训内容与要求现有一数据库GradeManager(成绩管理),包括四个表:学生表(Student)、课程表(Course)、班级表(Class)以及成绩表(Grade)。
四个表的结构如下:各表中的数据如下:利用如上的成绩管理数据库与表、数据,实现以下的查询。
1.找出所有被学生选修了的课程号;use GradeManagerselect distinct Cno from Gradego2.找出01311班女学生的个人信息;use GradeManagerselect * from Student where (Ssex='女' and Clno='01311') go3.找出01311班、01312班的学生姓名、性别;use GradeManagerselect * from Student where (Clno='01311' or Clno='01312') go4.找出所有姓李的学生的个人信息;use GradeManagerselect * from Student where Sname like '李%'go5.找出学生李勇所在班级的学生人数;use GradeManagerselect Clno from Student where Sname='李勇'go查出李通所在班级是'00311',再用如下语句查询:use GradeManagerselect Clno,count(*) as '班级人数' from Student where Clno='00311' group by Clnogo或者合并一下,用如下语句(查询结果是一样的):use GradeManagerselect Clno,count(*) as '班级人数' from Student where Clno=(select Clno from Student where Sname='李勇') group by Clnogo6.找出课程名为操作系统的平均成绩、最高分、最低分;--查平均分use GradeManagerselect Cno,avg(Gmark) as '最高分' from Grade where Cno=(select Cno from Course where Cname='操作系统') group by Cnogo--查最高分use GradeManagerselect Cno,max(Gmark) as '最高分' from Grade where Cno=(select Cno from Course where Cname='操作系统') group by Cnogo--查最低分use GradeManagerselect Cno,min(Gmark) as '最高分' from Grade where Cno=(select Cno from Course where Cname='操作系统') group by Cnogo7.找出选修了课程的学生人数;use GradeManagerselect Sno,count(*) as '选修的课程数量' from Grade group by Snogo8.找出选修了课程操作系统的学生人数;use GradeManagerselect Cno,count(*) as '选修人数' from Grade where Cno=(select Cno from Course where Cname='操作系统') group by Cnogo9.找出2000级计算机软件班的成绩为空的学生姓名。
数据库实验3-SQL语言之数据查询(简单查询)
实验三SQL数据查询(简单查询)姓名:学号:专业:网络工程班级:20网络工程同组人:无实验日期:【实验目的与要求】1、熟练掌握SELECT 语句的基本语法格式;2、熟练掌握使用SQL语句进行单表查询,掌握GROUP BY子句、HA VING 子句和集函数;3、熟练掌握使用SQL标准语句和T-SQL扩展语句进行连接查询。
【实验内容】3.0. 实验准备与说明本实验将用到实验二中数据库SalesDB和相应的表及数据,若该数据库及表尚未创建,或数据尚未录入,则请先完成之。
请根据前面实验创建的表结构和数据,完成如下查询。
本实验及后面实验中所用测试数据库中表的字段及含义如下表:表-1 测试数据库表的字段及含义3.1.简单查询(1).查询各种产品的产品编号、产品名称和价格。
请给出相应语句:USE SalesDB;SELECT Pno,Pname,Price FROM Product;请给出运行结果:(2).查询所在城市为“厦门”的客户编号和客户名称,结果中各列的标题分别指定为:“客户编号”和“客户名称”显示。
请给出相应语句:SELECT Cno as客户编号,Cname as客户名称FROM Customer WHERE City='厦门';请给出运行结果:(3).查询各产品编号、名称、库存量和产品总值。
(总值:价格与库存数量的积)请给出相应语句:SELECT Pno,Pname,Price ,Stocks FROM Product;SELECT SUM(Price*Stocks)as产品总值FROM Product;请给出运行结果:(4).查询曾购买过产品的客户编号(不重复)。
请给出相应语句:SELECT Cno FROM Customer;请给出运行结果:(5).查询价格在1000-2000的产品信息,并依价格由低到高的顺序排序。
(请使用Between…and和算术比较运算符分别实现)a.使用Between…and比较实现:请给出相应语句:use SalesDB;select*from Productwhere Price between 1000 and 2000order by Price;请给出运行结果:b.使用算术比较实现:请给出相应语句:use SalesDB;select*from Productwhere Price >= 1000 and Price<=2000order by Price;请给出运行结果:(6).查询产品名称含有“热水器”的产品信息。
实验3 SQL的简单查询功能
实验3 SQL的简单查询功能实验目的学会使用MS SQL SERVER 2000的查询分析器完成SQL的简单查询功能,主要包括单表查询的选择、投影、排序、聚集函数、分组等。
知识点拨:1.查询语句基本格式:2.单表查询;3.选择4.投影5.排序6.聚集函数7.分组查询1.分组查询与选择的比较:实验内容1.掌握SQL查询语句的一般格式;2.学会包括选择、投影、排序、聚集函数、分组等的单表查询;实验步骤1.选择数据库JX;2.以下查询操作使用查询分析器完成:(1)查询所有教师的教工号、姓名和电话号码信息,查询结果列项是中文名;MODIFY PROJECT f:\shuju库原理\项目1.pjxset default to F:\shuju库原理select tno 教师编号,tname 教师姓名 ,photo 教师电话号码;from teacher(2)查询‘计算机’系的所有副教授的基本信息;from teacherlistselect *;from teacher;where porf='副教授'(3)查询所有女同学的姓名及所在的系,显示结果不允许重复出现;select distinct sname,sdept;from Student;where sex='女 '(4)查询各教师的姓名、教工号及工资按95%发放的信息,并将按95%发放的工资列改名为‘预发95%工资’;alter table teacher;add 工资按95发放 char(20)列名更改以后:代码:alter table teacher rename 工资按95发放 to 预发百分之95工资listselect * from teacher(5)检索计算机系总学分在50~100的学生信息,并按学号降序排列;select * from student,score;where student.sno=score.sno and sdept='计算机'and degree成绩>=50 and degree成绩<= 100;order by student.sno desc(6)查询修正后的学分(原学分-1)仍然大于3的课程的代号、名称、原先的学分、修正后的学分;select cno,cname,ccredit学分 from course;where ccredit学分 in (select ccredit学分 from course; where ccredit学分-1>=3)修正后的学分:update course set ccredit学分=ccredit学分-1select cno,cname,ccredit学分 from course(7)查询课程号不为‘1’、‘4’、或‘7’的课程的信息;select * from course;where cno not in('1','4','7')(8)查询所有姓‘张’、或‘刘’或‘高’的学生信息;select * from student;where sname like '张%' or sname like'刘%' or sname like'林%'(9)查询每个系有多少个同学;select sdept,count(sno);from student;group by sdept(10)查询各课程的平均成绩并按成绩降序排列;select cno,avg(degree成绩);from score;group by cno(11)查询有两门课在90分以上的学生学号及90分以上课程数;select sno,count(cno);from score group by sno;having count(*)>=2 and degree成绩>=90(12)统计每门课程的选课人数、平均成绩、最高成绩、最低成绩;select cno,count(sno),avg(degree成绩),max(degree成绩),min(degree成绩);from score group by cno(13)列出课程表中有先行课的课程名。
数据库实验三_查询
南昌大学实验报告---实验三查询学生姓名:丁金芝学号:6100511080 专业班级:管理科学与工程类112班实验类型:■验证□综合□设计□创新实验日期:实验成绩:一、实验目的1.掌握select语句的基本语法2.了解select语句中各子句的作用和特点3.掌握select语句的统计函数的作用和用法4.掌握子查询的用法5.掌握连接查询的用法二、实验内容与结果(一).简单查询1.select 选择列--1、选择所有列(*),查询学生表中的所有纪录。
--2、选择特定列,查询学生表中全体学生的学号,姓名,性别。
--3、计算列,查询选课表中给每个学生加了20分后的所有课号和成绩末分数显示出来。
重复。
--6、限制返回行数--top n 关键字;只显示表中前面n条记录。
--top n percent 关键字;只显示前n%条记录。
--显示学生表中的前3条记录。
--显示学生表中的前3%条记录2 .where 子句--1、比较运算符:(1)查询分数<80分学生的学号、成绩、课号。
(2)查询学号001学生的情况。
--2、范围运算符:查询学生分数在70-80之间的学生的学号、课号。
(包括70分、80分)--3、列表运算符: (1)查询学号为'001' 、'005'、'007' 、'008'的学生学号。
(2)查询学生成绩不在60-70之间的学生的学号、课号、成绩。
--4、匹配运算符: (1)查询姓刘学生的信息。
(2)查询姓刘单名的学生信息。
(3)查询01-03年级学生的信息。
--5、空值运算符,查询变动情况为空的学生--查询学生课程编号为'05'的课程的成绩,并按成绩的降序进行排列。
4.使用函数:--1、计算学号为001的学生总分数、平均分。
--2、集合函数 avg()、count()、count(*)、max()、min()、sum()(1)查询学期成绩表中的平均分,最大分数,最小分数,总和(前面四项为查询出的相应字段)(2)统计课程表中所有记录数和各个列中值的个数,要求不能重复。
SQL数据库原理实验指导书及答案
SQL数据库原理实验指导书及答案数据库原理SQLServer实验指导书1数据库系统原理实验一、基本操作实验实验1:数据库的定义实验本实验的实验目的是要求学生熟练掌握和使用SQL、T-SQL、SQL Server Enterpriser Manager Server 创建数据库、表、索引和修改表结构,并学会使用SQL Server Query Analyzer,接收T-SQL语句和进行结果分析。
本实验的内容包括:l)创建数据库和查看数据库属性。
2)创建表、确定表的主码和约束条件,为主码建索引。
3)查看和修改表结构。
4)熟悉SQL Server Enterpriser Manager和 Query Analyzer工具的使用方法具体实验任务如下。
1.基本提作实验1)使用Enterpriser Manager建立图书读者数据库2)在Enterpriser Manager中查看图书读者数据库的属性,并进行修改,使之符合要求。
3)通过Enterpriser Manager,在建好了图书借阅数据库中建立图书、读者和借阅3个表,其结构为:图书(书号,类别,出版社,作者,书名,定价,版次);读者(编号,姓名,单位,性别,电话):借阅(书号,读者编号,借阅日期人)要求为属性选择合适的数据类型,定义每个表的主键,Allow Null(是否允许空值)和 Default Value(缺省值)等列级数据约柬。
4)在Enterpriser Manager建立图书、读者和借阅3个表的表级约束:每个表的PrimaryKey2(主键)约束;借阅表与图书表间、借阅表与读者表之间的FOREIGNKEY(外码)约柬,要求按语义先确定外码约束表达式,再通过操作予以实现;实现借阅表的书号和读者编号的UNIQUE(惟一性)约束;实现读者性别只能是“男”或“女”的check (检查)约束。
2.提高操作实验建立学生_课程库操作,在查询分析器中用SQL命令实现。
SQL实验三简单查询实验报告
实验报告课程名称数据库原理与应用实验三简单查询实验名称专业年级学号姓名指导教师实验日期表1-4 订单信息(OrderInfo)OrderId UserId CommodityId Amount PayMoney PayWay OrderTime ConfirmSendGoods1yoyo128598邮局汇款2014-03-26012feiyang210500邮局汇款2014-02-06113daxia332397银行转帐2014-01-0811(3)设计数据关系图如下:(4)导入数据--导入数据注意事项,--与插入数据的顺序相同,有主外键关系的,先导主表中的数据,再导子表中的数据--1先导UserInfo或CommoditySort--2再导CommodityInfo 最后导OrderInfo(回答为什么)(5)用SQL语言查询,并对查询结果截图。
--[1]查询UserInfo中全部的行和列。
--[2]查询付款方式为“网上银行”的UserId,PayWay,PayMoney信息。
--查询一下付款的方式不是“网上银行”的订单信息--[3]使用AS关键字来改变结果集中的别名--[4]查询Email为NULL值,UserInfo中的所有信息。
--[5]查询返回限制的行数,使用TOP关键字。
返回性别为1的,前5个用户名及地址。
--[6]在查询的结果中排序,关键字是ORDER BY 升序为ASC,降序为DESC--按购买数量降序,按付款金额升序,(共21条记录)--[7]使用LIKE进行模糊查询--查询用户表中所有用户地址中为四川的用户信息--查询用户表中姓李的用户姓名,地址,电话--[8]BETWEEN ..AND 查询在两个已知值的之间的未知的值--查询订单表中购买数量为2到10之间的数据--查询下单日期不在‘2012-1-1’到‘2013-1-1’之间的订单信息--[9]使用IN在列举值范围内进行查询--查询使用‘网上银行’‘邮局汇款’方式下单的信息--【10】SUM用于对表达式中的列进行求和(只能用于数值型,空值将忽略)--查询商品编号为6的销售总量--按付款方式分别查询商品编号为6的销售总量--【11】AVG求平均值,(只能与数值型一起使用,空值将忽略)(2)use E_marketSelect userid,payway,paymoney From orderinfoWhere payway=‘网上银行’User E_marketSelect *From orderinfoWhere payway!=’网上银行’(3)user E_marketSelect userid as 用户名,paymoney as 付款方式,payway as 付款金额From orderinfo(4)user E_market Select *From userinfo Where email is null(5)use E_marketSelect top 5 userid as 用户名,useraddress as 地址From userinfoWhere gender=1(6)use E_marketSelect userid,payway,amount,paymoney From orderinfoOrder dy amount desc,paymoney asc(7)use E_marketSelect *From userinfoWhere useraddress like ‘四川%’Use E_marketSelect username,useraddress,phone From userinfoWhere username like ‘李%’(8)use E_marketSelect *From orderinfoWhere amount between ‘2’ and ‘10’Use E_marketSelect *From orderinfoWhere ordetime between ‘2012-1-1’ and ‘2013-1-1’(9)use E_marketSelect *From orderinfoWhere payway in (’网上银行’,‘邮局汇款’)(10)use E_marketSelect sum(amount) as 总数,payway From orderinfoWhere commodityid=’6’ group by payway(11)use E_marketSelect avg(sortid)as 类型编号From commoditysortWhere sortname=’图书音像’Use E_marketSelect avg(inprice)as 平均进货价,sortid From commodityinfoWhere sortid=’2’ group by sortid(12) use E_marketSelect max(inprice)as 最高进货价,min(inprice)as 最低进货价From commodityinfoWhere sortid=’1’(13)Use E_market Select count(userid) 人数From userinfo实验总结(包括过程总结、心得体会及实验改进意见等):在查询过程中,稍有不慎就会造成语法错误,需要多熟悉SQL数据库的查询语言,还有注意中文标点的输入也会造成查询的失败,还有空语句的查询也有一些不同之处需要注意,在备份数据库的同时记得要删除原始保存地址,不然会造成数据库二次打开失败和数据迁移不完善的后果。
实验三 SQL语言——数据查询操作
实验三SQL语言——数据查询操作一、实验时间:二、实验地点:三、实验条件与环境1.通用PC机2.PC机必须安装Windows 2000系列、Windows XP系列或Windows NT操作系统平台3.PC机还须安装Microsoft SQL Server 2000 任意一版本(个人版、标准版、企业版)4.最好有一台公用的SQL Server 2000 服务器四、实验目的1.通过上机实验进一步加深对SQL查询语句的基本语法格式的掌握2.通过上机实验掌握单表查询的实现过程3.通过上机实验掌握多表关联查询的实现过程4.通过上机实验掌握嵌套查询的实现过程5.通过上机实验掌握集函数与谓词在Select语句中的使用6.通过上机实验加深了解Select语句与关系代数运算(如选择、投影、连接、除法等)两者之间的联系与区别五、实验要求:1.本实验所有实验内容要求在规定时间(2课时)内完成2.实验内容中涉及到的各查询操作均通过SQL语言来实现3.实验完成后需要书写实验报告,本次实验报告需在下次实验课堂上上交六、实验内容:1.查询为工程J1供应零件的供应商号码SNO2.查询为工程J1供应零件P1的供应商号码SNO3.查询为工程J1供应红色零件的供应商号码SNO4.查询没有使用天津供应商生产的零件并且当前工程所使用零件的颜色全部为红色的工程号JNO5.查询至少选用了供应商S1所供应的全部零件的工程号JNO6.找出所有供应商的名称和所在城市7.找出所有零件的名称、颜色和重量8.找出使用供应商S1所供应零件的工程号码9.找出工程项目J2使用的各种零件的名称及其重量10.找出上海厂商供应的所有零件号码11.找出使用上海产的零件的工程名称12.找出没有使用天津产的零件的工程号码13.找出重量最轻的红色零件的零件编号PNO14.找出供应商与工程所在城市相同的供应商提供的零件号码15.找出所有这样的一些<CITY,CITY,PNAME>三元组,使得第一个城市的供应商为第二个城市的工程供应零件的名称为PNAME16.重复第15题,但不检索两个CITY值相同的三元组17.找出供应商S1为工程名中含有“厂”字的工程供应的零件数量总和18.找出为工程供应零件的总数量不低于500的供应商号码及供应总数量,结果按供应商号码分类并且按供应总数量降序排列七、实验总结:数据查询是一种极为重要的面向数据库的数据操纵方式。
sqlsever实训三简单查询
sqlsever实训三简单查询⽬录数据结构说明第⼀关简单查询1相关知识使⽤SQL语句中的 Select 语句。
SQL语句中关键词⼤⼩写不区分。
考虑到本系统的测评规则,在题⽬中要求对列名⼩写的,请务必按要求书写,否则会评判为错误!性别⽤’m’表⽰男,’f’表⽰⼥注:请务必将select⼦句中出现的列名⼩写,顺序必须和题⽬要求⼀致查询CS系男同学的学号,姓名,年龄SELECT sno,sname,sageFROM StudentWHERE Sdept='CS'and Ssex='m'输出结果查询不及格的学⽣选课信息,列出学号,课程号,成绩SELECT sno,cno,gradeFROM SCWHERE grade<60输出结果查询先⾏课程不为空的课程(使⽤*表⽰查询结果)SELECT cno,cname,cpno,ccreditFROM CourseWHERE cpno IS NOT NULL输出结果查询姓名中带有’n’字母的学⽣的学号,姓名(使⽤like语句)SELECT sno,snameFROM StudentWHERE sname like'%n%'输出结果使⽤distinct关键字查询学⽣表中不同的系,列出系(去除重复元祖)SELECT DISTINCT sdept FROM student输出结果第⼆关简单查询2查询90分以上学⽣的选课信息,列出学号,姓名,课程号,成绩SELECT A.sno,A.sname,o,C.gradeFROM Student A,SC CWHERE grade>90and A.Sno=C.Sno输出结果查询‘DB’课程的选课情况,列出学号,成绩SELECT A.sno,C.gradeFROM Student A,Course B,SC CWHERE ame='DB'and o=o and A.sno=C.sno输出结果第三关简单查询3查询CS系的学⽣选择‘DB’课程的情况,列出学号,成绩SELECT A.sno,C.gradeFROM Student A,Course B,SC CWHERE cname='DB'and A.sno=C.sno and o=o and sdept='CS'输出结果查询⼥同学的选课情况,列出学号,课程号,课程名,成绩SELECT A.sno,o,ame,C.gradeFROM Student A,Course B,SC CWHERE A.ssex='f'and A.sno=C.sno and o=o输出结果。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验三简单查询(2)解答
实验结果
1、查询住址在上海的员工所做的订单,结果输出员工编号、姓名、住址、订单编号、客户编号和订单日期,并按客户编号排序输出。
SQL语句:
SELECT employeeNo,employeeName,address,orderNo,customerNo,orderDate
FROM Employee,OrderMaster
WHERE employeeNo= salerNo AND address like'%上海%'
ORDER BY customerNo
查询结果:
2、查找订购了“32M DRAM”的商品的客户编号、客户名称、订单编号、订货数量和订货金额,并按客户编号排序输出。
SQL语句:
SELECT a.customerNo,customerName,b.orderNo,quantity, price*quantity total FROM Customer a,OrderMaster b, OrderDetail c, Product d
WHERE a.customerNo=b.customerNo AND b.orderNo=c.orderNo AND
c.productNo=
d.productNo AND productName='32M DRAM'
ORDER BY a.customerNo
查询结果:
3、查找与“张小娟”在同一个部门工作的员工姓名、所属部门、性别和出生日期。
SQL语句:
SELECT b.employeeName,b.department,
CASE b.sex
WHEN'M'THEN'男'
WHEN'F'THEN'女'
ELSE'不详'
END sex,
CONVERT(CHAR(10),b.birthday,120) birthday
FROM Employee a,Employee b
WHERE a.department=b.department AND a.employeeName='张小娟'
查询结果:
4、查询1973年出生的员工所订购产品的订单,输出结果为员工编号、姓名、所属部门、订单编号、客户名称、订单日期,按员工编号排序编号。
SQL语句:
SELECT employeeNo,employeeName,department,orderNo,customerName,
CONVERT(CHAR(10),orderDate,120) orderDate
FROM Employee a,OrderMaster b,Customer c
WHERE employeeNo=salerNo AND b.customerNo=c.customerNo AND year(birthday)=1973 ORDER BY employeeNo
查询结果:
5、查询销售数量大于4的商品编号、商品名称、数量和单价,按产品号排序。
(分别显示普通连接、左外连接、右外连接和全外连接的结果)
SQL语句:
普通连接:
SELECT a.productNo,productName,quantity,price
FROM OrderDetail a,Product b
WHERE a.productNo=b.productNo AND quantity>4
ORDER BY a.productNo
查询结果:
左外连接:
SELECT a.productNo,productName,quantity,price
FROM OrderDetail a LEFT OUTER JOIN Product b ON a.productNo=b.productNo AND quantity>4
ORDER BY a.productNo
查询结果:
右外连接:
SELECT a.productNo,productName,quantity,price
FROM OrderDetail a RIGHT OUTER JOIN Product b ON a.productNo=b.productNo AND quantity>4
ORDER BY a.productNo
查询结果:
全外连接:
SELECT a.productNo,productName,quantity,price
FROM OrderDetail a FULL OUTER JOIN Product b ON a.productNo=b.productNo AND quantity>4
ORDER BY a.productNo
查询结果:
6、查询每个客户订购商品的订单信息,输出结果为客户编号、客户名称、商品编号、商品名称、数量、单价和金额。
SQL语句:
SELECT a.customerNo,customerName,d.productNo,productName,quantity,price, quantity*price 金额
FROM Customer a,OrderMaster b, OrderDetail c,Product d
WHERE a.customerNo=b.customerNo AND b.orderNo=c.orderNo AND
c.productNo=
d.productNo
查询结果:
7、查询在同一部门工作的员工的姓名和所属部门。
SQL语句:
SELECT a.employeeName,a.department,b.employeeName,b.department FROM employee b,employee a
WHERE a.employeeNo!=b.employeeNo AND a.department=b.department
ORDER BY a.department
查询结果:
8、查找“52倍速光驱”的销售情况,要求显示相应的销售员的姓名、性别、销售日期、销售数量和金额,其中性别用男、女显示,销售日期以yyyy-mm-dd格式显示。
SQL语句:
SELECT employeeName 姓名,性别=
CASE sex
WHEN'M'THEN'男'
WHEN'F'THEN'女'
ELSE'不详'
END,销售日期=CONVERT(CHAR(10),orderDate,120),quantity 数量, quantity*price 金额FROM Employee a,OrderMaster b,OrderDetail c,Product d
WHERE employeeNo= salerNo AND b.orderNo=c.orderNo AND c.productNo=d.productNo AND productName='52倍速光驱'
查询结果:。