实验3 SQL的简单查询功能

合集下载

SQL数据库实验三_简单查询(2)解答

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:数据查询

实验三  交互式SQL:数据查询

实验三交互式SQL(二):数据查询【实验目的】1.掌握SELECT语句的基本语法。

2.掌握集合函数的作用及使用方法。

3.熟悉普通连接、外连接和自身连接的概念。

4.能够熟练使用连接查询从多个表中查询数据。

5.能够熟练地使用子查询查询数据。

【实验学时】2学时【实验内容】以下题目均在STUxxxx(学生管理)数据库中完成。

一、简单查询1.查询年龄最小的前3个同学的姓名、专业和年龄2.查询XS表中所有同学的学号、姓名和总学分,结果中各列的标题分别指定为num,name和mark。

3.查询XS表中的学生数据来自哪些专业(使用DISTINCT子句消除结果集中的重复行)。

4.查询XS表中专业为“计算机”的同学的情况。

5.查询XS表中1992年出生的学生姓名和专业情况。

6.查询XS表中姓“张”或“王”或“李”且单名的学生的情况。

7.查询XS表中专业为“计算机”且总学分尚未确定的学生情况。

8.从XS表中查询学生的基本信息,要求按照总学分从高到低排序,学分相同时,按学号由低到高排序。

二、数据汇总1.求选修了“101”课程的学生的平均成绩。

2.求选修了“102”课程的学生的最高分和最低分。

3.求学号为“4102101”学生的总成绩。

4.求专业为“计算机”的学生的总人数。

5.求选修了“101”课程的学生的人数。

6.求选修了任意一门课程的学生的人数。

7.统计各个专业的学生数。

(按专业分组)8.统计各个专业的男女生人数。

格式如下:专业性别人数………………9.查找平均成绩在80分以上的学生的学号和平均成绩。

10.查找选修的课程中超过2门成绩在80分以上的学生的学号和成绩高于80分的门数。

格式如下:学号成绩高于80分的门数…………三、连接查询1.查询每个学生的基本情况及选修的课程情况,格式如下:学号姓名专业课程号成绩…………………………2.查询选修了课程号为101的每个学生的姓名及成绩。

3.查询“计算机”专业且选修了“计算机基础”课程的学生的学号、姓名及成绩。

数据库SQL实验报告__SQL交互式查询(单表查询)

数据库SQL实验报告__SQL交互式查询(单表查询)

实验3 SQL交互式查询(单表查询)实验日期和时间:实验室:班级:学号:姓名:实验环境:1.硬件:计算机2.软件:windows 7 & SQL 2000实验主要任务:在实验1中建立的学生选课数据库中,用SQL语句完成下列查询任务1.在学生表中查询姓名为“张晶晶”学生的记录。

2.查询“会计系”全体女同学的记录,列出学号、姓名、年龄。

3.查询非“金融系”且年龄小于等于20岁的学生记录,列出学号、姓名、系编号。

4.查询所有2009级(学号以2009 开头)的学生的成绩,列出学号、课程号、成绩,查询结果按课程号排序。

5.查询所有低于60 分的学生成绩记录,列出学号、课程号、成绩,结果按课程号、学号排序列表。

6.查询选修了1 号课程并且成绩大于等于90分的学生记录,列出学号、成绩,并按成绩降序排序。

7.查询超过2 学分(大于)的课程记录。

8.查询学生表中所有1993年出生的学生的记录,按出生日期排序。

9.统计全体学生的总人数。

10.统计各系的学生人数,列出所在系、人数。

11.统计各门课的平均分,列出课程号、平均分。

12.查询选修人数不足5 人的课程,列出课程号、人数。

查询1:在学生表中查询姓名为“张晶晶”学生的记录。

代码:select * from 学生 where 姓名='张晶晶'执行结果:说明:查询的姓名有改动查询2:查询“会计系”全体女同学的记录,列出学号、姓名、年龄。

代码:select * from 学生,系where 系名='会计' and 系.系编号=学生.系编号执行结果:说明:查询3:查询非“金融系”且年龄小于等于21岁的学生记录,列出学号、姓名、系编号、系名。

