SQL的简单查询实例教程_第1页
SQL的简单查询实例教程_第2页
SQL的简单查询实例教程_第3页
SQL的简单查询实例教程_第4页
SQL的简单查询实例教程_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、SQL的简单查询实例教程关键词:菜鸟学数据库之简单SQL语句小结为了大家更容易理解我举出的SQL语句,本文假定已经建立了一个学生成绩管理数据 库,全文均以学生成绩的管理为例来描述。.在查询结果中显示列名:a.用 as 关键字:select name as 姓名from students order by ageb.直接表示:select name 姓名from students order by age.精确查找:a.用 in限定范围:select * from students where native in (湖南,四川)b.between.and : select * from stud

2、ents where age between 20 and 30c.“=” select * from students where name = 李山d.like:select * from students where name like 李(注意查询条件中有 “”, 则说明是部分匹配,而且还有先后信息在里面,即查找以李”开头的匹配项。所以若查询有 李”的所有对象,应该命令:李%;若是第二个字为李,则应为李%或_李或_李_。)e. 匹配检查符:select * from courses where cno like AC%(表示或的关系, 与in(.)类似,而且“口可以表示范围,如:sel

3、ect * from courses where cno like A-C%).对于时间类型变量的处理a.smalldatetime :直接按照字符串处理的方式进行处理,例如:select * from students where birth = 1980-1-1 and birth = 1980-12-31.集函数a.count()求和,如:select count(*) from students (求学生总人数)b.avg(列)求平均,如:select avg(mark) from grade s where cno=B2c.max(歹U)和19(列),求最大与最小.分组 group常

4、用于统计时,如分组查总数:select gender,count(sno) from studentsgroup by gender(查看男女学生各有多少)注意:从哪种角度分组就从哪列group by对于多重分组,只需将分组规则罗列。比如查询各届各专业的男女同学人数,那么分 组规则有:届别(grade)、专业(mno)和性别(gender) ,所以有group by grade, mno, genderselect grade, mno, gender, count(*)from studentsgroup by grade, mno, gender通常group还和having联用,比如查询

5、1门课以上不及格的学生,则按学号(sno) 分类有:select sno,count(*) from gradeswhere mark1.UNION 联合合并查询结果,如:SELECT * FROM studentsWHERE name like 张UNION ALLSELECT * FROM studentsWHERE name like 李.多表查询a.内连接select g.sno,,c.coursenamefrom grades g JOIN students s ON g.sno=s.snoJOIN courses c ON o=o(注意可以引用别名)b.外连接b1.左连

6、接select o,max(coursename),count(sno)from courses LEFT JOIN grades ON o=ogroup by o左连接特点:显示全部左边表中的所有项目,即使其中有些项中的数据未填写完全。左外连接返回那些存在于左表而右表中却没有的行,再加上内连接的行。b2.右连接与左连接类似b3.全连接select sno,name,majorfrom students FULL JOIN majors ON students.mno=majors.mno两边表中的内容全部显示以自身连接select o,c1.coursename,c1.pno,c2.cour

7、senamefrom courses c1,courses c2 where c1.pno=o采用别名解决问题。d.交叉连接select lastname+firstname from lastname CROSS JOIN firstanme相当于做笛卡儿积.嵌套查询a.用关键字IN,如查询李山的同乡:select * from studentswhere native in (select native from students where name= 李山)反使用关键字EXIST,比如,下面两句是等价的:select * from studentswhere sno in (selec

8、t sno from grades where cno=B2)select * from students where exists(select * from grades wheregrades.sno=students.sno AND cno=B2).关于排序ordera.对于排序order,有两种方法:asc升序和desc降序b.对于排序orde-可以按照查询条件中的某项排列,而且这项可用数字表示,如: select sno,count(*) ,avg(mark) from grades group by snohaving avg(mark)85 order by 3.其他a.对于有

9、空格的识别名称,应该用口特住。b.对于某列中没有数据的特定查询可以用9立1判断,如select sno,courseno from grades where mark IS NULL以注意区分在嵌套查询中使用的any与all的区别,any相当于逻辑运算“|而all则 相当于逻辑运算“&”d.注意在做否定意义的查询是小心进入陷阱:如,没有选修B2课程的学生:select students.* from students, grades where students.sno=grades.sno AND o B2上面的查询方式是错误的,正确方式见下方:select * from studentswhere not exists (select * from gradeswhere grades.sno=students.sno AND cno=B2).关于有难度多重嵌套查询的解决思想:如,选修了全部课程的学生:select * from students where not exists ( select * from

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论