实验2 数据库的单表查询
数据库原理及应用 数据库查询 实验二
《数据库原理及应用》实验报告实验名称数据库查询实验室502 实验日期求选修了课程的学生学号。
Use 学生课程GoSelect 学号from 学生where 学号in (select 学号from where 课程号 is not null)求选修1102课程的学生学号和成绩,并要求对查询结果按成绩的降序排列,如果成绩相同则按学号的升序排列。
Use 学生课程GoSelect 学号,成绩 from 课程,选课 where 课程.课程号and 课程号=1102 order by 成绩 desc,学号 asc求选修课程1102且成绩在80~90分之间的学生学号和成绩,并将成绩乘以系数0.8输出。
Use 学生课程GoSelect 学号,成绩*0.8 as 成绩 from选课 where 成绩 between 80 and求数学系或计算机系姓张的学生的信息。
Use 学生课程GoSelect * from 学生,课程,选课 where 学生.学号=选课.学号 and 课程号=课程.课程号and 姓名like ’张%’and (所在系=’数学’在系=’计算机’)求缺少了成绩的学生的学号和课程号。
Use 学生课程GoSelect 学号,课程号 from 选课 where 成绩 is null连接查询实验语句在“学生选课”数据库中实现下列数据连接查询操作。
查询每个学生的情况以及他(她)所选修的课程。
Use 学生课程GoSelect * from 学生,选课,课程 where 学生.学号=选课.学号课程号=课程.课程号求学生的学号、姓名、选修的课程名及成绩。
Use 学生课程GoSelect 学号,姓名,课程名,成绩 from 学生,选课,课程 where学生求选修1105课程且成绩为90分以上的学生学号、姓名及成绩。
Use 学生课程GoSelect 学号,姓名,成绩 from 学生,选课 where 学生.学号=选课and 课程号=1105 and 成绩>90查询每门课的选课人数。
数据库系统概论实验二
《数据库系统概论》第二次实验实验题目:数据库中数据的查询实验目的:学会使用SQL语言进行各种类型的查询,理解各种查询的异同及相互之间的转换。
实验类型:验证实验内容:练习单表查询、嵌套查询、连接查询及集合查询操作步骤:1)打开实验1建立的数据库2)在SQL Server管理器中完成以下单表查询语句查询全体学生的姓名及其出生年份select Sname,2016-SageBirthYearfrom Student;查询选修了课程的学生学号(去掉重复行)selectdistinct Snofrom SC;查询年龄不在20~23岁之间的学生姓名、系别和年龄select Sname,Sdept,Sagefrom Studentwhere Sage>23 or Sage<20/* where Sage NOT BETWEED 20 AND 23; */查询既不是IS、MA,也不是CS系学生的姓名和性别select Sname,Ssexfrom Studentwhere Sdept NOTIN('IS','MA','CS');查询所有姓刘的学生的姓名、学号和性别select Sname,Sno,Ssexfrom Studentwhere Sname LIKE'刘%'查询选修了3号课程的学生的学号及其成绩,结果按分数的降序排列select Sno,Gradefrom SCwhere Cno='3'ORDERBY Grade DESC;计算1号课程的学生平均成绩select AVG(Grade)avggradeFrom SCwhere Cno='1'查询选修了3门以上课程的学生学号select Snofrom SCGROUPBY SnoHAVING COUNT(*)>3;/*3门以上,不包括三门。
好吧。
数据库查询实验报告doc
4. 查询分析器及利用方式。
查询分析器是在开发数据库应用
系统时利用最多的工具。查询分析器的
要紧作用是编辑Transact-SQL,将其发
送到效劳器,并将执行结果及分析显示
出来(或进行存储)。查询分析功能主
要通过测试查询本钱,判定该查询是不是
from 学生表,班级表
where 学生表.班级编号=班级表.班级编号
and 学号 in(
select 学号
from 选课表
where 课程编号 in (
select 课程编号
from 课程表
where 课程名='数据库'
)
);
/*查询学生XX15121选修课程的总学分。*/
SELECT SUM(学分) 总学分
)=(select count(*) from course)
--法三
select Sname
from student
where Sno in
(
selhaving count(*) = (select count(*) from course)
)
--(11)求选修了学生“”所选修的全数课程的学生学号和姓名。
where cno not in
(
select cno from student s,sc
where s.sno=sc.sno and sname like '王%' and co=sco
)
--(10)查询选修了全数课程的学生的姓名。(请至少写出两种查询语句)
--法一
select Sname
from student s
实验:数据库单表查询
实验:数据库单表查询一、实验目的1.掌握SELECT语句的基本语法和查询条件表示方法;2.掌握查询条件表达式和使用方法;3.掌握GROUP BY 子句的作用和使用方法;4.掌握HAVING子句的作用和使用方法;5.掌握ORDER BY子句的作用和使用方法。
二、实验环境已安装SQL Server 2005 企业版的计算机;具有局域网环境,有固定IP;三、实验学时2学时四、实验要求1.了解数据库查询;2.了解数据库查询的实现方式;3.完成实验报告;五、实验内容及步骤以《实验:管理SQL Server表数据》数据库中数据为基础,请使用T-SQL 语句实现以下操作:1.列出所有不姓刘的所有学生;GOselect*from studentwhere sname not like'刘%'2.列出姓‚沈‛且全名为3个汉字的学生;USE studentGOselect*from studentwhere sname like'王_[^ ]'3.显示在1985年以后出生的学生的基本信息;GOselect*from studentwhere sage<(year(getdate())-1985)4.按照‚性别、学号、姓名、年龄、院系‛的顺序列出学生信息,其中性别按以下规定显示:性别为男显示为男生,性别为女显示为女生,其他显示为‚条件不明‛;USE studentGOselect ssex=case ssexwhen'男'then'男生'when'女'then'女生'else'条件不明'end,sno,sname,sage,sdeptfrom student5.查询出课程名含有‚数据‛字串的所有课程基本信息;USE studentGOselect*from coursewhere cname like'%数据%'6.显示学号第八位或者第九位是1、2、3、4或者9的学生的学号、姓名、性别、年龄及院系;USE studentGOselect sno,sname,ssex,sage,sdept from studentwhere sno like'_______[1-4,9]%'or sno like'________[1-4,9]'7.列出选修了‘1’课程的学生,按成绩的降序排列;USE studentGOselect student.sno,sname,ssex,sage,sdept,grade from student,scwhere cno=1 and student.sno=sc.snoorder by grade DESCGO8.列出同时选修‚1‛号课程和‚2‛号课程的所有学生的学号;USE studentGOselect a.sno from sc a,sc bwhere o=1 and o=2 and a.sno=b.sno9.列出课程表中全部信息,按先修课的升序排列;USE studentgoselect*from courseorder by cpno ASCGo10.列出年龄超过平均值的所有学生名单,按年龄的降序显示;USE studentgoselect*from studentwhere sage>(select avg(sage)from student)order by sage DESC11.按照出生年份升序显示所有学生的学号、姓名、性别、出生年份及院系,在结果集中列标题分别指定为‚学号,姓名,性别,出生年份,院系‛;USE studentgoselect sno 学号,sname 姓名,ssex 性别,(year(getdate())-sage)出生年份,sdept 院系from studentorder by(year(getdate())-sage)ASC12.按照院系降序显示所有学生的‚院系,学号、姓名、性别、年龄‛等信息,其中院系按照以下规定显示:院系为CS显示为计算机系,院系为IS显示为信息系,院系为MA显示为数学系,院系为EN显示为外语系,院系为CM显示为中医系,院系为WM显示为西医系,其他显示为院系不明;USE studentgoselect院系=case sdeptwhen'CS'then'计算机系'when'IS'then'信息系'when'MA'then'数学系'when'EN'then'外语系'when'CM'then'中医系'when'WM'then'西医系'else'院系不明'end, sno 学号,sname 姓名,ssex 性别,sage 年龄from studentorder by sdept DESC13.显示所有院系(要求不能重复,不包括空值),并在结果集中增加一列字段‚院系规模‛,其中若该院系人数>=5则该字段值为‚规模很大‛,若该院系人数大于等于4小于5则该字段值为‚规模一般‛,若该院系人数大于等于2小于4则该字段值为‚规模稍小‛,否则显示‚规模很小‛;USE studentgoselect distinct'院系'=sdept,'院系规模'=casewhen count(*)>=5 then'规模很大'when count(*)>=4 and count(*)<5 then'规模一般'when count(*)>=2 and count(*)<4 then'规模稍小'else'规模很小'end from studentgroup by sdept14.按照课程号、成绩降序显示课程成绩在70-80之间的学生的学号、课程号及成绩;USE studentgoselect sno,cno,grade from scwhere grade between 70 and 80order by cno DESC,grade DESCgo15.显示学生信息表中的学生总人数及平均年龄,在结果集中列标题分别指定为‚学生总人数,平均年龄‛;USE studentgoselect'学生总人数'=count(*),'平均年龄'=A VG(sage)from student16.显示选修的课程数大于3的各个学生的选修课程数;USE studentgoselect sno 学号,'选修课程数'=count(cno)from scgroup by snohaving count(cno)>317.按课程号降序显示选修各个课程的总人数、最高成绩、最低成绩及平均成绩;use studentgoselect distinct cno,'选修人数'=count(sno),'最高成绩'=MAX(grade),'最低成绩'=MIN(grade),'平均成绩'=A VG(grade)FROM scgroup by cnoorder by cno DESC18.显示平均成绩大于‚200515001‛学生平均成绩的各个学生的学号、平均成绩;use studentgoselect sno 学号,'平均成绩'=avg(grade)from scgroup by snohaving avg(grade)>(select avg(grade)from scwhere sno='200515001')19.显示选修各个课程的及格的人数、及格比率;use studentgoselect distinct cno ,'及格人数'=sum(case when grade>60 then 1 else 0 end),'及格比率'=sum(case when grade>60 then 1 else 0 end)/count(*)from scgroup by cno20.显示选修课程数最多的学号及选修课程数最少的学号;use studentgoselect distinct'学修课程最多的学号'=sno,'选修课程数'=count(cno)from scgroup by snohaving count(cno)>=all(select count(cno)from scgroup by sno)select distinct'学修课程最少的学号'=sno,'选修课程数'=count(cno)from scgroup by snohaving count(cno)<=all(select count(cno)from scgroup by sno)21.显示各个院系男女生人数,其中在结果集中列标题分别指定为‚院系名称、男生人数、女生人数‛;use studentgoselect distinct sdept 院系名称,'男生人数'=sum(case ssex when'男'then 1 else 0 end), '女生人数'=sum(case ssex when'女'THEN 1 ELSE 0 end)from STUDENTgroup by sdept22.列出有二门以上课程(含两门)不及格的学生的学号及该学生的平均成绩;USE studentgoselect distinct'不及格学生学号'=sno,'平均分数'=avg(grade)from sc group by snohaving sum(case when grade<60 then 1 else 0 end)>=2六、出现问题及解决办法如:某些查询操作无法执行,如何解决?。
数据库实验二数据查询
实验4 数据查询一、实验目的1.掌握SELECT语句的基本语法和查询条件的表示方法;2.掌握连接查询的表示方法;3.掌握嵌套查询的表示方法;4.掌握数据汇总的方法;5.掌握ORDER BY子句的作用和使用方法;6.掌握HAVING子句的作用和使用方法;二、实验内容使用SELECT查询语句,在数据库StudentCourse的Student表、Course 表和StuCourse 表上进行各种查询,包括单表查询、连接查询、嵌套查询,并进行数据汇总,以及使用GROUP BY子句、ORDER BY子句和HAVING子句对结果进行分组、排序和筛选处理。
1.SELECT语句的基本使用;2.连接查询;3.嵌套查询;4.数据汇总;5.使用GROUP BY 子句对结果分组;6.使用ORDER BY子句对结果排序;7.使用HAVING子句对分组结果进行筛选;思考与练习:1.用SELECT语句查询Course表和StuCourse表中的所有记录。
SQL语句:select * from Course;select * from StuCourse;实验结果:2.用SELECT语句查询Course表和StuCourse表中满足指定条件的一列或若干列。
SQL语句:select 课程号,课程名 from Course where 学分=5;select 学号,课程号 from StuCourse where 成绩>80;实验结果:3.查询所有姓名中包含有“红”的学生的学号及姓名。
SQL语句:select 学号,姓名 from Student where 姓名 like '%红%';实验结果:4.用连接查询的方法查找所有选修了“2001” 或“1002”号课程的学生学号和姓名。
SQL语句:selectdistinct Student.学号,姓名from StuCourse,Studentwhere(课程号='1002'or 课程号='2001')and StuCourse.学号=Student.学号;实验结果:5.用子查询的方法查找所有选修了“2001”或“1002”号课程的学生学号和姓名。
数据库原理实验2数据查询
课程名称数据库原理实验序号 2实验项目数据查询实验地点实验学时实验类型验证性指导教师实验员专业班级学号姓名年月日成绩:A教师该学生本次实验的内容丰富,完成的操作步骤详细具体,实验结果正确,在实验报告的填写中态度十分严谨,对数据分析有自己的见解。
四、实验过程(实验步骤、记录、数据、分析)实验准备:在实验一的基础上(包括数据库的建立、定义表和添加表内容)进行实验,下面分别为depts表、students表、courses表、reports表。
一、简单的选择与投影查询1、无条件查询1.1查询全体学生的详细记录。
这是一个无条件的选择查询,其命令为:其命令为:select * from students运行结果如右图,显示整张表的内容。
1.2查询全体学生的姓名(Sname)、学号(Sno)、所在系(dno)。
这是一个无条件的投影查询,其命令为:select sname,ssexfrom students运行结果如右图,显示了表中的三列。
1.3查询全体学生的姓名(Sname)、出生年份及学号(Sno)。
其命令为:select sno,sname,2017-sage as birth from students运行结果如右图,显示了三列内容。
1.4查询全体学生的姓名、出生年份和学号,要求用小写字母表示学号中的字母。
其命令为:select sname,'birth:' title,YEAR(GETDATE())-sagebirthyear,LOWER(sno) lsnofrom students运行结果如右图,显示了四列内容。
1.5查询选修了课程的学生学号。
其命令为:select distinct snofrom reports运行结果如右图,distinct短语是为了消去查询结果中的重复值。
2、条件查询(1)比较条件1.1查询d03系全体学生的学号(Sno)和姓名(Sname)。
其命令为:select sno,snamefrom studentswhere dno='d03'运行结果如右图,显示了d03系的全体学生姓名与学号。
数据库实验答案实验二Sql
(1) 查找有销售记录的客户编号、名称和订单总额。
命令:SELECT a.CustomerNo,CustomerName, sum(quantity*price) orderSumFROM OrderMaster a,OrderDetail b,Customer cWHERE b.orderNo=a.orderNo AND c.CustomerNo=a.CustomerNoGROUP BY a.CustomerNo,CustomerNameORDER BY a.CustomerNo,orderSum DESC(2) 在订单明细表中查询订单金额最高的订单。
命令:SELECT top 1 orderNo,sum(quantity*price)订单金额FROM OrderDetailGROUP BY orderNoORDER BY 订单金额DESC(3) 查询没有订购商品的客户编号和客户名称。
命令:SELECT CustomerNo,CustomerNameFROM CustomerWHERE CustomerNo NOT IN (SELECT CustomerNo FROM OrderMaster)(4) 找出至少被订购3次的商品编号、订单编号、订货数量和订货金额,并按订货数量的降序排序输出。
命令:SELECT a.productNo,orderNo,quantity,(quantity*price) moneyFROM OrderDetail a,(SELECT productNoFROM OrderDetailGROUP BY productNoHA VING COUNT(*)>=3) bWHERE a.productNo =b.productNoORDER BY a.productNo,quantity DESC被订购三件以上的……SELECT b.ProductNo,orderNo,quantity,orderSum=quantity*priceFROM OrderDetail b,(SELECT ProductNo FROM(SELECT ProductNo,sum(quantity)SQfrom OrderDetail GROUP BY ProductNo)aWHERE a.SQ>3)cWHERE b.ProductNo=c.ProductNoORDER BY b.quantity DESC(5) 使用子查询查找32M DRAM的销售情况,要求显示相应的销售员的姓名、性别,销售日期、销售数量和金额,其中性别用“男”、“女”表示。
数据库实验报告二 单表查询
实验二单表查询【实验目的】掌握单表查询语句的使用,主要包括选择、投影运算,以及精确查询、模糊查询和分组查询、排序等内容。
【实验内容】在实验一的基础上完成以下实验内容。
(1)(选择表中的若干列) 求全体学生的学号、姓名、性别和年龄。
(2)(不选择重复行) 求选修了课程的学生学号。
(3)(选择表中的所有列) 求全体学生的详细信息。
(4)(使用表达式) 求全体学生的学号、姓名和出生年份。
(5)(使用列的别名) 求学生的学号和出生年份,显示时使用别名“学号”和“出生年份”。
(6)(比较大小条件) 求年龄大于19岁的学生的姓名和年龄。
(7)(比较大小条件) 求计算机系或信息系年龄大于18岁的学生的姓名、系和年龄。
(8)(确定范围条件) 求年龄在19岁与22岁(含20岁和22岁)之间的学生的学号和年龄。
(9)(确定范围条件) 求年龄不在19岁与22岁之间的学生的学号和年龄。
(10)(确定集合条件) 求在下列各系的学生信息:数学系、计算机系。
(11)(确定集合条件) 求不是数学系、计算机系的学生信息。
(12)(模糊查询) 求姓名是以“李”打头的学生。
(13)(模糊查询) 求姓名中含有“志”的学生。
(14)(模糊查询) 求姓名长度至少是三个汉字且倒数第三个汉字必须是“马”的学生。
(15)(模糊查询) 求选修课程001或003,成绩在80至90之间,学号为96xxx的学生的学号、课程号和成绩。
(16)(涉及空值查询) 求缺少学习成绩的学生的学号和课程号。
(17)(17)(控制行的显示顺序) 求选修001课程的学生的学号、课程号和分数,结果按分数降序排序。
(18)(组函数) 求学生总人数。
(19)(组函数) 求选修了课程的学生人数。
(20)(组函数) 求计算机系学生的平均年龄。
(21)(组函数) 求选修了课程001的最高、最低与平均成绩。
(22)(分组查询) 求各门课程的平均成绩与总成绩。
(23)(分组查询) 求各门课程的平均成绩与总成绩,结果按总成绩排序。
实验2SQL语言—SELECT查询操作
实验2SQL 语⾔—SELECT 查询操作实验2 SQL 语⾔—SELECT 查询操作实验⽬的要求掌握SQL 程序设计基本规范,熟练运⽤SQL 语⾔实现数据基本查询,包括单表查询、分组统计查询和连接查询。
掌握SQL 嵌套查询和集合查询等各种⾼级查询的设计⽅法等。
要求学⽣掌握SQL Server 查询分析器和T -SQL 语⾔的使⽤⽅法,熟练掌握和使⽤简单表的数据查询﹑数据排序和数据连接查询﹑嵌套查询等操作⽅法。
实验仪器设备学⽣每个⼀台PC 机已安装SQL Server 环境实验主要内容针对SQL Server 数据库设计各种单表查询语句、分组统计查询语句;设计单个表针对⾃⾝的连接查询,设计多个表的连接查询。
理解和掌握SQL 查询语句各个⼦句的特点和作⽤,按照SQL 程序设计规范写出具体的SQL 查询语句,并调试通过。
针对SQL Server 数据库,正确分析⽤户查询要求,设计各种嵌套查询和集合查询。
本次实验基于图书发⾏数据库系统,进⾏实验实验原理# 单表查询单表查询是指仅涉及⼀个表的查询SELECT ⼦句后⾯不仅可以是表中的属性列,还可以是表达式、字符串常量、函数:取消取值重复的⾏|保留取值重复的⾏将DISTINCT 换成ALL ,不加则默认ALL 换码、通配符 和对⼀个或多个属性列进⾏排序,⼦句| |ASC 升序,DESC 降序聚集函数(放在SELECT 后⾯)GROUP BY ⼦句:将查询结果按某⼀列或多列的值进⾏分组,值相等的为⼀组:作⽤于组,从中选择满⾜条件的组# 连接查询⼀个查询同时涉及两个及以上表的称为连接查询,属性列名前⾯加上表名,即SC.Sno 等值连接查询连接运算符为=时称为等值连接⾮等值连接查询连接运算符不是=时称为⾮等值连接⾃然连接若在等值连接中把⽬标列中重复的属性列去掉则为⾃然连接单个表的⾃⾝连接查询多表连接# 嵌套查询将⼀个查询块嵌套在另⼀个查询块的WHERE ⼦句或者HAVING 短语的条件中的查询称为嵌套查询⼦查询带有IN 谓词的⼦查询带有⽐较运算符的⼦查询带有ANY(SOME)或ALL 谓词的⼦查询带有EXIST 谓词的⼦查询# 集合查询集合操作主要包括并操作UNION 、交操作INTERSECT 和差操作EXCEPT实验记录# 检索L1从书店S1购买的图书的书号及其册数;DISTINCT SELECT DISTINCT LNO %_ESCAPEORDER BY ORDER BY [属性列名] ASC|DESC COUNT(*) --统计元组个数COUNT([DISTINCT|ALL]<列名>) --统计⼀列中值的个数SUM(DISTINCT|ALL]<列名>) --统计⼀列值的总和(必须是数值型)AVG([DISTINCT|ALL]<列名>) --统计⼀列值的平均值(必须是数值型)MAX([DISTINCT|ALL]<列名>) --统计⼀列值的最⼤值MIN([DISTINCT|ALL]<列名>) --统计⼀列值的最⼩值GROUP BY HAVING 查询选修了三门以上课程的学⽣的学号SELECT SNO FROM SC GROUP BY SNO HAVING COUNT(*)>3查询每⼀门课的间接选修课SELECT o,SECOND.Cpno FROM Course FIRST,Course SECOND WHERE FIRST.Cpno=o;查询每个学⽣的学号、姓名、选秀的课程名及成绩(涉及三个表的查询)、SELECT Student.Sno,Sname,Cname,Grade FROM Student,SC,CourseWHERE Student.Sno=SC.Sno AND o=o SELECT BNO,QTY FROM 图书发⾏# 检索馆址在“上海”的图书馆及其电话号码;SELECT LNAME,TELFROM 图书馆WHERE CITY='上海';# 检索L4收藏图书的书名;SELECT 图书.BNAMEFROM 图书,图书发⾏WHERE 图书发⾏.LNO='L4'AND 图书发⾏.BNO=图书.BNO;# 检索S3发⾏的图书书名及数量;SELECT 图书.BNAME,图书发⾏.QTYFROM 图书,图书发⾏WHERE 图书发⾏.SNO='S3'AND 图书发⾏.BNO=图书.BNO;# 检索收藏图书“数据库设计”的馆名;SELECT 图书馆.LNAMEFROM 图书馆,图书发⾏,图书WHERE 图书.BNAME='数据库设计'AND 图书.BNO=图书发⾏.BNOAND 图书馆.LNO=图书发⾏.LNO;# 检索没有购买上海新华书店出售的图书的图书馆号LNO;SELECT LNO,LNAMEFROM 图书馆WHERE LNO NOT IN (SELECT 图书发⾏.LNOFROM 图书发⾏,书店WHERE 图书发⾏.SNO=书店.SNO AND书店.SNAME='上海新华书店');思考题如何提⾼数据查询和连接速度。
2 数据操作语言 DML 实验
二、实验内容与步骤: 1、进入 ORACLE 的环境,进入 scott 用户模式(在 sqldeveloper 中使用 scott 用户连 接 Oracle)。 2、用 Create、Insert 语句建立基本表 S、P、J 和 SPJ ,其中:
(6) 请将 S6 向工程项目 J8 供应 500 个 P7 零件的信息加入到供应关系; 意涉及到几个表的添加元组操作?表的添加顺序如何?)
insert into S(SNO) values('S6'); insert into J(JNO) values('J8'); insert into P(PNO) values('P7'); insert into SPJ values('S6','P7','J8','500');
(6) 找出所有供应商的姓名和所在城市; 代码: select SNAME,CITY from S;
(7) 找出所有零件的名称、颜色、重量; 代码: select PNAME,COLOR,WEIGHT from P;
(8) 找出使用供应商 S1 所供应零件的工程号; 代码: select distinct JNO from SPJ where SNO='S1';
代码: create table S( SNO char(3) primary key, SNAME char(10), STATUS char(10), CITY char(10) ); insert into S values ('S1','精益','20','天津'); insert into S values ('S2','盛锡','10','北京'); insert into S values ('S3','东方红','30','北京'); insert into S values ('S4','丰泰盛','20','天津'); insert into S values ('S5','为民','30','上海');
sql实验二报告资料
数据库原理与应用实验报告实验2、SQL的数据查询2.1实验目的熟悉SQL语句的数据查询语言,能够SQL语句对数据库进行单表查询、连接查询、嵌套查询、集合查询和统计查询。
2.2实验内容实验内容主要是对数据库进行查询操作,包括如下四类查询方式:(1)单表查询●查询的目标表达式为所有列、指定的列或指定的列的运算三种不同。
●使用DISTINCT保留字消除重复行。
●对查询结果排序和分组。
●集合分组使用集函数进行各项统计。
(2)连接查询●笛卡儿连接和等值连接。
●自连接。
●外连接●复合条件连接。
●多表连接。
(3)嵌套查询●通过实验验证对子查询的两个限制条件。
●体会相关子查询和不相关子查询的不同。
●考察四类谓词的用法,包括:第一类,IN、NOT IN;第二类,带有比较运算符的子查询;第三类,SOME、ANY或ALL谓词的子查询,查询最大值和最小值;第四类,带有EXISTS谓词的子查询,实现“所有”等情况(如王宏的“所有”课程,“所有”女生选修的课程)(4)集合运算●使用保留字UNION进行集合或运算。
●采用逻辑运算符AND或OR来实现集合交和减运算。
2.3实验步骤以University_Mis数据库为例,该数据库中有四张来自实验1的表,其中Score是每门课的考试成绩,Scredit是学生所有考试合格课程所获得的积分总数,Ccredit每门课程的学分数。
在数据库中,存在这样的联系:学生可以选择课程,一个课程对应一个教师。
在表Reports中保存学生的选课记录和考试成绩。
请先输入如下符合条件的元组后,再对数据库进行有关的查询操作图1.1、Qidd_Students表图1.2、Qidd_Teachers表图1.3、Qidd_Courses表图1.4、Qidd_Reports表(1)查询性别为“男”的所有学生的名字并按学号升序排列。
(2)查询学生的选课成绩合格的课程成绩,并把成绩换算为积分。
积分的计算公式为:[1+(考试成绩-60)*0.1]*Ccredit。
最新国家开放大学电大《数据库应用技术》实验
最新国家开放大学电大《数据库应用技术》实验实验目的:通过使用SSMS工具,练习对数据库中的数据表进行单表查询、多表连接查询、子查询。
对数据表中的数据进行更改和删除等操作。
实验要求:将相关的SQL 语句和运行结果的截屏保存在文件中,或填写在下面的实验报告中,并通过网络提交。
实验内容:使用SSMS工具,在“可用数据库”中选中Students数据库,完成如下实验。
1.单表查询。
写出实现如下查询的SQL语句。
(1) 查询学生选课表中的全部数据。
(2) 查询计算机系的学生的姓名、年龄。
(3) 查询成绩在70~80分的学生的学号、课程号和成绩。
(4) 查询计算机系年龄在18~20岁男生的姓名、年龄。
(5) 查询C001课程的考试成绩最高分。
(6) 查询计算机系学生的最大年龄和最小年龄。
(7) 统计各系的学生人数。
(8) 统计每门课程的选课人数和考试成绩最高分。
(9) 统计每个学生的选课门数和考试总成绩,并按选课门数升序显示结果。
(10)查询总成绩超过200分的学生,要求列出其学号和总成绩。
(11)查询选课门数超过2门的学生的学号、平均成绩和选课门数。
2.多表连接查询。
写出实现如下查询的SQL语句。
(12) 查询选了C002课程的学生的姓名和所在系。
(13) 查询成绩80分以上的学生的姓名、课程号和成绩,并按成绩降序排列结果。
(14) 查询计算机系男生选修了“数据库基础”的学生的姓名和成绩。
(15) 查询学生的选课情况,要求列出每位学生的选课情况(包括未选课的学生),并列出学生的学号、姓名、课程号和考试成绩。
(16) 查询哪些课程没有人选修,要求列出课程号和课程名。
(17) 查询计算机系没有选课的学生,列出学生的姓名。
3.使用TOP和CASE的查询。
写出实现如下查询的SQL语句。
(18) 列出“数据库基础”课程考试成绩前三名的学生的学号、姓名、所在系和考试成绩。
(19) 查询Java考试成绩最低的学生的姓名、所在系和Java成绩。
实验训练2数据查询操作
实验训练2:数据查询操作实验目的:基于实验1创建的汽车用品网上商城数据库Shopping,理解MySQL运算符、函数、谓词,练习Select语句的操作方法。
实验内容:1.单表查询【实验2.1】字段查询(1)查询商品名称为“挡风玻璃”的商品信息。
分析:商品信息存在于商品表,而且商品表中包含商品名称此被查询信息,因此这是只需要涉及一个表就可以完成简单单表查询。
(2)查询ID为1的订单。
分析:所有的订单信息存在于订单表中,而且订单用户ID也存在于此表中,因此这是只需要查询订单表就可以完成的查询。
【实验2.2】多条件查询查询所有促销的价格小于1000的商品信息。
分析:此查询过程包含两个条件,第一个是是否促销,第二个是价格,在商品表中均有此信息,因此这是一个多重条件的查询。
【实验2.3】DISTINCT(1)查询所有对商品ID为1的商品发表过评论的用户ID。
分析:条件和查询对象存在于评论表中,对此商品发表过评论的用户不止一个,而且一个用户可以对此商品发表多个评论,因此,结果需要进行去重,这里使用DISTINCT实现。
(2)查询此汽车用品网上商城会员的创建时间段,1年为一段。
分析:通过用户表可以完成查询,每年可能包含多个会员,如果把此表中的创建年份都列出来会有重复,因此使用DISTINCT去重。
【实验2.4】ORDER BY(1)查询类别ID为1的所有商品,结果按照商品ID降序排列。
分析:从商品表中可以查询出所有类别ID为1的商品信息,结果按照商品ID的降序排列,因此使用ORDER BY语句,降序使用DESC关键字。
(2)查询今年新增的所有会员,结果按照用户名字排序。
分析:在用户表中可以完成查询,创建日期条件设置为今年,此处使用语句ORDER BY。
【实验2.5】GROUP BY(1)查询每个用户的消费总金额(所有订单)。
分析:订单表中包含每个订单的订单总价和用户ID。
现在需要将每个用户的所有订单提取出来分为一类,通过SUM()函数取得总金额。
数据库实验二:简单查询和连接查询(供河南科技大学学生用)
实验二:简单查询和连接查询一、实验目的:熟练掌握用SQL语句实现的简单查询和多个数据表连接查询。
二、实验内容:(一)完成下面的简单查询:①查询所有“天津”的供应商明细;②查询所有“红色”的14公斤以上的零件。
③查询工程名称中含有“厂”字的工程明细。
(二)完成下面的连接查询:①等值连接:求s表和j表的相同城市的等值连接。
②自然连接:查询所有的供应明细,要求显示供应商、零件和工程的名称,并按照供应、工程、零件排序。
③笛卡尔积:求s和p表的笛卡尔积④左连接:求j表和spj表的左连接。
⑤右连接:求spj表和j表的右连接。
三、完成情况:(一)完成下面的简单查询:①查询所有“天津”的供应商明细;select*from swhere city='天津'②查询所有“红色”的14公斤以上的零件select*from pwhere color='红'andweight>'14'③查询工程名称中含有“厂”字的工程明细select*from jwhere jname like'%厂'(二)完成下面的连接查询:①等值连接:求s表和j表的相同城市的等值连接。
select s.*,j.*from s,jwhere s.city=j.city②自然连接:查询所有的供应明细,要求显示供应商、零件和工程的名称,并按照供应、工程、零件排序。
select sname,jname,pnamefrom s,p,j,spjwhere spj.sno=s.sno andspj.pno=p.pno andspj.jno=j.jno③笛卡尔积:求s和p表的笛卡尔积select*from s,p④左连接:求j表和spj表的左连接select j.jno,jname,city,spj.sno,pno,QTYfrom j left join spj on(j.jno=spj.jno)⑤右连接:求spj表和j表的右连接select j.jno,jname,city,spj.sno,pno,QTYfrom spj right join j on(j.jno=spj.jno)四、实验结果:(一)①查询所有“天津”的供应商明细;②查询所有“红色”的14公斤以上的零件③查询工程名称中含有“厂”字的工程明细(二)①等值连接:求s表和j表的相同城市的等值连接②自然连接:查询所有的供应明细,要求显示供应商、零件和工程的名称,并按照供应、工程、零件排序。
SQL数据库实验报告
数据库实验报告学院:专业:班级:学号:姓名:实验二数据库单表查询一、实验目的1. 掌握SELECT 语句的基本语法和查询条件表示方法;2. 掌握查询条件表达式和使用方法;3. 掌握GROUP BY 子句的作用和使用方法;4. 掌握HAVING 子句的作用和使用方法;5. 掌握ORDER BY 子句的作用和使用方法。
二、实验内容利用数据库进行单表查询。
1). 查询全体学生的学号和姓名;2). 查询全体学生的所有信息;3). 查询全体学生的姓名,出生年份,和所在系,并用小写字母表示所有系名;4). 给上例的结果集指定列名;5). 查询选修了课程的学生的学号;6). 查询年龄在20 岁以下的学生的姓名及其年龄;7). 查询考试成绩有不及格的学生的学号;8). 查询年龄在20-30 岁之间的学生的姓名,性别,所在系;9). 查询IS, CS, MA 系的所有学生的姓名和性别;10). 查找所有姓’李’的学生的姓名, 学号和性别;11). 查询没有先行课的课程的课程号cno 和课程名cname。
三、实验代码及运行结果截图--建立数据库,取名为LilyCREATE DATABASE Lily;--建立学生表,取名为STUDENTCREATE TABLE STUDENT(SNO CHAR(9)PRIMARY KEY,SNAME CHAR(20)UNIQUE,SSEX CHAR(2),SAGE SMALLINT,SDEPT CHAR(20));--向学生表中插入数据INSERT INTO STUDENT VALUES(201215121,'李勇','男',20,'CS'); INSERT INTO STUDENT VALUES(201215122,'刘晨','女',19,'CS'); INSERT INTO STUDENT VALUES(201215123,'王敏','女',18,'MA'); INSERT INTO STUDENT VALUES(201215125,'张立','男',19,'IS');--建立课程表,取名为COURSECREATE TABLE COURSE(CNO CHAR(4)PRIMARY KEY,CNAME CHAR(40)NOT NULL,CPNO CHAR(4),CCREDIT SMALLINT,FOREIGN KEY(CPNO)REFERENCES COURSE(CNO));--向COURSE表中插入数据INSERT INTO COURSE VALUES(2,'数学',null,2);INSERT INTO COURSE VALUES(6,'数据处理',null,2);INSERT INTO COURSE VALUES(7,'PASCAL语言',6,4);INSERT INTO COURSE VALUES(4,'操作系统',6,3);INSERT INTO COURSE VALUES(5,'数据结构',7,4); INSERT INTO COURSE VALUES(1,'数据库',5,4); INSERT INTO COURSE VALUES(3,'信息系统',1,4);--建立选课表,取名SCCREATE TABLE SC(SNO CHAR(9),CNO CHAR(4),GRADE SMALLINT,PRIMARY KEY(SNO,CNO),FOREIGN KEY(SNO)REFERENCES STUDENT(SNO),FOREIGN KEY(CNO)REFERENCES COURSE(CNO) );--向SC表中插入数据INSERT INTO SC VALUES(201215121,1,92); INSERT INTO SC VALUES(201215121,2,85); INSERT INTO SC VALUES(201215121,3,88); INSERT INTO SC VALUES(201215122,2,90); INSERT INTO SC VALUES(201215122,3,80); INSERT INTO SC VALUES(201215122,1,59);--1查询全体学生的学号和姓名SELECT SNO,SNAMEFROM STUDENT--2查询全体学生的全体信息SELECT*FROM STUDENT--3查询全体学生的姓名,出生年份,和所在系,并用小写字母表示所有系名SELECT SNAME,2012-SAGE,LOWER(SDEPT)FROM STUDENT--4给上例的结果指定列名SELECT SNAME,2012-SAGE AS'BIRTHYEAR',LOWER(SDEPT)as'SDEPT'FROM STUDENT--5查询选修了课程的学生的学号SELECT DISTINCT SNOFROM SC--6查询年龄在20岁以下的学生的姓名及其年龄SELECT SNAME,SAGEFROM STUDENTWHERE SAGE<20--7查询考试成绩有不及格学生的学号SELECT SNOFROM SCWHERE GRADE<60--8查询年龄在20-30岁之间的学生的姓名,性别,所在系SELECT SNAME,SSEX,SDEPTFROM STUDENTWHERE SAGE BETWEEN 20 AND 30--9查询IS,CS,MA系的所有学生的姓名和性别SELECT SNAME,SSEXFROM STUDENTWHERE SDEPT IN('IS','CS','MA');--10查找所有姓李的学生的姓名,学号和性别SELECT SNAME,SNO,SSEXFROM STUDENTWHERE SNAME LIKE'李%';--11查询没有先行课的课程的课程号cno和课程名cnameSELECT CNO,CNAMEFROM COURSEWHERE CPNO IS NULL四、实验小结小结:本次实验学习了利用数据库进行单表查询,掌握了简单SQL语句的使用。
实验二-数据的查询、更新
实验二数据的查询、更新一、实验目的1、掌握用户自定义数据类型的方法2、掌握用T-SQL语句进行数据的插入、修改、删除的方法3、熟练掌握SELECT语句,能够运用该语句完成各种查询二、实验要求1、实验前做好上机实验的准备,针对实验内容,认真复习与本次实验有关的知识,完成实验内容的预习准备工作;2、能认真独立完成实训内容;3、实验后做好实验总结,根据实验情况完成总结报告。
三、实验内容1、用T-SQL语句,创建一用户自定义数据类型:名称为“char20”,数据类型为varchar,长度为20,允许为空。
sp_addtype char20,'varchar(20)',null提示:sp_addtype [@typename=]用户自定义类型的名字[, @phystype=]系统类型名[, [@nulltype=] ' not null | null '] [, [@owner=] '拥有该类型的用户名'] 例:自定义一个名为address的类型,其所属系统类型为varchar,长度为80,不能为空。
sp_addtype address,' varchar(80)', ' not null '2、用T-SQL语句,建立一个“学生课程数据库”,在此基础上建立该数据库包含的学生表,课程表,学生选修表,并向各表插入如下相应的数据。
create database学生课程数据库学生表:Student(Sno,Sname,Ssex,Sage,Sdept) 其中Sno 为主键、Ssex取值为男或女、SageSno Sname Ssex Sage Sdept95001 李敏勇男20 CS95002 刘晨女19 IS95003 王敏女18 MA95004 张立男18 IScreate table student(sno int primary key,sname char(10),ssex char(2)constraint ssex_ch check(ssex in('男','女')),sage int constraint sage_ch check(sage>=15 andsage<=30),sdept char(10))insert into studentvalues(95001,'李敏勇','男',20,'CS')insert into studentvalues(95002,'刘晨','女',19,'IS')insert into studentvalues(95003,'王敏','女',18,'MA')insert into studentvalues(95004,'张立','男',18,'IS')课程表:Course(Cno,Cname,Cpno,Credeit,remarks) 其中Cno为主键、Teacher的类型为Cno Cname Cpno Credit Teacher1 数据库 5 4 王芳2 数学NULL 2 刘新3 信息系统 14 刘新4 操作系统 6 3 高升5 数据结构7 4 宋明6 数据处理NULL 2 张彬7 Pascal语言 6 4 李磊create table course(cno int primary key,cname char(15),cpno int null,credit int,teacher char20)insert into coursevalues(1,'数据库',5,4,'王芳')insert into coursevalues(2,'数学',NULL,2,'刘新')insert into coursevalues(3,'信息系统',1,4,'刘新')insert into coursevalues(4,'操作系统',6,3,'高升')insert into coursevalues(5,'数据结构',7,4,'宋明')insert into coursevalues(6,'数据处理',NULL,2,'张彬')insert into coursevalues(7,'PASCAL语言',6,4,'李磊')学生选修表:SC(Sno,Cno,Grade) 其中Sno,Cno为主键同时又为外键、Grade值在0到100;Sno Cno Grade95001 1 9295001 2 8595001 3 8895002 2 9095003 2 5595004 2 70create table sc(sno int,cno int,grade int constraint grade_ch check(grade between 0 and100),primary key(sno,cno),constraint fk_sno foreign key (sno)references student(sno),constraint fk_cno foreign key (cno)references course(cno),)insert into scvalues(95001,1,92)insert into scvalues(95001,2,85)insert into scvalues(95001,3,88)insert into scvalues(95002,2,90)insert into scvalues(95003,2,55)insert into scvalues(95004,2,70)3、用T-SQL语句,修改上面所建学生课程数据库中数据:1) 向学生表:Student中加入一条记录:(95030,谢非,男,22,CS)并保存insert into studentvalues(95030,'谢非','男',22,'CS')2) 将李敏勇的数据库的成绩改为98分update scset grade=98where o=(select ofrom coursewhere ame='数据库'and sno=(select snofrom studentwhere sname='李敏勇'))3) 删除学生表Student中谢非的记录并保存deletefrom studentwhere sname='谢非'4) 能不能从Student表中删除李敏勇学生的记录,为什么?能不能删除王敏, 张立两个学生的记录?不能, sc表中列sno是外码,参照student表的sno列。
实验二-单表查询(2012)
实验二单表查询学号:20103191姓名:王晓燕专业:应用物理、实验目的掌握简单SQL查询语句的应用,包括like、top、order by、compute、聚集函数的应用。
、实验内容请在上次实验所建的数据库上实现下列查询练习,并抓图显示其查询结果。
1、基本查询(1)查询Student表中全体学生的全部信息。
结果:(2)检索全体学生的学号、姓名。
结果:班级:sw希罢井丄BMhUD.2、查询时改变列标题的显示检索全体学生的学号、姓名、家庭地址信息,并分别加上 的别名信息。
结果:■臥 jTifkHUlA.Q» QQ 丈静ID心 网魁 矍™;① u 目油 工且(xi■口(凹 甘庇;口 网心.SLT I ti L.> [ d L :l J d J d 已鼻 V f ■T孰研凶■ v | : *u a&i D 3E 机#血苛4 丫缶站护 返曙(2>・ 土 Jd 丄茗主r= r j Jf^T-fift 辿 I oi CGhJri err Jrio UHU kqFh_djR 馬 >tl*T“n ZD :a3L ?L5ti_£erf rirahtr鼻粳4 j 竝畑 e J *fl 'jaurce F 1to-X .* JLfl ■ z丄NE _i STffl ;^ _j 萍 Utj ®irt a -牡H B ._-i ™ fl ww d 占M 」LS*ig 他«l i- H 2O1Q31.. MULUwrZ.Hl 11I select 勺即。
5D aiie =££4)mc.ge ■口x ;二"学生”学号”家庭地址«*fc rmirfC Zrivr3、条件查询(1)查询成绩大于80分的学生的学号及课程号、成绩。
结果朝翻J - 1行i Ch»Iw 4MM| f ^-. ] ?m, ,. HArMc^ifQLUvhN*...出…,或宅祖E卫|疔耳00邮(L:i) 皿」皿・2沌Q0 CD OD 1 Fa TMfliW Ci 酋U 1/ 5■i 証fi』越山九机#z苛4 rh 3茹lil 11hi iSl€io>-匀JS t twto *・越于|£,^1厂些之。
数据库系统原理及应用答案.
数据库系统原理及应用实验指导书(本科)福建工程学院计算机与信息科学系目录实验一数据定义语言 (2)实验二SQL Sever中的单表查询 (5)实验三SQL Serve中的连接查询 (8)实验四SQL Serve的数据更新、视图 (11)实验五数据控制(完整性与安全性) (16)实验六语法元素与流程控制 (19)实验七存储过程与用户自定义函数 (23)实验八触发器 (27)实验一数据定义语言一、实验目的1.熟悉SQL Server2000/2005查询分析器。
2.掌握SQL语言的DDL语言,在SQL Server2000/2005环境下采用Transact-SQL实现表的定义、删除与修改,掌握索引的建立与删除方法。
3.掌握SQL Server2000/2005实现完整性的六种约束。
二、实验内容1.启动SQL Server2000/2005查询分析器,并连接服务器。
2.创建数据库: (请先在D盘下创建DB文件夹)1)在SQL Server2000中建立一个StuDB数据库:有一个数据文件:逻辑名为StuData,文件名为“d:\db\StuDat.mdf”,文件初始大小为5MB,文件的最大大小不受限制,文件的增长率为2MB;有一个日志文件,逻辑名为StuLog,文件名为“d:\db\StuLog.ldf”,文件初始大小为5MB,文件的最大大小为10MB,文件的增长率为10%2)刷新管理器查看是否创建成功,右击StuDB查看它的属性。
3.设置StuDB为当前数据库。
4.在StuDB数据库中作如下操作:设有如下关系表S:S(CLASS,SNO, NAME, SEX, AGE),其中:CLASS为班号,char(5) ;SNO为座号,char(2);NAME为姓名,char(10),设姓名的取值唯一;SEX为性别,char(2) ;AGE为年龄,int,表中主码为班号+座号。
写出实现下列功能的SQL语句。
实验训练2:数据查询操作
实验二MySQL数据库操作实验实验目的:基于实验1创建的汽车用品网上商城数据库Shopping,理解MySQL 运算符、函数、谓词,练习Select语句的操作方法。
实验内容:1.单表查询【实验2.1】字段查询(1)查询商品名称为“挡风玻璃”的商品信息。
分析:商品信息存在于商品表,而且商品表中包含商品名称此被查询信息,因此这是只需要涉及一个表就可以完成简单单表查询。
(2)查询ID为1的订单。
分析:所有的订单信息存在于订单表中,而且订单用户ID也存在于此表中,因此这是只需要查询订单表就可以完成的查询。
【实验2.2】多条件查询查询所有促销的价格小于1000的商品信息。
分析:此查询过程包含两个条件,第一个是是否促销,第二个是价格,在商品表中均有此信息,因此这是一个多重条件的查询。
【实验2.3】DISTINCT(1)查询所有对商品ID为1的商品发表过评论的用户ID。
分析:条件和查询对象存在于评论表中,对此商品发表过评论的用户不止一个,而且一个用户可以对此商品发表多个评论,因此,结果需要进行去重,这里使用DISTINCT实现。
(2)查询此汽车用品网上商城会员的创建时间段,1年为一段。
分析:通过用户表可以完成查询,每年可能包含多个会员,如果把此表中的创建年份都列出来会有重复,因此使用DISTINCT去重。
【实验2.4】ORDER BY(1)查询类别ID为1的所有商品,结果按照商品ID降序排列。
分析:从商品表中可以查询出所有类别ID为1的商品信息,结果按照商品ID的降序排列,因此使用ORDER BY语句,降序使用DESC关键字。
(2)查询今年新增的所有会员,结果按照用户名字排序。
分析:在用户表中可以完成查询,创建日期条件设置为今年,此处使用语句ORDER BY。
【实验2.5】GROUP BY(1)查询每个用户的消费总金额(所有订单)。
分析:订单表中包含每个订单的订单总价和用户ID。
现在需要将每个用户的所有订单提取出来分为一类,通过SUM()函数取得总金额。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验2 数据库的单表查询、分组查询与聚集函数的使用
一、实验目的
本实验的目的是使学生熟悉SQL Server Management Studio的使用方法。
加深对SQL语言的查询语句的理解。
熟练掌握数据库的单表查询(包括投影、选择条件表达,数据排序,模糊查询等), 熟练掌握数据库的分组、统计、计算和集合的操作方法。
二、实验时数2学时
三、实验内容
1.简单的SELECT查询
1)查询雇员表Empl中所有员工的详细信息,并且列名用汉字表示。
select*from EMPL
select ENO 员工编号, ENAME 员工姓名, BIRTHDATE 出生日期, SALARY 工资,
DNO 所在部门编号from EMPL;
2)查询项目表Proj中所有项目的详细信息,并且列名用汉字表示。
select PNO 项目编号,PNAME 项目名称from PROJ;
2.使用WHERE子句进行查询
1)查询雇员表Empl中李强的员工编号。
select ENO from EMPL
where ENAME='李强'; 注没有李强的信息
2)查询项目表Proj中项目编号为“101”的项目名称。
select*from EMPL
select PNAME from PROJ
where PNO='101'; 没有101的信息
3.使用DISTINCT关键字去掉重复行
1)查询雇员表Empl中出现的所有部门编号,要求无重复。
select distinct(DNO)from EMPL;
2)查询工作表Job中参与过项目开发的所有员工编号,要求无重复。
SELECT DISTINCT(ENO)FROM JOB WHERE DAYS>0;
4.使用ORDER BY子句对查询结果进行排序
1)查询雇员表Empl中所有员工的详细信息,结果按员工姓名降序排列。
SELECT*FROM EMPL ORDER BY ENAME DESC;
2)查询工作表Job中的工作信息,结果按工作天数升序排列。
SELECT*FROM JOB ORDER BY DAYS ASC;
5.使用LIKE子句进行模糊查询
1)查询所有姓王的员工的编号及姓名,并且以员工编号及员工姓名作为列名。
SELECT ENO 员工编号,ENAME 员工姓名FROM EMPL WHERE ENAME LIKE'王%';
2)查询雇员表Empl中姓名以“伟”字结尾的员工信息。
SELECT*FROM EMPL WHERE ENAME LIKE'%伟';
6.使用聚集函数MIN、MAX进行查询
1)查询雇员表Empl中员工的最低工资,并且列名用“最低工资”表示。
select min(SALARY)AS最低工资from EMPL;
2)查询雇员表Empl中员工的最高工资,并且列名用“最高工资”表示。
select MAX(SALARY)AS最高工资from EMPL;
7.使用聚集函数COUNT进行查询
1)查询雇员表Empl中所有员工的总人数,并且列名用“员工总数”表示。
select count(ENO)AS员工总数from EMPL;
2)查询14号部门的人数,并且列名用“客户中心部人数”表示。
select COUNT(ENO)AS客户中心人数from EMPL WHERE DNO='14';
8.使用分组子句GROUP BY与聚集函数MIN、MAX进行查询
1)查询每个部门中年龄最大的员工,显示部门编号和出生日期。
select DNO AS部门编号,max(BIRTHDATE)as出生日期from EMPL GROUP BY DNO; 2)分别统计雇员表Empl中各部门员工的最高工资,并且列名分别用“部门编号”及“最高工资”表示。
SELECT DNO AS部门编号,MAX(SALARY)AS最高工资from EMPL GROUP BY DNO; 9.使用分组子句GROUP BY与聚集函数SUM、AVG进行查询
1)分别统计雇员表Empl中各部门员工的工资总额,并且列名分别用“部门编号”及“各部门工资总额”表示。
SELECT DNO AS部门编号,SUM(SALARY)AS各部门工资总额from EMPL GROUP BY DNO;
2)分别统计雇员表Empl中各部门员工工资的平均数,并且列名分别用“部门编号”及“各部门工资平均数”表示。
SELECT DNO AS部门编号,AVG(SALARY)AS各部门工资平均数from EMPL GROUP BY DNO;
10.使用分组子句GROUP BY与聚集函数COUNT进行查询
1)统计员工人数多于4人的部门信息,并且列名分别用“部门编号”及“员工人数”表示。
SELECT DNO AS部门编号,count(ENO)AS员工人数from EMPL WHERE ENO>4 GROUP BY DNO;
2)分别统计工作表Job中各项目的参与开发的员工人数,并且列名分别用“项目编号”及“员工人数”表示。
SELECT PNO AS项目编号,COUNT(ENO)AS员工人数from JOB group by PNO;。