代码:select 学号,姓名,学生.系编号,系名from 学生,系where 系名<>'金融' and 系.系编号=学生.系编号and year(getdate())-year(出生日期)<21执行结果:说明:改成21岁,添加了系名显示查询4:查询所有2009级(学号以2009 开头)的学生的成绩,列出学号、课程号、成绩,查询结果按课程号排序代码:select 学号,课程号,成绩from 选课where 学号like '2009%'order by 课程号执行结果:说明:查询5:查询所有低于80 分的学生成绩记录,列出学号、课程号、成绩,结果按课程号、学号排序列表代码:select 学号,课程号,成绩from 选课where 成绩<80order by 课程号,学号执行结果:说明:低于60分改成了低于80分查询6:查询选修了0001 号课程并且成绩大于等于90分的学生记录,列出学号、成绩、课程号,并按成绩降序排序代码:select 学号,成绩,课程号from 选课where 成绩>90 and 课程号='0001'order by 成绩DESC执行结果:说明:1号课程改成了课程号0001,显示时候加了属性课程号查询7:查询超过4 学分(大于)的课程记录代码:select * from 课程where 学分>4执行结果:说明:超过2学分改成了超过4学分查询8:查询学生表中所有1990年出生的学生的记录,按出生日期排序代码:select * from 学生where year(出生日期)=1990order by 出生日期执行结果:说明:查询1993年出生改成了1990查询9:统计全体学生的总人数代码:select count(学号) as 总人数from 学生执行结果:说明:查询10:统计各系的学生人数,列出所在系、人数代码:select 系名,sum(选课人数) as 人数from 系, 授课,课程where 系.系编号=课程.系编号and 课程.课程号=授课.课程号group by 系名执行结果:说明:查询11:统计各门课的平均分,列出课程号、平均分代码:select 课程号,avg(成绩) as 平均分from 选课group by 课程号执行结果:说明:查询12:查询选修人数不足100人的课程,列出课程号、人数代码:select 课程号,选课人数as 人数from 授课where 选课人数<100执行结果:说明:不足5人改成了不足100人你在完成查询任务1-12的过程中遇到的问题及解决的方法有:实验10:代码:select 系名,sum(选课人数) as 人数from 系, 授课,课程where 系.系编号=课程.系编号and 课程.课程号=授课.课程号group by 系.系编号结果:解决办法:把group by 后面的系.系编号给成系名疑问?为什么货出现这样的结果啊?请老师解答本次实验涉及到的基本原理:(语法)select 对表的查询;表的连接;给数据分组;给数据排序;小结:一个标点符号都会造成错误,需要注意细节1.报告格式和内容要求:a. 内容和格式整齐。

实验3-SQL语言查询操作

实验3-SQL语言查询操作

实验3:SQL语言操作一、实验目的:1.熟悉SQL语言的基本语法和规则2.了解CREATE、DROP语句的使用。

3.掌握INSERT、UPDA TE、DELETE语言的基本语法和规则4.掌握在查询分析器或企业管理器中执行INSERT、UPDATE、DELETE操作的方法5.掌握SQL语言函数、程序控制语句的使用二、基本原理:SQL语言的基本语法规则和相关SQL程序结构控制语法理论。

三、实验仪器设备:1.硬件:PC台/人(内存:256M以上,cpu:P4)2.软件:SQL Server2000四、实验内容:1.用Create创建表名为class和student,2.利用select和Insert语句向表中插入记录3.利用UPDATE语句更新class和student记录4.利用DELETE删除class表中的记录5.利用DROP语句删除表6.依据SQL语法,编写SQL程序执行数据库相关操作。

五、实验步骤:1).在企业管理器中用Create创建数据库或表,名为student和class,并用ALTER修改数据库和表。

建立一个名为test的数据库,可以输入如下的SQL语句:CREATE DATABASE test例如,要创建一个销售数据库,并设定数据文件为d:\销售.LDF,大小为5MB,最大为20MB,每次增长5MB。

事务日志文件为d:\ 销售.LDF,大小为5MB,最大为10MB,每次增长为1MB。

