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种商品。
- 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倍速光驱'
查询结果:。