实验三 SQL语言查询功能—单表查询

合集下载

《sql语句的单表查询实验》教学设计

《sql语句的单表查询实验》教学设计
《sql语句的单表查询实验》教学设计
பைடு நூலகம்
≪S。L单表查询实验》教学设计 广州市信息工程职业学校肖维明 小结:罗列本课中各有关SELECT查询语句,分析语法结构与注意事项;剖析各附加子句的 小结 运算关系,强调组合使用的效果。 和评 教学 反思 评价:对学习过程中的积极练习的小组和个人进行表扬。课后收集学生实验报告。 本课实验练习的SELECT单表查询命令是非常复杂多变的•组命令语句,语法结构复杂,附 加子句功能多。在练习前很有必要与学生重温SELECT语句命令的语法,并拆分讲解附加子 句的功能特点,编写要求,让学生有比较清晰地印象。而后设计的查询实验题目有针对性地 应用不同的查询命令组合形式,让学生在练习中可接触尽可能多的查询效果,并争取举•反 三。在活动教学开展过程,学生学习积极性要大力保护与促进,所以尽可能安排小组学习互
助,既实现了协助式学习效果,又可形成一种互进的浓厚学习氛围。 八、教学流程图

SQL 单表查询

SQL 单表查询

实验三单表查询一、实验目的掌握简单SQL 查询语句的应用,包括like、top、order by、compute 、聚集函数的应用。

二、实验内容1、基本查询(1)查询学生表中全体学生的全部信息。

select*from Student_20103266;(2)检索全体学生的学号、姓名。

select Sno,Snamefrom Student_20103266;2、查询时改变列标题的显示检索全体学生的学号、姓名、家庭地址信息,并分别加上“学生”、“学号”、“家庭地址”的别名信息。

select Sno'学号',Sname'姓名',Home_addr'家庭地址'from Student_20103266;3、条件查询(1)查询成绩大于80分的学生的学号及课程号、成绩。

SELECT Sno,Cno,Gradefrom SC_20103266where Grade>80;(2)查询成绩介于75~80分的学生的学号及课程号、成绩。

SELECT Sno,Cno,Gradefrom SC_20103266where Grade between 75 and 80;(3)查询选修了课程号为“002”,且成绩大于80的学生的学号。

SELECT Snofrom SC_20103266where Cno='002'AND Grade>80;(4)某些学生选修某门课程后没有参加考试,所以有选课记录,但没有考试成绩,下面我们来查一下缺少成绩的学生的学号和相应的课程号。

SELECT Sno,Cnofrom SC_20103266where Grade IS NULL;4、基于IN子句的数据查询从课程表中查询出“高数”、“C语言程序设计”的所有信息。

SELECT*FROM Course_20103266where Cname IN('高数','C语言程序设计');5、基于BETWEEN。

SQL语言--数据查询1(单表查询)

SQL语言--数据查询1(单表查询)
SELECT 学号,姓名,系名 FROM 学生表 WHERE 姓名LIKE “欧阳__”
(上个汉字占两个字节,所以要有二个下横线)
■:查询学生表中所有不姓“刘”的学生情况
SELECT * FROM 学生表 WHERE 姓名 NOT LIKE “刘%”
■。对学生表,按性别排序(女在前男在后)
SELECT * FROM ST ORDER BY SSEX DESC
2。多列排序
■。对学生表,按性别排序(男在前女在后),同性别者,则按年龄排序(从大到小)
SELECT * FROM ST ORDER BY SSEX,SLN DESC
一。 单表查询的内容:
1。投影查询
2。选择查询
3。匹配查询
4。排序查询
5。统计查询
1)无分类统计查询
2)有分类统计查询
3)有分类并带条件统计查询
二。投影查询:对表进行纵向(按列)查询
1。查询表中所有字段
■:查询ST表中全体学生的详细记录(所有字段)
注:统计函数前要加上性别,否则不知道统计的对象是谁
■。带条件分类统计
在学生表中,按系别分类,统计平均年龄不低于20的学生信息
SELECT 系名,AVG(年龄) FROM 学生表 GROUP BY 系名
HAVING AVG(年龄)!<20
4. 确定范围查询 (BETWEEN AND , NOT BETWEEN AND)
■:查询教师表中,工资1000到3000之间的职工记录
SELECT * FROM TEACHER WHERE 工资 BETWEEN 1000 AND 3000
等价于:
■:查询学生表中学号为0011I学生的详细情况