则创建的SQL语句为:CREATE DATABASE【TABLE】销售数据库ON (NAME = 销售数据,FILENAME = 'd:\Program Files\Microsoft SQL Server\MSSQL\data\销售数据.MDF',SIZE = 10MB,MAXSIZE = 50MB,FILEGROWTH = 10MB)LOG ON(NAME = 销售数据日志,FILENAME = 'd:\Program Files\Microsoft SQL Server\MSSQL\data\销售数据日志.LDF',SIZE = 10MB,MAXSIZE = 20MB,FILEGROWTH = 5MB)2)例如,为销售数据库新增一个逻辑名为“销售数据2”的数据文件,其大小及其最大值分别为10MB和50MB。

实验三数据库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  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语言进行简单查询(学生)

实验三SQL语言进行简单查询一、实验目的掌握简单数据查询操作。

二、实验内容使用各种查询条件完成指定的查询操作三、实验步骤1、查询选修了课程的学生人数。

select count(*)from sc;2、查询学生200515004选修课程的总学分数。

select sum(credit)from student,course,scwhere student.sno=sc.sno ando=o andstudent.sno='200515004'3、查所有有成绩的学生学号和课程号。

select*from student,scwhere student.sno=sc.sno andgrade is not null;4、查询年龄在20~23岁(包括20岁和23岁)之间的学生的姓名、系别和年龄select sname,sdept,sagefrom studentwhere sage between 20 and 23;5、查询选修了3号课程的学生的学号及其成绩,查询结果按分数降序排列。

select sno,gradefrom scwhere cno='3'order by grade desc6、求哪些学生还没有被分配系?select sno,snamefrom studentwhere sdept is null;7、求CS系中所有男同学的学生姓名和年龄。

select sname,sagefrom studentwhere sdept='cs'andssex='男';8、我校开设的课程中哪些课程名以“数据”两个字开头?select cnofrom coursewhere sdept like'数据%';9、求哪些学生的姓名中第2个字是“立”?select *from studentwhere sname LIKE'_立%'10、求哪些学生的成绩为优秀,求出该学生的学号及相应的课程号。

数据库实验3-SQL语言之数据查询(简单查询)

数据库实验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).查询产品名称含有“热水器”的产品信息。

数据库实验SQL 语言 SQL 语言的简单查询、连接查询

数据库实验SQL 语言 SQL 语言的简单查询、连接查询
计算机引论
空值(NULL)
C2
C语言
C1
C3
数据结构
C2
8.用INSERT语句向Choose表中插入7个元组
SNO
CourseID
Score
S00001
C1
95
S00001
C2
80
S00001
C3
84
S00002
C1
80
S00002
C2
85
S00003
C1
78
S00003
C3
70
9.用SELECT语句,查询计算机学院学生的学号和姓名关系代数及代码:
13.用SELECT语句对空值(NULL)的判断条件,查询Course表中先修课称编号为空值的课程编号和课程名称。
14.用SELECT语句的连接查询,查询学生的学号、姓名、选修的课程名及成绩
四、实验实习过程或算法(源程序、代码)
1.用Create Table建立Student表代码:
CREATE TABLE Student
运行结果:
9用SELECT语句的COUNT()聚集函数,统计Student表中学生总人数代码及运行结果
代码:SELECT COUNT(*) FROM Student;
运行结果:
10.分别用SELECT语句的max()、min()、sum()、avg()四个聚集函数,计算Choose表中C1课程的最高分、最低分、总分、平均分。代码及运行结果
[^...]负值字符集合表示匹配未包含的任意字符;
如:sysabc:均不匹配而sabcys: NOT LIKE‘sys%’可以匹配
可以用逻辑学的方法来理解,前者可以看成s^y^s^即(s+y+s)^,后者看成(sys)^。

实验3SQL的简单查询功能

实验3SQL的简单查询功能

实验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)列出课程表中有先行课的课程名。

实验三 数据库的简单查询和连接查询实验

实验三 数据库的简单查询和连接查询实验

实验三数据库的简单查询和连接查询实验1.实验目的了解SQL查询分析器的使用方法,加深对SQL语言的查询语句的理解。

掌握对表数据的简单查询,数据排序和数据连接查询的方法。

2.实验内容1)简单查询实验用SQL表达简单查询操作,包括投影、选择、数据排序等,在查询分析器中进行并显示正确的结果。

