表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