SQL语句的一些总结

表student(SNO,SNAME,DNAME,SSEX,SAGE);course(CNO,CNAME,CTIME,SCOUNT,CTEST);

sc(SNO,CNO,GRADE,TYPE)

一、基本查询操作

1.按列对表进行查询

select SNO,SNAME,SAGE from student where SSEX='男';

select * from student where SSEX='男'

总结:使用查询语句时*通配符时要慎重,在不需要查询所有列时,尽量采用单列查询或多列查询,以免占用过多资源。

2.排序查询结果

升序排序:select * from student order by SAGE asc

实现对多列的排序操作,如需要对性别(SSEX)升序和年龄(SAGE)降序对学生信息进行排序:

 

select * from student order by SSEX asc,SAGE desc

总结:对于时间、数值类型的字段排序,其排序规则就是按照时间的早晚、数值的大小;对于字符型,则是依照其ASCII码的先后顺序进行的,系统将空值NULL作为最小值进行排序。

3.进行模糊查询操作

关键字like 和not like,它们可以与通配符"%"、"_"、"[]"搭配使用

a:与"%"搭配使用表示与任意字符的匹配,且不计字符的多少。如"计算机%"表示匹配以字符串"计算机"开头的任意字符串;"%计算机"表示匹配以字符串"计算机"结尾的任意字符串;"%计算机%"表示匹配含有字符串"计算机"的任意字符串。

如包含"设计"字符串的课程信息:select * from course where CNAME like '%设计%';但是在ACCESS数据库里面需把'%'更改为'*'才能查找出数据

b:使用"_"通配符进行模糊查询,"_"只能匹配任何单个字符。如"_ean"表示将查找以"ean"结尾的所有4个字母的字符串("Dean"、"2ean"等),当然要表示两个字符的匹配,就需要使用两个"_"通配符,即写成"__"。

c:使用"[]"通配符进行模糊查询,"[]"通配符用于指定范围(如[a-f]或集合[abcdef])中的任何单个字符。只要满足这些字符其中之一,且位置出现在"[]"通配符的位置的字符串就满足条件。如"[c-p]arsen"将查找"arsen"结尾并且以介于"c"与"p"之间的任何单个字符开始的字符串,例如Carsen、Larsen等

如查询student表中所有王姓和李姓的学生信息,查询代码如下:

select * from student where SNAME like '[王李]%'

当查询所有非王姓和李姓的学生信息,查询代码如下:

select * from student where SNAME not like '[王李]%'

总结:注意在ACCESS数据库里面需把'%'更改为'*'才能查找出数据,只有CHAR、VARCHAR和TEXT类型的数据才能使用like运算符和通配符。

4.限制检索数据范围

使用关键字between和in限制检索数据的范围

a:使用between关键字限定数据范围,not between查询限定数据范围之外的记录

select * from course where CTIME between 28 and 40    该语句可以用下面语句替换

select * from course where CTIME >=28 and CTIME <=40 

b:使用IN关键字限定数据范围

如查询student表中所有电子工程、计算机和生物工程系的学生信息,查询代码如下:

select * from student where DNAME in('电子工程','计算机','生物工程') order by DNAME  可以用下面语句替换

select * from student where DNAME ='电子工程' or DNAME ='计算机' or DNAME ='生物工程' order by DNAME

总结:between关键字限制范围相当于且(and),in关键字限制范围相当于或(or)。

5.NULL值的判断

select * from student where SAGE is not null order by SAGE

总结:当查找某列,且对某列进行某种运算,这时就不能包含有NULL值,不能写成SAGE!=NULL

6.返回查询结果的部分行,运用top关键字

如:查询course表中,容纳选课人数前4位的课程信息,实现代码如下:

select top 4 *from course order by SCOUNT desc

也可以通过top关键字指定返回查询结果集的百分数。如查询course表中,容纳选课人数前60%的课程信息

select top 60 percent * from course order by SCOUNT desc

二、在查询语句中使用函数

1.连接并重命名列

在SQL中使用连接符可以连接表中的两列或者多列数据,使它们作为一列供用户查询操作。运用连接符号"+"或者"||"

select '学号:'+SNO+'姓名:'+SNAME+'年龄:'+cast(SAGE as char(2))  as '学生基本信息'from student order by SNO

总结:cast转换函数不适合ACCESS,在ACCESS中类型转换参考http://blog.csdn.net/erick08/article/details/7797350

posted @ 2015-03-25 15:20  一起经历  阅读(321)  评论(0编辑  收藏  举报