实验三数据库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 数据查询

实验3  数据查询

实验3 数据查询数据查询是数据库的核心操作。

在本实验中,我们学习如何使用SELELCT 查询语句实现单表查询、连接查询、嵌套查询、集合查询及相关操作。

实验3.1 单表查询【实验目的】●熟悉SELECT查询语句各个子句的功能。

●掌握使用SELECT查询语句实现单表查询。

【实验内容】●使用SELECT查询语句对学生管理数据库SCT中三张表(Student、Course、SC)进行单表查询。

●对照教材“3.4.1单表查询”中的例题进行练习。

●Into子句的使用。

【实验步骤】(1)编写SQL语句:SSMS→单击工具栏上的“新建查询”按钮→录入SQL语句。

(2)测试SQL语句:单击工具栏上的“分析”按钮或按<Crtl+F5>组合键对当前SQL语句进行测试,如果语句无误,代码区下方会显示“命令已成功完成”,否则显示错误提示信息。

(3)执行SQL语句:单击工具栏上的“执行”按钮或直接按<F5>键即可执行当前SQL语句,并看到执行结果。

(4)对照教材“3.4.1单表查询”中的例题进行练习,从而熟悉SELECT语句各子句的功能。

示例3.1:查询计算机科学系年龄在20岁以下的学生姓名,见图3.1。

示例3.2:查询平均成绩大于等于90分的学生学号和平均成绩,见图3.2。

图3.1 示例3.1执行结果图3.2 示例3.2执行结果(5)Into子句的使用:在SELECT查询语句中使用into子句,可以把查询结果存放到一个新建立的表中。

示例3.3:利用学生表的数据生成一张女生表gilestudent,见图3.3,之后可在“对象资源管理器”窗格中查看新建的gilestudent表。

图3.3 示例3.3执行结果实验3.2 连接查询连接查询可以使用两种语法形式,一种是在from子句中写出所要连接的表名,而连接条件写在where子句中,从而实现表的连接;另一种是ANSI连接形式,即在from子句中使用join…on关键字,连接条件写在on之后,从而实现表的连接。

实验三、数据库单表查询

实验三、数据库单表查询

实验三单表查询实验目的掌握简单SQL查询语句的应用,包括like、top、order by、compute和聚集函数的应用。

