第一篇:实验三 SQL语言查询功能—单表查询
实验三 SQL语言查询功能—单表查询
实验目的:
1)理解查询的原理
2)熟练投影查询、带条件的查询、多条件查询、分组查询
实验内容:
1、查询全部的学生信息
select * from 学生
2、查询与张佳吟的信息,列出其学号,姓名
select 学号,姓名 from 学生 where 姓名='张佳吟'
3、查询选修了课程的学生信息,列出其学号
select distinct 学号from 成绩
4、查询所有入学成绩在500分以上的男生信息
select * from 学生 where 性别='男'and 入学成绩>=5005、查询年龄为20岁和21岁的学生,列出学号,姓名,年龄
select 学号,姓名,2012-YEAR(出生日期)as 年龄 from 学生 where 2012-YEAR(出生日期)=20 or2012-YEAR(出生日期)=216、查询年龄在20-23岁之间的学生信息
select * from 学生 where 2012-YEAR(出生日期)between 20 and 237、分别统计男生和女生的人数
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平均分
第二篇:SQL查询语言
《SQL查询语言》教学设计
一、教学目标分析
认知目标
学习SQL查询语言的使用方法。
掌握SQL语言当中的SELECT语句
能力目标
培养学生应用查询语句查询数据的应用能力
情感目标
体验SQL语言查询方法
主动将数据库管理信息的思想、方法创造性地应用到生活、学习之中。
二、教学内容分析
课前需要为学生准备名为SCHOOL数据库文件,里面放着名为CLASS的表,供学生练习使用。提供这个数据库文件可以避免学生在建立表以及表中录入记录上花费太多的时间,而把重点放在对本节内容的学习上,可以让教师更好地进行目标调控,做到有的放矢。这个数据库文件放置于网络共享文件夹中,并将其快捷方式置于学生机的桌面上。教学重点:
1、使用“在设计视图中创建查询”。
2、SQL查询语言的格式。
教学难点:
运行、调试SQL命令。
解决措施:
通过老师讲解、演示及设置的任务,让学生在学习的过程中,自己动手,以不断解决问题为手段,有机结合各种知识,以任务驱动的方式发展能力,一步步完成学习任务。
三、学生学习状态分析
本课的教学对象是大二的学生,由于学生的理论知识薄弱,加上数据库比较抽象,比较难理解的特点,从而造成学生对数据库的认识还很模糊。学生在本节课之前,已经掌握数据库和表的创建、打开及表中输入、修改记录的方法,初步掌握SQL的一些基本操作,在此基础上,如何学会在数据库众多表中查询记录变得至关重要了,所以为了学生更好地掌握这一点知识点,应广泛调动他们的学习兴趣,增强学习的主动性。
四、教学策略
职业技术学院课程本身的特点、知识及技能的传授应以典型“任务”为主,创造学生自主探究学习的平台,学生在教师的指导下带着任务通过实际操作、探究学习等方式,逐步完成任务。
五、教学过程
合理安排教学过程是教学成功的关键。因此,我把教学过程分为“情境感知,揭示课题——任务驱动,讲授新知——课堂小结,巩固新知”三部分。
(一)情境感知,揭示课题
为了让同学们对自己班级同学的情况有所了解,我们如何简便地查询呢?我们可以通过输入一些命令解决问题。这些命令就是我们这节课所要学习的SQL查询语言。设计思路:
SQL所包含的数据具有一定的规模,并且能快速地从众多表中查询到某个同学的情况,让学生体会到数据库在现实生活中的应用。
(二)任务驱动,讲授新知
1. 如何在SQL中使用查询命令?
任务一:
在SCHOOL数据库的CLASS表中查询所有的记录
Select * from class
1)步骤:略
2)分析刚才写的查询命令:
SELECT:表示这是一个查询语句
*:表示显示出符合条件记录的所有字段内容,如果在这输入的是一些逗号分隔的字段名,则查询结果只显示响应字段的内容。
FROM:表示从哪个表里查询。
3)写SQL命令时应注意的事项:
命令必须是英文的半角字母
字符型数据要用英文的单引号包含起来。
设计思路:
这既是课堂重点也是难点,通过两个层次推进的设疑,教师适当地理解、演示,使学生对SQL查询语言已消除了陌生感,并有了一定的理解。
2. 尝试练习
任务二:
查询表中头三条记录
通过本例讲解让学生掌握TOP关键字的用法
任务三:
查询姓名和年龄两列数据
通过本例讲解让学生掌握部分字段内容的查询
任务四:
查询年龄大于等于17而小于等于19的数据
通过本例讲解,让学生掌握比较运算符和逻辑运算符的应用,以及另一种方法BETWEEN…AND…关键字的用法
任务五:
查询健康状况为良好的所有数据
通过本例讲解,让学生掌握WHERE关键字的用法
任务六:
查询姓李的学生所有数据
通过本例讲解,让学生掌握LIKE关键字的用法
任务七:
查询健康状况为良好或一般的数据
通过本例讲解,让学生掌握IN关键字的用法
任务八:
查询中文成绩及格的数据
通过本例讲解,让学生掌握比较运算符的应用
任务九:
查询英语和中文的总成绩
通过本例讲解,让学生掌握为派生列起别名的方法
任务十:
学生练习:
查询一班各位同学的英语、中文成绩总分。
任务十一:
将中文成绩俺降序排列(升序asc)
通过本例讲解,让学生掌握ORDER BY关键字的应用
任务十二:
查询一班同学中文成绩排名状况(按降序)
通过本例讲解,让学生掌握WHERE条件和ORDER BY关键字综合应用
任务十三
查询各班中文总成绩
通过本例讲解,让学生掌握聚合函数和GROUP BY关键字的应用
任务十四
查询一班中文总成绩
通过本例讲解,让学生掌握聚合函数和GROUP BY关键字以及HAVING关键字的应用 任务十五:
利用class表中的姓名、中文、英文成绩创建一个名为jjnn的新表。
通过本例讲解,让学生掌握从源表中筛选一部分数据产生新表的方法。
设计思路:
这个环节我抛出了一个个任务,促使学生去自我探索和自主学习,达到掌握操作和使用的目的,激发学生的学习热情和创造积极性。
(三)课堂小结,巩固新知
这节课我们学习了SQL语言查询的使用方法,综合以上任务,不难得出SELECT语句的使用格式和方法(板书SELECT语句的格式):
〈SELECT语句〉::=
SELECT [ALL|DISTINCT]〈目标列表达式〉[别名] [ ,〈目标列表达式〉[别
名]]„
FROM 〈表名或视图名〉[别名][ ,〈表名或视图名〉[别名]]„
[WHERE〈条件表达式〉]
[GROUP BY 〈列名1〉[HAVING〈条件表达式〉]]
[ORDER BY 〈列名2〉[ASC|DESC]];
〈目标列表达式〉::=
*
|〈表名〉.*
|[〈表名〉.]〈列名表达式〉{,[〈表名〉.]〈列名表达式〉}
|〈集函数名〉([DISTINCT|ALL] *|列名)
〈集函数名〉::=
COUNT
|SUM
|AVG
|MAX
|MIN
〈条件表达式〉::=
1.„ θ „
2.„ [NOT] BETWEEN „ AND „
3.„ [NOT] IN(„)
4.„ [NOT] LIKE '„'
5.„ IS [NOT] NULL
6.[NOT] EXISTS 〈SELECT语句〉
7.〈条件表达式〉〈AND|OR〉〈条件表达式〉
对学生在操作中出现的问题再一次强调书写命令的注意事项。
六、教学反思
本节课,我的设计任务与学生的成绩有关,容易激起学生很大的关注。随着任务的深入,学习目标得到很好的落实,力争以学习目标为起点,又以学习目标为归宿。学习过程中要时刻关注学生的进展及出现的问题,对于学生的点滴进步给予及时的肯定;对于出现的问题,也是一种动态生成的教学资源,应善于捕捉,适时提出,引导学生分析并解决,实现“问题从学生中来,最终回到学生中去”,从而完善学生的意义建构。
第三篇:SQL语言数据查询操作
实验三 SQL语言——数据查询操作
一、实验时间
二、实验地点:317室
三、实验条件与环境
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供应零件的供应商号码SNO
2.查询为工程J1供应零件P1的供应商号码SNO
3.查询为工程J1供应红色零件的供应商号码SNO
4.查询没有使用天津供应商生产的零件并且当前工程所使用零件的颜色全部为红色的工程号JNO
5.查询至少选用了供应商S1所供应的全部零件的工程号JNO
6.找出所有供应商的名称和所在城市
7.找出所有零件的名称、颜色和重量
8.找出使用供应商S1所供应零件的工程号码
9.找出工程项目J2使用的各种零件的名称及其重量
10.找出上海厂商供应的所有零件号码
11.找出使用上海产的零件的工程名称
12.找出没有使用天津产的零件的工程号码
13.找出重量最轻的红色零件的零件编号PNO
14.找出供应商与工程所在城市相同的供应商提供的零件号码
15.找出所有这样的一些<CITY,CITY,PNAME>三元组,使得第一个城市的供应商为第二个城市的工程供应零件的名称为PNAME
16.重复第15题,但不检索两个CITY值相同的三元组
17.找出供应商S1为工程名中含有“厂”字的工程供应的零件数量总和
18.找出为工程供应零件的总数量不低于500的供应商号码及供应总数量,结果按供应商号码分类并且按供应总数量降序排列
七、实验总结:
数据查询是一种极为重要的面向数据库的数据操纵方式。实验完成后,请同学们总结一下SELECT语
句实现各种类型查询任务的一般过程和操作实现方法,并对利用SELECT语句实现各类查询任务的解题规律与方法作一总结。
第四篇:SQL查询语句
SQL查询语句
第一次:查询(显示)、条件、排序、空记录
第二次:通配符、生成表、文件(记事本)、数组、临时表,数学函数、分组、嵌套查询
第三次:插入记录、删除记录、更新记录 第四次:超连接、新建(打开)数据库、表的建立、表的删除、第五次 表结构的修改,添加记录 显示同张芳同一天出生的学生的信息 格式:
1、查询(显示)记录
显示所有男学生的学号,姓名,性别 区分:字段、条件、表名
Select 字段名列表(*)from 表名; where 条件表达式;
into table(dbf)文件名;
into cursor 临时表名;
into array 数组名;
to file 文件名;
order by 字段名列表(asc desc);
group by 字段名 having 条件;
显示所有大于平均分的学生的学号、姓名 显示同E4挣同样工资的职工信息
Select * from 职工 where 工资=(select 工资 from 职工 where 职工号=”E4”)职工(仓库号C(10),职工号 C(10),工资 N(10,2))
显示所有工资大于1500的员工的仓库号、职工号及所在的城市
2、插入记录
Insert into 表名(字段名列表)values(记录值)
3、删除记录
Delete from 表名 where 条件
4、更新记录
Update 表名 set 字段名=记录值; Where 条件
5、表的删除
drop table 表名
6、表的建立
create table 表名(字段名 数据类型(宽度))
7、表结构的修改select * from 职工where 职工号!=“E4” AND 工资=(select 工资 from 职工 where 职工号=“E4”)
alter table 表名
1)增加字段
alter table student add 身份证号 c(10)
2)删除字段
alter table student drop colum 身份证号
3)修改字段名
alter table student rename colum 出生日期 to 出生年月
4)增加字段有效性规则
alter table student alter 成绩 set check 成绩>=0 and 成绩<=100;
error “成绩输入错误,成绩应该在0-100之间”
5)删除字段有效性规则
alter table student alter 成绩 drop check 注意:
以上题目中用到的 SQL语句粘贴到计事本文件XY.TXT中(每行一条语句)。对两个表操作的方法:
1)同时打开两个表
select 仓库.仓库号,城市,职工号,工资 from 仓库,职工;
where 职工.仓库号=仓库.仓库号 and 工资=1250
2)超连接(内连接、左连接、右连接、全连
接)
内连接:只显示符合条件的记录
左连接:显示符合条件的记录及第一个表中不符合条件的记录
右连接:显示符合条件的记录及第二个表中不符合条件的记录
全连接:显示符合条件的记录及第一、二个表中不符合条件的记录
成绩表(score)
学号姓名课程名成绩 2001张三计算机10 2003张四英语20 2001张三语言30 2005张三数据40 2003张四计算机50
Select sum(成绩)from score group by 学号
Select sum(成绩)from score group by 课程名
select 字段名列表(*)from 表名;where 条件;
order by 字段名列表 asc|desc;
into table(dbf)表名;
into array 数组名;
to file 文件名;
into cursor 临时表名
题目练习
实现以下功能:在考生文件夹下,打开“陶的数据库”的数据库,并利用SQL语句在该数据库中新建一个表:gongzi(职工号 c(4),实发工资 n(7,0)),将zhigong表中基本工资大于1330(含1330)的记录存储在gongzi表中,其中实发工资为:基本工资+加班费(白天20,晚上30),最后将所有的SQL语句保存到考生目录下的sqlanswer.txt文件中(自行建立,一行一条语句)
open database 陶的数据库
create table gongzi(职工号 c(4),基本工资 n(7,2))
select 职工号,基本工资+白班*20+晚班*30 from zhigong;where 基本工资>1350 into array xy
insert into gongzi from array xy
第五篇:Sql语句查询
sql语句多表连接查询
在程序开发过程中,不仅可以对单一数据表进行查询,还可以进行多表查询,用户通过多表查询从多个表中提取出需要的数据。
多表查询可以分为内连接查询、外连接查询以及联合查询。
1.内连接查询
连接查询是指通过各个表之间共同列的关联性查询数据。连接查询分为内连接查询和外连接查询。内连接是将两个相互交叉的数据集合中重叠部分的数据行连接起来,返回表示两个数据集合之间匹配连接关系的数据行。
可以在FORM子句中使用INNER JOIN„ON„建立内连接,也可以在WHERE子句中指定连接条件建立内连接,例如:
select a.UserName,b.BookName,b.Datetm from UserInfo as a inner join SellSheet as b on a.UserID= b.UserID
也可以用下面的语句实现。
select a.UserName,b.BookName,b.Datetm from UserInfo as a,SellSheet as b where a.UserID=b.UserID
2.外连接查询
外连接是对内连接的扩充,除了将两个数据集合中重叠部分以内的数据行连接起来之外,还可以根据要求返回左侧或右侧数据集合中非匹配的数据,即左外连接(LEFT OUTER JOIN)和右外连接(RIGHT OUTER JOIN)。
l左外连接LEFT OUTER JOIN
左外连接LEFT OUTER JOIN逻辑运算符除了返回两个数据表中满足连接条件的行,它还返回任何在后一个数据表中没有匹配行的前一个数据表中的行。非匹配行的部分字段列作为空值返回。
l右外连接RIGHT OUTER JOIN
右外连接RIGHT OUTER JOIN是左外连接的反向连接。它除了返回两个数据表中满足连接条件的行,还返回任何在前一个数据表中没有匹配行的后一个数据表中的行。非匹配行的部分字段列作为空值返回。
3.使用UNION进行联合查询
使用UNION运算符可以进行联合查询。UNION运算符连接多个SELECT语句,将两个或更多查询的结果组合为单个结果集,该结果集包含联合查询中所有查询的全部行。使用UNION运算符遵循的规则如下:
(1)在使用UNION运算符组合的语句中,所有选择列表的表达式数目必须相同(列名、算术表达式、聚集函数等)。
(2)在使用UNION组合的结果集中的相应列必须具有相同数据类型,或者两种数据类型之间必须存在可能的隐性数据转换,或者提供了显式转换。例如,在datetime数据类型的列和binary数据类型的列之间不能使用UNION运算符,除非提供了显式转换,而在money数据类型的列和int数据类型的列之间可以使用UNION运算符,因为它们可以进行隐性转换。
(3)结果集中列的名字或者别名是由第一个SELECT语句的选择列表决定的。
注意:对数据表进行联合查询时,结果集中行的最大数量是各表行数之“和”,而对数据表进行连接查询时,结果集中行的最大数量是各表行数之“积”。