实验3 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(二):数据查询【实验目的】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(Structured Query Language)是一种用于管理和操作关系型数据库的计算机语言。
它提供了各种功能和查询选项,用于检索和操作数据库中的数据。
以下是SQL的简单查询功能的一个详细解释,超过1200字的内容:SQL的简单查询功能包括从数据库中检索数据,排序和过滤数据,使用聚合函数进行数据计算,连接多个表,以及创建视图和子查询等。
查询通常是通过SELECT语句实现的,该语句允许用户指定要检索的数据和要执行的操作。
基本的SELECT语句格式如下:SELECT列名1,列名2,...FROM表名WHERE条件;其中,列名表示要检索的列,表名表示要检索的表,WHERE子句用于指定检索数据的条件。
查询的结果将返回一个结果集,其中包含满足查询条件的数据。
常见的查询功能包括:1.检索所有数据:如果不指定WHERE子句,则SELECT语句将返回表中的所有数据。
例如:SELECT*FROM表名;2.指定检索的列:可以通过列名列表指定要检索的列,使用逗号分隔。
例如:SELECT列名1,列名2FROM表名;3.排序数据:可以使用ORDERBY子句对结果进行排序。
可以根据一个或多个列进行排序,使用ASC(升序)或DESC(降序)关键字来指定排序顺序。
例如:SELECT列名1,列名2FROM表名ORDERBY列名ASC;4.过滤数据:使用WHERE子句指定检索数据的条件。
可以使用比较运算符(例如等于、不等于、大于、小于等)来构建条件。
例如:SELECT列名1,列名2FROM表名WHERE列名1=值;5.使用聚合函数计算数据:SQL提供了一系列聚合函数,用于对数据进行计算和分组。
常见的聚合函数包括SUM、AVG、COUNT、MAX和MIN等。
例如:SELECTCOUNT(*)FROM表名;6.连接多个表:使用JOIN子句将多个表连接在一起。
可以使用INNERJOIN、LEFTJOIN或RIGHTJOIN等关键字指定连接类型。
实验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基本表查询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)查询学生的选课成绩合格的课程成绩,并把成绩换算为积分。
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输出结果。
实验三 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语言之数据查询(简单查询)
实验三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).查询产品名称含有“热水器”的产品信息。
实验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)列出课程表中有先行课的课程名。
实验三 查询的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.实验目的了解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语言查询功能—单表查询
实验目的:
1)理解查询的原理
2)熟练投影查询、带条件的查询、多条件查询、分组查询
实验内容:
1、查询全部的学生信息
select*from学生
2、查询与张佳吟的信息,列出其学号,姓名
select学号,姓名from学生where姓名='张佳吟'
3、查询选修了课程的学生信息,列出其学号
select学号from成绩
4、查询所有入学成绩在500分以上的男生信息
select*from学生where性别='男'and入学成绩>=500
5、查询年龄为20岁和21岁的学生,列出学号,姓名,年龄
select学号,姓名,2012-YEAR(出生日期)as年龄from学生where 2012-YEAR(出生日期)between 20 and 21
6、查询年龄在20-23岁之间的学生信息
select*from学生where 2012-YEAR(出生日期)between 20 and 23
7、分别统计男生和女生的人数
select COUNT(性别)as人数,性别from学生group by性别
8、统计选过课程的学生人数
9、统计每门选课成绩的平均分
10、统计选课成绩在80分以上的每门课程的学生人数
11、统计每个学生所有课程的总分,平均分,按照平均分降序排列。
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的简单查询功能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)解答
其他:
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进行简单查询
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语言——数据查询操作一、实验时间:二、实验地点:三、实验条件与环境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的供应商号码及供应总数量,结果按供应商号码分类并且按供应总数量降序排列七、实验总结:数据查询是一种极为重要的面向数据库的数据操纵方式。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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)查询所有教师的教工号、姓名和电话号码信息,查询结果列项是中文名;
SELECT Tno 教工号,Tname 姓名,Tphone 电话号码信息
FROM Teacher
(2)查询‘计算机’系的所有副教授的基本信息;
SELECT *
FROM Teacher
WHERE Tdept='CS' AND Tprof='副教授'
(3)查询所有女同学的姓名及所在的系,显示结果不允许重复出现;
SELECT DISTINCT Sname,Sdept
FROM Student
WHERE Sex='女'
(4)查询各教师的姓名、教工号及工资按95%发放的信息,并将按95%发放的工资列改名为‘预发95%工资’;
SELECT Tname,Tno,Tpay*0.95 '预发95%工资'
FROM Teacher
(5)假设学号的5个数字中,前2位代表年级,后3位为序号,检索计算机06级总学分在150~195的学生信息,并按学号降序排列;
SELECT *
FROM Student
WHERE SUBSTRING(Sno,1,2)='06' AND
Total BETWEEN 150 AND 195
ORDER BY Sno DESC
注:取字符串的一个子串可以用函数SUBSTRING(串,开始位置,长度)
(6)查询修正后的学分(原学分-1)仍然大于3的课程的代号、名称、原先的学分、修正后的学分;
SELECT Cno,Cname,Credit,Credit-1 修正后的学分
FROM Course
WHERE Credit-1>3
(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(*)
FROM Student
GROUP BY Sdept
(10)查询各课程的平均成绩并按成绩降序排列;
SELECT Cno,AVG(Grade)
FROM SC
GROUP BY Cno
ORDER BY AVG(Grade) DESC
(11)查询有两门课在90分以上的学生学号及90分以上课程数;
SELECT Sno,COUNT(*)
FROM SC
WHERE Grade>90
GROUP BY Sno
HAVING COUNT(*)>=2
(12)统计每门课程的选课人数、平均成绩、最高成绩、最低成绩;
SELECT Cno,Count(Sno),A VG(Grade),MAX(Grade),MIN(Grade) FROM SC
GROUP BY Cno
(13)列出课程表中有先行课的课程名。
SELECT Cname
FROM Course
WHERE Cpno IS NOT NULL。