二、实验内容1、基本查询(1)查询Student表中全体学生的全部信息select *from Stude ntSno Srame Set Bnth Qassno Entrar>ce_d3te Home .joddr stature sdept postcode |j_ [20110001 |站虹1932^11 OOOOOO051南京NULL 计算机累2D04132 2O11(W ML文1951-11-12 00:00: DO 0512D11-05-0J t)D:OD:OD 北京NULL 软件工程1D001032A110103 世青畀1993^11 WWW0612011-DWJ1 00:00:00上海NULL 软件工程200013(2)查询全体学生的学号、姓名select Sno , Sname from Stude ntSno Snair*1■ Iaa-n ■ iraiiiansBin am airarii■[2011DW12面[丽亍林红32D1101032、查询时改编列标题的显示、查询全体学生的学号、姓名、家庭地址信息,兵分别加上“学生“、“学号”、“家庭地址”的别名信息select Sno 学号,Sname 姓名,Home_addr 家庭住址信息from Stude nt3、条件查询(1)、查询成绩大于80分的学生的学号及课程号、成绩select Sno , Cno , Grade from SCwhere Grade >80SnoC AOGrade 1 i ■iliairnii*r ・・・・ZtJUODOI"j 00183 2'aoi'iikw'f" 003 &93201100010D495(2) 查询成绩在75~80分的学生的学号及课程号、成绩select Sno , Cno , Grade from SCwhere Grade between 75 and 80Sno Cnc Grade 1i^oiiwoi ! 00278 2"龙商肝600180(3) 查询选秀了课程号为“ 002 ”且成绩大于80分的学生的学号select Sno from SCwhere Cno=002 and Grade >80Sno(4)某些学生选秀某们课程后没有参加考试,所以有选课记录,但没有考试成 绩,请查询缺少成绩单额学生的学号和相应的课程号select Sno , Cno from SCwhere Grade =n ullSrw Cna4、基于IN 子句的数据查询从Course 表中查询出”高数”、C 语言程序设计”的所有信息select *from Coursewhere Cname in('高数','C语言程序设计')用m |・-J MraCnoCnameTotal_t>encr Credit 1 ir —! iurm[的566 2002Cigs 程序设计€455、基于betwee n …a nd 子句的数据查询 查询所有成绩在70~80分之间的学生选课信息select Sno , Cno , Grade from SCwhere Grade between 70 and 80Sno Cno Grade 1rinii iin-illi m Sli rdniilin-ili I 201100D1 1 Ii (M27B 220110103 CN11 B06、基于like 子句的查询(1)从 Student 表中分别检索出姓“张”的所有同学的资料select *from Stude ntwhere Sname like '张%'SnoSnameSexBnthGassnc &itrance_daie Home_addr stature sdept postcoders —,mis —Bin!—■1 ! 501HW01 !Si rvniirBHiiBiwmi Hauling強虹1 做如 1 DOzOTM 0512011^01南京NULL计算机系 2DO413select *from Stude ntwhere Sname like '_ 红 %' or Sname like '_ 虹 %'&KSr-banKi OMQfK&Mranc6_d3lo Hom&_acdrHats ■dtpr1 ['2fli'iO(Ml'j ____________ ,, ,,, 1昧虹見M: 00.00051 201T4WH 00:0000MULL 讣算机慕20040 2 2Q110D02文1W1-11-13M :DGOO5515O1T-JWH &C :OTOD北祟MULLftSM10M107、使用top 关键字查询(2)检索名字的第二个字是 红”或虹”的所有同学的资料 (3)查询课程名为Visual_Basic的课程的学分select Credit(1)从选课表中检索出前3个课程信息select top 3 * from SCSrw Cno Grade1 ; 20110001 \&3l・』ii mi mi 0012 20110001 00273a 2D11D001-003 朋(2)从选课表中检索出前面20%的课程信息select top 20 percent *from SC8消除重复行检索出学生逸轩课程的课程号,要求显示的课程号不重复select disti net Cno from SC9、查询经过计算的值查询全体学生都的姓名及其年龄select Sname, datediff (year , Brith , getdate ()) 年龄from Stude ntSname 年龄]■■■ auj1 i张虹i 242 ' 确253 瞬2310、使用order by 语句对查询的结果进行排序(1)显示所有学生的基本信息,按班级号排序,若班级号相同则再按学号排序select *from Stude ntorder by Class no ascSroSnanaSec ErithClaserc &rmce_date Horr«_idarstature sdepit亞虹■&92-29.11 DOCOK网2011-054)1 00 {WKNULL计 200413女 133M1 12 WWW)51 2011-D3-01 00 <K) M 北京 MULL 炊件工程 1MTO1D 2C'rD103 赵査 男 '99SJ5-11D0:t)O:DQ KI上篦 NULL 赧件工200013(2)查询全体学生的姓名及其年龄,并按学生的年龄的降序排列 select Sname, datediff (year , Brith , getdate ())from Stude nt(1)查询学生的总人数 select COUNT(*) from Stude nt(2)计算选秀了“ 002”号课程的学生的平均成绩、最高分、最低分select MAX( Grade ), MIN ( Grade ), AVG( Grade ) from SCwhere Cno ='002'氏歹1诙优列萬疣列宕) 1 用 1 GO 的THBVI ■ ■■■■ n ■ ■ ■ MH Bn niJ12、使用group 子句进行查询(2)汇总总分大于150分的学生的学号及总成绩select Sno , SUM( Grade ) from SCgroup by SnoSnoi 351(3) 查询各个课程号相应的选课人数select COUNT( Sno) from SC group by Cno1|"2 ............... j2 2J 14t13、使用compute 和compute by 子句进行查询by datediff (year , Brith , getdate ()) desc Sr«me :无列名:ir-«n ・rs-BniBT-■! inr1林红 *i vs ni imiii nafaiiiMir25 24 3 赵青 23order11、使用聚合函数(1)查询各班级学生的总人数select Class no , cou nt ( Sno )(2)按学号汇总出每个学生的学号及总成绩、最高分、最低分以及所有学生的 总成绩 select * from SC order by compute computeSna Grade 1 20110001 &9 2 2C110001753 2C11QDG142C11000195sum1351 JSnoGrade l2C110D02^l--llll IW4 llll-HII 11+4 Illi H>il 160sum160 jSnoGrade(1)汇总每个学生的学号及总成绩select Sno , Gradefrom SCorder by Sno asc compute SUM( Grade ) by SnoSrtoCno Grade1||«11||| IUI iiihaiii IIM mi UII i2fl11tKX)1 001832 20110001M2 7S 3 10001 003旳4Ml TW01 (WM 95sun maxmri1Ina■ ■ ■ r ・i ■■■■■■■|j⑹」9576SnoCno Grade 1| 20110002 (KJ2詡sum maxmn1i M I GO1:A ■■■■IUBIII A-il€0SnoCno GradeJ■ t A ■■■■■—JBina-iiiBii-Aii ■■&><■ ■2C11M)02mum IMI IIIUBIII i IM mi ■■■!002呦sum maxmri[lGO 1 SO€0SnoCno GradeJi wiiat^tiiiiaiHiaiMiiieEH i2011 D1(H(MJ1 80SUITIm 亞nnin180 \ aoIMMII !« IIIF"fB0sum匚■ I »II ・・m ・・・ iaH|!■--■>■ ■>— >>■_—!■Snosum (Grade )sum ( Grade ), max( Grade ), min ( Grade ) by Sno问题、总结及体会单表查询,相对简单,不过还是需要注意细节和前后关系。

SQL中表单查询 实验

SQL中表单查询   实验

实验报告
select sname,sage,sdept from student where sdept in('CS') and ssex is ‘男’
建立表格时,定义了长度,实际输入的数值不一定占全,应使用2.查询计算机系年龄不到21岁的所有男生的姓名和出生年份。

4.查询所有有成绩的学生学号和课程号,并为各列分别取相应的中文别名。

(三) 按照《数据库系统概论》P75页中的SPJ数据库及数据实现以下查询:
1.查询地点在‘北京’、‘上海’的供应商代码和供应商名字。

2.查询供应商名中包含‘方’这个汉字的供应商信息。

3.查询零件名以‘刀’字结尾,包含三个汉字的零件信息。

4.查询使用了供应商S1所供应零件的工程项目数。

5.查询各个供应商所供应的零件的总数,要求对查询结果降序显示。

6.查询供应了3个以上项目的供应商代码和供应的项目总数。

SQL查询语句(一)——单表查询

SQL查询语句(一)——单表查询

SQL查询语句(⼀)——单表查询------------恢复内容开始------------⼀、查询语句语句执⾏顺序FROM ——> SELECTSELECT select_listFROM table_name;查询多列数据SELECTlastname,firstname,jobtitleFROMemployees;⼆、排序数据语句执⾏顺序FROM --> SELECT --> ORDER BYSELECTselect_listFROMtable_nameORDER BYcolumn1 [ASC|DESC],column2 [ASC|DESC],...;如果未明确指定任何排序规则,默认(升序)使⽤ORDER BY ASC升序 ASCORDER BY column1 ASC;降序 DESCORDER BY column1 DESC;多列对结果集进⾏排序ORDER BYcolumn1,column2;第⼀个名字降序排列,然后将客户的姓⽒排序SELECTcontactLastname,contactFirstnameFROMcustomersORDER BYcontactLastname DESC,contactFirstname ASC;orderNumber,orderlinenumber,quantityOrdered * priceEachFROMorderdetailsORDER BYquantityOrdered * priceEach DESC;按订单状态进⾏排序SELECTorderNumber,statusFROMordersORDER BYFIELD(status,'In Process','On Hold','Cancelled','Resolved','Disputed','Shipped');三、过滤数据WHERE⼦句,为查询返回的⾏指定搜索条件语句执⾏顺序FROM --> WHERE-->SELECT --> ORDER BYSELECTlastname,firstname,jobtitleFROMemployeesWHEREjobtitle = 'Sales Rep';WHERE⼦句与AND运算符查找职务为Sales Rep且办公代码为1的员⼯SELECTlastname,firstname,jobtitle,officeCodeFROMemployeesWHEREjobtitle = 'Sales Rep' ANDofficeCode = 1;WHERE⼦句与OR运算符查找职务为的Sales Rep员⼯或使⽤办公代码1查找办公室的员⼯SELECTlastName,firstName,jobTitle,officeCodeFROMemployeesWHEREjobtitle = 'Sales Rep' ORofficeCode = 1ORDER BYofficeCode ,jobTitle;WHERE⼦句与BETWEEN运算符查找办公室代码为1到3的办公室中的员⼯SELECTFROMemployeesWHEREofficeCode BETWEEN 1 AND 3ORDER BY officeCode;WHERE和LIKE运算符查询查找姓⽒以字符串结尾的员⼯'son'SELECTfirstName,lastNameFROMemployeesWHERElastName LIKE '%son'ORDER BY firstName;WHERE和IN操作符查找位于办公室的办公室代码为1的员⼯SELECTfirstName,lastName,officeCodeFROMemployeesWHEREofficeCode IN (1 , 2, 3)ORDER BYofficeCode;WHERE和 IS NULL 操作符在数据库世界中,NULL是⼀个标记,指⽰⼀条信息丢失或未知。

单表查询实验报告

单表查询实验报告

《数据库系统概论》实验报告实验名称:单表查询实验人:实验地点:实验楼317实验日期:2009-10-5一、实验准备1.硬件及软件环境要求为了使该实验顺利进行,需要有一台计算机,计算机必须安装Windows 2000、Windows XP或Windows NT操作系统,还必须安装Microsoft SQL Server 2000 任意一版本(个人版、标准版、企业版)。

实验开始之前,必须将实验1.2节中创建好的SCDB数据库和ShiYan数据库附加到当前SQL数据库服务器中。

2.本实验涉及的主要SQL语句的语法格式(1) SELECT子句指定由查询返回的列。

SELECT [ ALL | DISTINCT ][ TOP n [ PERCENT ] [ WITH TIES ] ]< select_list >< select_list > ::={ * |{table_name|view_name|table_alias}.*|{column_name|expression|IDENTITYCOL|ROWGUIDCOL}[[AS]column_alias] | column_alias = expression } [ ,...n ]【说明】ALL:默认设置,指定在查询结果集中可以显示重复行。

DISTINCT:指定在查询结果集中不显示重复行,空值被认为相等。

TOP n:指定只从查询结果集中输出前n行。

PERCENT:指定只从查询结果集中输出前n%行,当指定时带PERCENT,则n 的值必须介于0~100之间。

WITH TIES:指定从基本查询结果集中返回附加的行。

如果使用了ORDER BY 子句,则只能使用TOP或WITH TIES选项。

select_list:指定查询列或列表达式(即查询列表)。

各查询列表之间以逗号分隔。

*:指定在FROM 子句内返回所有表和视图内的所有列。

列按FROM 子句所指定的由表或视图返回,并按它们在表或视图中的顺序返回。

实验报告(实验三)

实验报告(实验三)

沈阳工程学院
学生实验报告
(课程名称:数据库系统原理)实验题目:数据查询(一)
班级学号姓名
日期地点指导教师
一、实验目的
掌握SQL查询命令:主要针对单表查询。

二、实验环境
Oracle10g数据库系统。

三、实验内容与要求
使用Select命令完成下列数据查询。

简单查询:
⑴查询全体顾客的编号和姓名。

⑵查询全部商品的详细记录。

⑶查询顾客的姓名和出生年份。

⑷查询购买了商品的顾客的编号。

⑸查询职业(g_work)为“教师”的顾客的姓名。

⑹查询“沈阳市”年龄在20岁以下的顾客的编号和年龄。

⑺查询年龄在20—22岁的顾客的编号。

⑻查询“沈阳”、“大连”、“北京”的顾客信息。

⑼查询姓"王"的顾客的信息。

⑽查询购买商品编号为“0001”的顾客的编号和购买数量,结果按顾客编号升序,购买数量降序排列。

⑾查询顾客总人数。

⑿查询购买商品编号为“0001”的一次最高购买量。

⒀查询购买3次以上商品的顾客编号。

四、实验过程及结果分析
五、成绩评定
优良中及格不及格出勤
格式
内容
分析
总评
指导教师:
年月日。

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

03实验三_SQL单表查询

03实验三_SQL单表查询
(6)求“中国财政经济出版社”索书号为“F23”开头的所有书名。
请将第三部分实验中的SQL语句与结果使用截图方式记录。
1.2.
.2.
3
4
5…
6..
给出Where条件子句中,关系运算符和逻辑运算符;给出Like通配符。
答案:
关系运算符
<小于;
<=小于等于;
>大.
>=大于等于..
=等于
!=不等于
BETWEEN…AND确定范围
逻辑运算符
AND与,用于多重条件
NOT非,用于条件取非
OR或,用于多重条件
Like通配符
[NOT]IN确定集合
LIKE字符匹配
成绩:指导教师签名:
要求:使用“图书管理数据库”,并打开“图书表”完成下列查询语句编写。
(1)编写SQL语句,查找书名中第二个字为“特”的书名,作者。
(2)求“索书号”中以“A41”开头的所有索书号、书名和出版社。
(3)求作者中包含“财政部”三个字的所有索书号和书名。
(4)对图书表求共有多少家不同的出版社。
(5)求每家出版社出版的书的数量,要求按出版数量排升序。
熟练掌握WHERE条件中关系、逻辑、Like、[NOT]IN的构造;
掌握聚和函数的使用及其分组使用;
了解排序子句。
(1)登陆毕博教学网站();(2)选择“数据库应用”课程;(3)选择“按周编制的教学安排”后,再选择“第二周”;(4)下载“实验”和“数据库样例”。
要求:使用“教学管理数据库”,根据教科书描述,完成查询编写与保存。
【例3-1】使用“查询向导”建立查询。
【例3-2】使用“查询设计器”建立SQL查询。
【例3-3】使用“SQL语句编写”建立SQL查询。

实验三数据库单表查询

实验三数据库单表查询

软件技术基础实验报告实验名称:数据库单表查询实验地点:科技楼420实验批次: 5学号: 0900210328姓名:韦健臻实验日期:2011 年10 月26 日实验3使用Select 语句进行数据查询一、实验目的1.观察查询结果, 体会SELECT 语句实际应用;2.要求学生能够在查询分析器中使用SELECT 语句进行简单查询;3. 熟练掌握简单表的数据查询、数据排序和数据连接查询的操作方法;4. 加深对SQL 语言的嵌套查询语句的理解;5. 熟练掌握数据查询中的分组、统计、计算和组合的操作方法。

二、实验准备1. 完成实验二,成功建立了基本表;2. 了解简单SELECT 语句的用法;3. 了解SELECT 语句的GROUP BY 和ORDER BY 子句的作用;4. 了解统计函数和分组统计函数的使用方法。

三、实验要求完成实验,并验收实验结果提交实验报告。

四、实验内容写出相应的语句。

所有的查询全部用Transact-SQL 语句实现。

1.查询学生的所有信息。

select * from Student2.查询所有姓‘张’的学生的信息。

select * from Student where StuName like '张%'3.查询所有姓张的学生的信息,在列标题之间显示3行。

select TOP 3 * FROM Student where StuName like '张%'4.查询编号“00000001”的姓名信息。

select StuName from Student where StuNo = '00000001'5.查询表“Course”所有信息。

select * from Course6.查询学生信息前6条记录。

select * from Student WHERE StuNo < 77.将“Course”表中字段名做以下修改:'课程编码' 替换CouNo ‘课程名称'替换CouName'教师' 替换Teacher ‘上课时间'替换SchoolT'限制选课人数'替换LimitNum ‘报名人数'替换WIllNumselect '课程编码' = CouNo,'课程名称' = CouName ,'教师' = Teacher ,'上课时间' = SchoolTime,'限制选课人数' = LimitNum , '报名人数' = WillNumfrom Course8.查询《Linux操作系统》课程教师信息。

实验参考:SQL的数据查询(单表查询)

实验参考:SQL的数据查询(单表查询)

例如:设教学数据库EDUCATION中有三个关系: 学生关系 S ( SNO, SNAME, AGE, SEX, SDEPT) 学习关系SC(SNO, CNO, GRADE) 课程关系 C ( CNO, CNAME, CDEPT, TNAME)
SQL的数据查询
SNO, SNAME, AGE, s1 LiYang 20 s2 WangLi 21 s3 WuFang 19 …… …… sn TangWen 20 学生关系 S SEX, SDEPT M 通讯 M 计算机 F 材料 …… …… F 物理 SNO, CNO, GRADE S1 c1 A S2 c2 B … … … 学习关系 SC
SELECT命令的格式<目标列表达式>不仅可以是算术表达式 , 还可以是字符串常量、函数等。同时用户可以通过指定别名来改 变查询结果的列标题,这对于含算术表达式、常量、函数名的目 标列表达式尤为有用。
单表查询
(二)选择表中的若干元组 SNO, CNO, (1)消除取值重复的行 95001 c1 【例4】假如教学数据库EDUCATION中有一个 95001 c2 … … 学习关系:SC(SNO, CNO, GRADE) 99999 c5 查所有选修过课的学生的学号 … … SELECT Sno FROM SC; 该查询结果里包含了许多重复的行。如果想去掉结果 SNO 表中的重复行,必须指定DISTINCT短语: SELECT DISTINCT Sno FROM SC; 95001 95002 (2)查询满足条件的元组 … … 查询满足指定条件的元组可以通过 95100 WHERE子句实现。 … …
SQL的数据查询
1、SELECT完整语句的执行过程:
SELECT 的完整语 句格式

数据库原理与应用 实验报告 单表查询

数据库原理与应用 实验报告 单表查询

《数据库原理及应用》电子实验报告题目:SQL语言数据查询--单表查询日期姓名实验环境:Windows 7,Sql Server2005实验目的:1.掌握基本的select语句2.掌握表中列的查询3.掌握表中元组的选择实验内容:1.基本的select语句格式及说明SQL提供了SELECT语句进行数据库的查询,该语句具有灵活的使用方法和丰富的功能。

其一般格式为:SELECT [ALL|DISTINCT]<目标列表达式>[,<目标列表达式>]…FROM <表名或视图名>[,<表名或视图名>]…[WHERE <条件表达式>][GROUP BY<列名1>[HAVING<条件表达式>]][ORDER BY<列名2>[ASC|DESC]];说明:整个SELECT语句的含义是,根据WHERE子句的条件表达式,从FROM子句指定的基本表或视图中找出满足条件的元组,再按SELECT子句中的目标列表达式,选出元组中的属性值形成结果表。

如果有GROUP BY子句,将结果按<列名1>的值进行分组,该属性列值性等的元祖为一个组。

通常会在每个组中作用聚集函数。

如果GROUP BY子句带HAVING短语,则只有满足指定条件的组才给予输出。

如果有ORDER BY子句,则将结果按<列名2>的值的升序或降序排列。

SELECT语句既可以完成简单的单表查询,也可以完成复杂的连接查询和嵌套查询。

2. 表中列的查询1)表中若干列的查询(写出题目、关系代数表达式和sql语句)【实例1】从学生表查询学生的学号。

代码如下:SELECT SnoFROM Student;结果如图所示:【实例2】从学生表查询学生的姓名。

代码如下:SELECT SnameFROM Student;结果如图所示:【实例3】从课程表查询课程名。

代码如下:SELECT CnameFROM Course;结果如图所示:2)掌握表中全部列的查询(写出题目、关系代数表达式和sql语句)【实例4】查询全体学生的详细信息。

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

SQL数据查询之——单表查询

SQL数据查询之——单表查询

SQL数据查询之——单表查询⼀、SQL数据查询的⼀般格式数据查询是数据库的核⼼操作。

SQL提供了SELECT语句进⾏数据查询,其⼀般格式为:SELECT[ALL | DISTINCT]<⽬标列表达式>[,<⽬标列表达式>]···FROM<表名或视图名>[,<表名或视图名>···]| (SELECT语句>)[AS]<别名>[WHERE<条件表达式>][GROUP BY<列名1>[HAVING<条件表达式>]][ORDER BY<列名2>[ASC | DESC]];整个SELECT语句的含义是,根据WHERE⼦句的条件表达式从FROM⼦句指定的基本表、视图或派⽣表中找出满⾜条件的元组,再按SELECT⼦句中的⽬标列表达式选出元组中的属性值形成结果表。

如果有GROUP BY⼦句,则将结果按<列名1>的值进⾏分组,该属性列值相等的元组为⼀个组。

通常会在每组中作⽤聚集函数。

如果GROUP BY⼦句带HAVING短语,则只有满⾜指定条件的组才予以输出。

如果有ORDER BY⼦句,则结果还要按<列名2>的值的升序或降序排序。

SELECT语句既可以完成简单的单表查询,也可以完成复杂的连接查询和嵌套查询。

⼆、SQL单表查询(仅涉及⼀个表的查询)1.选择表中的若⼲列(1)查询指定列查询全体学⽣的学号与姓名SELECT Sno,SnameFROM Student;查询全体学⽣的姓名、学号、所在系SELECT Sname,Sno,SdeptFROM Student;(2)查询全部列查询全体学⽣的详细记录SELECT*FROM Students;等价于SELECT Sno,Sname,Ssex,Sage,SdeptFROM Student;(3)查询经过计算的值查询全体学⽣的姓名及其出⽣年份SELECT Sname,2014-Sage //查询结果的第2列是⼀个算术表达式FROM Student;注意:⽤当时的年份(假设为2014年)减去学⽣的年龄,这样所得的即是学⽣的出⽣年份。

数据库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. 内容和格式整齐。

最新实验三单表查询实验报告

最新实验三单表查询实验报告

最新实验三单表查询实验报告实验目的:本实验旨在通过实践操作,加深对数据库查询语言(SQL)中JOIN语句的理解,特别是掌握内连接(INNER JOIN)、左连接(LEFT JOIN)、右连接(RIGHT JOIN)的使用,并通过三个表的查询操作,提高解决复杂数据问题的能力。

实验环境:- 数据库管理系统:MySQL- 开发工具:MySQL Workbench- 操作系统:Windows 10实验内容:1. 首先,创建三个表:学生表(Students)、课程表(Courses)、成绩表(Scores)。

2. 在学生表中定义学生的基本信息,如学号、姓名、年龄等。

3. 在课程表中定义课程的基本信息,如课程号、课程名、学分等。

4. 在成绩表中记录学生的选课信息和成绩。

5. 使用INNER JOIN查询所有学生的姓名及其所选课程和成绩。

6. 使用LEFT JOIN查询所有学生的所有选课记录,包括未选课程的记录。

7. 使用RIGHT JOIN查询所有课程及选课学生的姓名和成绩。

实验步骤:1. 设计表结构:- 学生表(Students):学号(ID)、姓名(Name)、年龄(Age) - 课程表(Courses):课程号(CourseID)、课程名(CourseName)、学分(Credit)- 成绩表(Scores):学号(StudentID)、课程号(CourseID)、成绩(Score)2. 插入测试数据:- 向学生表、课程表和成绩表中插入适量的测试数据。

3. 执行查询操作:- 内连接查询:```sqlSELECT , Courses.CourseName, Scores.ScoreFROM StudentsINNER JOIN Scores ON Students.ID = Scores.StudentIDINNER JOIN Courses ON Scores.CourseID = Courses.CourseID; ```- 左连接查询:```sqlSELECT , Courses.CourseName, Scores.ScoreFROM StudentsLEFT JOIN Scores ON Students.ID = Scores.StudentIDLEFT JOIN Courses ON Scores.CourseID = Courses.CourseID; ```- 右连接查询:```sqlSELECT , Courses.CourseName, Scores.ScoreFROM StudentsRIGHT JOIN Scores ON Students.ID = Scores.StudentIDRIGHT JOIN Courses ON Scores.CourseID = Courses.CourseID; ```实验结果:- 内连接查询结果显示了所有学生的姓名、所选课程和成绩。

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

实验三SQL语言查询功能—单表查询
实验目的:
1)理解查询的原理
2)熟练投影查询、带条件的查询、多条件查询、分组查询
实验内容:
1、查询全部的学生信息
select*from学生
2、查询与张佳吟的信息,列出其学号,姓名
select学号,姓名from学生where姓名='张佳吟'
3、查询选修了课程的学生信息,列出其学号
select distinct学号from成绩
4、查询所有入学成绩在500分以上的男生信息
select*from学生where性别='男'and入学成绩>=500
5、查询年龄为20岁和21岁的学生,列出学号,姓名,年龄
select学号,姓名,2012-YEAR(出生日期)as年龄from学生where 2012-YEAR(出生日期)=20 or 2012-YEAR(出生日期)=21
6、查询年龄在20-23岁之间的学生信息
select*from学生where 2012-YEAR(出生日期)between 20 and 23
7、分别统计男生和女生的人数
select COUNT(性别)as人数,性别from学生group by性别
8、统计选过课程的学生人数
select COUNT(distinct(学号))as人数from成绩
9、统计每门选课成绩的平均分
select课程号,AVG(成绩)as平均分from成绩group by课程号
10、统计选课成绩在80分以上的每门课程的学生人数
select课程号,count(*)as人数from成绩where成绩>=80 group by课程号11、统计每个学生所有课程的总分,平均分,按照平均分降序排列
select学号,SUM(成绩)as总分,AVG(成绩)as平均分from成绩group by学号order by平均分。

相关文档
最新文档