2)连接查询实验用SQL表达连接查询操作,包括等值连接、自然连接、求笛卡尔积、一般连接等,通过SQL查询分析器输入并显示正确的结果。

3.实验要求(1)基本操作实验1)简单查询用SQL语句表示下列操作:●求数学系学生的学号和姓名●求选修了课程的学生的学号●求选修了课程C1的学生学号和成绩,并要求对查询结果按成绩的降序排列,如果成绩相同则按学号的升序排列。

●求选修了课程C1且成绩在80-90分之间的学生学号和成绩,将成绩乘以0.8输出。

●求数学系或计算机系姓张的学生的信息。

●求缺少了成绩的学生的学号和课程号。

2)连接查询●查询每个学生的情况以及他(她)所选修的课程。

●求学生的学号、姓名、选修的课程名及成绩。

●求选修C1课程且成绩为90分以上的学生学号、姓名及成绩。

●查询每一门课的间接先行课(即先行课的先行课)(2)提高操作实验用SQL语句表示学生和选课之间的内连接、左外部连接,选课和课程之间的内连接、右外部连接,在查询分析器中完成,说明结果含义。

4.实验报告要求1)写出实验的主要步骤2)写出实验操作的SQL查询语句、实验结果。

3)写出实验中出现的问题、注意事项和解决方法。

4)写出实验体会。

SQL的简单查询功能

SQL的简单查询功能

SQL的简单查询功能SQL (Structured Query Language) 是一种用于管理关系数据库系统的编程语言。

它可以进行数据的查询、插入、更新和删除等操作。

在这篇文章中,我将介绍 SQL 的简单查询功能。

SQL的查询功能是通过SELECT语句来实现的。

SELECT语句用于从一个或多个表中检索数据。

下面是一个基本的SELECT语句的语法:```sqlSELECT列名FROM表名;```以上的查询语句将返回指定表中的所有数据。

例如,我们有一个名为"employees" 的表,它包含了员工的编号、姓名、年龄等信息。

要查询该表中的所有员工信息,可以使用以下语句:```sqlSELECT*FROM employees;```其中*代表所有列,即返回表中的所有列。

除了返回所有列,我们还可以选择性地返回指定的列。

例如,只需要返回员工的姓名和年龄,可以使用以下语句:```sqlSELECT姓名,年龄FROM employees;```此外,我们还可以对查询结果进行排序、过滤和分组等操作。

要对查询结果进行排序,可以使用ORDERBY子句。

例如,按照员工的年龄从小到大对结果进行排序,可以使用以下语句:```sqlSELECT*FROM employeesORDERBY年龄ASC;```其中"ASC"表示升序排列,如果要降序排列,可以使用"DESC"。

例如,按照年龄从大到小排序,可以使用以下语句:```sqlSELECT*FROM employeesORDERBY年龄DESC;```要对查询结果进行过滤,可以使用WHERE子句。

例如,要筛选出年龄大于30岁的员工,可以使用以下语句:```sqlSELECT*FROM employeesWHERE年龄>30;```除了基本的过滤条件外,还可以使用逻辑运算符(如AND、OR)和其他比较运算符(如=、<、>)进行更复杂的筛选。

SQL数据库实验三_简单查询(1)解答

SQL数据库实验三_简单查询(1)解答
查询结果:
其他:
selectemployeeName,department,
case
whensex='M'then'男'
whensex='F'then'女&#
whereemployeeNamelike'张%'
10.查询姓张且全名为三个汉字的职工姓名。
SQL语句:
SELECTemployeeName
9.查询所有姓张的职工姓名、所属部门和性别,且性别显示为“男”或“女”。
SQL语句:
SELECTemployeeName,department,sex=
casesex
WHEN'M'THEN'男'
WHEN'F'THEN'女'
ELSE'不详'
END
FROMEmployee
WHEREemployeeNameLIKE'张%'
whensalary<2000then'低收入者'
whensalary>=2000andsalary<4000then'中等收入者'
whensalary>=4000then'高收入者'
end
fromEmployee
WHEREyear(birthday)=1973ANDheadShip='职员'
查询结果:
其他:
SELECT*
FROMEmployee
WHEREyear(birthday)='1973'ANDheadShip='职员'

