(推荐DB习题地址:)http://www.nowamagic.net/database/db_EmployeeDepartmentSQL.php
1)数据汇总
1 聚合函数(max();min();avg();sum();cuont())
2 除了count(*);可以用*外其余的都需要指定特定的列名
3 聚合函数不能和不是聚合函数的进行一块查询,除非用将不是聚合函数的列分组才可以。
4 例子:求最大工资的年龄 //只能用子查询 select name from T_user where salary in (select max(salary) from T_user )
5 order by 列名
2) 通配符Like
1 一个长度的任意字符----_
2 无限长度的单个字符---%
3 有取值范围的单个字符---'_o[1-2]%'
4 不再取值范围单个字符---[^a-c]
3)约束
1 主外键约束。
2 检查约束。
4)空值处理
1 is null; is not null
5)多值匹配
1 使用in(-,-,-);也可用or来实现,只不过在复选文本框中方便
2 where age between 23 and 27(>=;<=) where age>=23 and age<=27
6)分组之后的结果集进行过滤处理用having;
1例如:查询出同等年龄段人数大于5人
select age,count(*) from user group by age having count(*)>5
7) 限制结果集的行数用
1 top num
2 not in//例如取出11-15行;实现简单分页
select top 5 * from user where id not in (select top 10 id from user)
所以只要知道了页下标和页容量就可以知道;10---(pageindex-1)*pagesize; 5---pagesize;
8) 是排序整齐row_number();
select row_number() over(order by id desc) as '规范列名' from user
9) 联合结果集Union(是行的合并)
1 要求两个结果集的具有相同的列的个数和类型。
2 Union all ;不去除重复列。
10)数字函数 1 abs();ceiling();floor();round(,);
11) 字符串函数 1 len();datalength();lower();upper();ltrim();rtrim();substring(,,,)
12) 日期函数 1 getDate(); dateAdd(year,3,getdate()); datediff(year,getdate(),'2007-03-09') datapart(year,getdate());
13)case函数 1 case 列名 when .. then ... else ... 2 case when 列名<=.. then ... else ...
14)存储过程--在DB中的函数
1 优点:在DB中保持的存储过程都是经过编译过的,所以执行速度快;允许模块化设计; 防止sql注入,提高系统安全性; 减少网络流量;
2 带分页的存储过程
create pro_pageBook
@pageIndex int -1, //页码 @pageSize int =5, //页容量 @rowcount int output, //总行数 @pageCount //总页数
as
begin
select * from( select row_number() over(order by id) as rownum,* from book ) as a
where a.rownum>(@pageIndex-1)*pageSize and a.rownum<=@pageIndex*@pageSize
select @rownum=count(*) from book
set @pageCount=ceiling(@rowCount/@pageSize)
end -----------
declare @pageSize int ,@pageIndex int ,@rowCount int ,@pageCount int
set @pageSize=3,@pageIndex=2
exec pro_pageBook @pageSize,@pageIndex,@rowCount output,@pageCount output
select @pageSize,@pageIndex,@rowCount ,@pageCount
15) 触发器--就是针对某一个表产生操作时,会执行预定好的方法
1 create Trigger textTri on 表明 for delete
as begin begin transaction rollback transaction //语句
end

浙公网安备 33010602011771号