分页查询:
一般的分页查询使用简单的 limit 子句就可以实现。
SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offset
LIMIT 子句可以被用于指定 SELECT 语句返回的记录数。需注意以下几点:
- 第一个参数指定第一个返回记录行的偏移量
- 第二个参数指定返回记录行的最大数目
- 如果只给定一个参数:它表示返回最大的记录行数目
- 第二个参数为 -1 表示检索从某一个偏移量到记录集的结束所有的记录行
- 初始记录行的偏移量是 0(而不是 1)
TOP():
TOP 子句用于规定要返回的记录的数目。
对于拥有数千条记录的大型表来说,TOP 子句是非常有用的。
语法:
SELECT TOP number|percent column_name(s)
FROM table_name
LIKE:
通配符:
% | 替代一个或多个字符 |
---|---|
_ | 仅替代一个字符 |
[charlist] | 字符列中的任何单一字符 |
[^charlist]或者[!charlist] | 不在字符列中的任何单一字符 |
LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。
语法:
SELECT column_name(s)
FROM table_name
WHERE column_name LIKE pattern
子查询
外部查询为父查询,内部查询为子查询。
1.作为查询条件使用 where
--1.子查询作为条件
--查询学号在王五前边的同学
select * from StuInfo where stuid < (select stuid from StuInfo where stuname='王五')
2.作为临时表使用 from
--子查询3:stuinfo、StuMarks都作为子查询
select stuname,subject,score from
(select * from stuinfo where stuname = '李四') s1,
(select * from stumarks where score > 80) s2
where s1.stuid = s2.stuid
3.作为列使用 select
--3.子查询作为列使用
--查询所有学员html成绩,没有成绩以null显示
select s.*,
(select score from StuMarks where subject='html' and s.stuid=StuMarks.stuid) as '成绩'
from StuInfo s
在条件查询中使用 '<' , '>' , '='后+查询句只能查一列。
in和not in 通常在where子句中使用,在in和not in后接的子查询中,可以有多个值出现,但必须只能有一列
--in 符合in后面所有条件都能够查询出来,一系列确定的值或表中的某一列
--查询学号为1和3的学员信息
--select * from stuinfo where stuid = 1 or stuid = 3
select * from stuinfo where stuid in (1,3)
--not..in 对in取反,不符合in后面所有条件都能够查询出来
--查询学号除了1和3的以外的学员信息
select * from stuinfo where stuid not in (1,3)
使用SOME,ANY,ALL进行子查询:
1.在SQL查询中,SOME,ANY,ALL后必须跟子查询。
2.在SQL查询中,SOME,ANY,ALL的作用是一样的,表示其中的任何一项。ALL则表示其中的所有的项。
--SOME、 ANY、 ALL后必须跟子查询
--SOME 和 ANY 的作用是一样的,表示其中的任何一项
select * from StuInfo where stuid > any(select stuid from StuInfo where stuid>1)
select * from StuInfo where stuid > some(select stuid from StuInfo where stuid>1)
--all表示其中的所有的项
select * from StuInfo where stuid > all(select stuid from StuInfo where stuid>1)
compute 聚合技术
1.使用了comput进行总计算后的查询得到了两个结果集,第一个结果集返回查询前面的查询明细,后一个结果返回汇总的结果,我们也可以在compute子句中添加多个汇总计算表达式。
COMPUT子句需要下列信息:
①可选BY关键字。它基于每一列计算指定的行聚合。
②行聚合函数名称。包括SUM,AVG,MIN,MAX或COUNT。
③要对其执行行聚合函数的列。
例:
--对信息进行查询并统计
select * from StuMarks where subject='html'
compute max(score),min(score),avg(score)
--对信息进行分组查询并统计
select * from StuMarks order by stuid desc
compute avg(score),sum(score) by stuid
网友评论