实验三 SQL进行简单查询

实验三 SQL进行简单查询

1)查询全体学生的学号和姓名Select Sno, Sname From Student ;2)查询全体学生的详细记录Select * From Student;3)查询所有选修过课程的学生学号Select distinct Sno from Sc;4)查询考试有不及格的学生学号Select distinct Sno from Sc where grade <60;5)查询不是信息系(IS)、计算机系(CS)的学生性别、年龄、系别Select Ssex ,Sage ,Sdept from student where Sdept not in (‘IS’,’CS’)Select Ssex ,Sage ,Sdept from student where Sdept not in('IS','CS')6)查询选修了4号课的学生学号和成绩,结果按成绩降序排列Select sno,grade from sc where cno=’004’ order by grade desc;Select sno,grade from sc where cno='004'order by grade desc;7)查询每个课程号和相应的选课人数Select cno,count(sno) from sc group by cno;Select cno,count(sno)as总人数from sc group by cno;8)查询计算机系(CS)的学生姓名、年龄、系别Select sname,sname,sage from student where sdept in (‘CS’);select sname,sage,sdept from student where sdept in('CS');9)查询年龄18-20岁的学生学号、姓名、系别、年龄;Select sno,sname,sdept,sage from student where sage between 18 and 20 ;10)查询姓刘的学生情况Select * from student where sname like ‘刘’;Select*from student where sname like'刘%';11)查询既选修1号课程,又选修2号课程的学生学号Select sno from SC where cno=’001’ and sno in (select sno from SC where cno=’002’);Select sno from SC where cno='001'and sno in(select sno from SC where cno='002');12)查询学生的姓名和出生年份(今年2003年)Select sname,(2003-sage) as BIR from student ;13)查询没有成绩的学生学号和课程号Select sno,cno from sc where grade is null;14)查询总成绩大于200分的学生学号Select sno,sum(grade) from sc group by sno having sun(grade)>200;Select sno,sum(grade)as总分from sc group by sno having sum(grade)>200;15)查询每门课程不及格学生人数Select cno,sum(grade) from sc where grade<’60’ group by cnoSelect cno,sum(grade)from sc where grade<'60'group by cno ; ;16)查询不及格课程超过3门的学生学号Select sno,count(grade) from sc where grade<’60’group by sno havingcount(*)>3;Select sno,count(grade)from sc where grade<'60'group by sno havingcount(*)>3;17)查询年龄在10到19岁之间的学生信息Select * from student where sage between 10 and 19;Select * from student where sage like’1_’18)查询全体学生情况,按所在系升序排列,同一个系的学生按年龄降序排列Select * from student order by sdept asc ,sage desc;19)查询选了1号课程的学生平均成绩Select avg(grade) from sc where cno=’001’;Select avg(grade)as平均成绩from sc where cno='001';20)查询选了3号课程的学生的最高分Select max(grade) from sc where cno=’003’;Select max(grade)as最高分from sc where cno='003';21)查询每个同学的总成绩Select sno ,sum(grade) from sc group by sno ;Select sno,sum(grade)as总成绩from sc group by sno ;。

实验三 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的供应商号码及供应总数量,结果按供应商号码分类并且按供应总数量降序排列七、实验总结:数据查询是一种极为重要的面向数据库的数据操纵方式。

实验三SQL的数据查询

实验三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)查询学生的选课成绩合格的课程成绩,并把成绩换算为积分。

实验指导03(SQL一),,用SQL语句做简单的查询工作。

实验指导03(SQL一),,用SQL语句做简单的查询工作。

1实验三:SQL语句的使用(一)1.1实验背景SQL(Structure Query Language,结构化查询语言)是目前在关系数据库领域中真正的标准语言。

虽然它叫做查询语言,但实际上不仅仅只能用来执行查询,还能用来执行数据的更新处理。

教材的第一章谈到的数据库管理系统(DBMS)具有的所有功能SQL 都能帮助完成,而且对于数据库管理员(DBA)来说,他管理数据库用到的一定是SQL。

如果按照DBMS的功能来分类SQL的话,可以参考下表:表 1 DBMS功能与SQL分类上表表述了最常见的SQL,实际上SQL非常丰富,而且随着时代的发展,SQL也不断地发展,而且SQL被国际标准化组织(ISO)制定成了国际标准,并且随着SQL新增要求,不断推出更新版本的国际标准。

目前最主要的是1999年推出的SQL-99标准。

下表是SQL的几个标准的版本。

表 2 DBMS功能与SQL分类从上表可以看出SQL标准是在不断更新当中的,但是自1996年后标准的关注度并不再提及得很重要的地位(实际上1999年后,SQL标准仍然在不断推出)。

其中的原因有很多。

通过下面两篇摘自网上的文章可以看出SQL的发展现状。

文章:“SQL标准风光不再”(CSDN,,发表于2002年)对很多公司来说,在选择关系数据库管理系统(RDMS)时SQL标准的兼容性无疑是一重要的考虑因素,那么,为什么这一标准对数据库产品的开发商而言反倒成了可选的考虑标准呢?其实专有技术在带来产品优势的同时往往还伴随着产品质量的下降或者数据移植性的丧失,对厂商和客户的关系而言,这些后果总是有得有失。

下面就让我们探讨下ANSI SQL标准支持力度下降的原因以及标准自身的有效性。

为什么要建立标准?为什么说技术标准相当重要?原因很多,最首要的一条就是产品的用户在购买产品之前能保证产品能达到它所宣称的功能。

如果你能和某家厂商形成伙伴关系,保证你的数据管理系统一切正常,难道这样不好吗?再比如,你在选择RDMS的时候首先考虑的是其稳定、资源的有效利用率还是因为它支持竞争产品并不拥有的视图和事务功能呢?有一个标准千般好,至少,第3方厂商能由此创建出可应用于整个市场而非某一特定平台的工具和实用程序。

实验三 查询的sql语句

实验三 查询的sql语句

Sql语句操作单表查询【例3-16】在“学生”表中查询全体学生的学号、姓名、性别和出生日期。

答案:【例3-17】在“教师”表中查询所有的字段信息。

答案:【例3-18】查询教师表中职称为教授的有关信息答案:【例3-19】查询教师表中职称为女教授的有关信息答案:【例3-20】查询“成绩”表中成绩在70-90之间的学号、课程编号和成绩。

答案:【例3-21】查询学生年龄22岁以上的学生记录。

答【例3-22】查询选修了课程编号为“C0601”的学生的学号和成绩,查询结果按成绩降序排列。

答案:多表查询,连接查询【例3-23】查询选修课程编号为“C0601”的课程且成绩在60与80分之间(含60与80分)的所有学生的学号、姓名、课程名及成绩答案:嵌套查询【例3-24】查询课程编号为“C0404”且成绩在90分以上的学生学号和姓名。

答案:操作查询【例3-26】将一个新的学生信息(学号:s01003,姓名:陈国庆,性别:男,生源:江苏,出生日期:1990-10-1,专业编号:p05)添加到学生表中。

答案:【例3-27】修改学生表中学号为”s01003”的生源为“福建”答案:【例3-28】删除学生表中学号为”s01003”的学生记录聚集函数答案:【例3-29】查询“学生”表的学生总人数。

答案:【例3-30】查询学生表中生源来自那些地方答案:【例3-31】计算学号为“s01002”学生的课程平均成绩答案:【例3-32】查询“王小闽”的学生修改的所有课程的总学分。

答案:【例3-33】查询选修课程“c0605”的学生的最高成绩和最低成绩。

Group by 分组答案:【例3-34】查询各课程(按课程号)及相应的选课人数。

答案:【例3-35】查询选修2门以上课程的学生学号。

答案:。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验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.pjx
set default to F:\shuju库原理
select tno 教师编号,tname 教师姓名 ,photo 教师电话号码;
from teacher
(2)查询‘计算机’系的所有副教授的基本信息;
from teacher
list
select *;
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工资
list
select * 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学分-1
select 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)列出课程表中有先行课的课程名。

select cpno先行课, cname from course;
where cpno先行课 is not null
由于作业是课堂上在机房和课后在自己电脑上一起完成的所以截图有所不同哦~。

相关文档
最新文档