11-03SQLserver基础--子查询语句
一、子查询--查询的嵌套(重点记忆)
select bumen,COUNT(*) from haha group by bumen having COUNT(*)>=5
select MAX(age)from haha where bumen='销售部'
select*from haha where bumen='销售部'and age =35
--汇总--
select MAX(age)from haha where bumen in (
select bumen from haha group by bumen having COUNT(*)>=5
)
--参数(数值)必须是在只有1个的前提下才能用‘=’,如果参数大于1,就要用in(在...范围);
select*from haha where age=(
select MAX(age)from haha where bumen in (
select bumen from haha group by bumen having COUNT(*)>=5
)
)
and bumen=(select bumen from haha group by bumen having COUNT(*)>=5)
select top 5* from haha order by age
select *from haha where code not in (
select top 5 code from haha order by age--查询出这一列当作参数来用,用括号;
)
--查找男同志里面年龄最大的全部信息
select *from haha where age=(select MAX(age)from haha where sex='男')and sex='男'
select top 1* from haha where sex='男' order by age desc
--查找人数最多的部门的人中35岁的人的信息
select* from haha where bumen =( select top 1 bumen from haha group by bumen order by COUNT(*) desc )and age=35
二、代码分页
三、索引
1、主键
设置主键不能为空值,具备唯一标识性,是为了防止录入错误,设置了主键,减慢了新增数据的速度,但大大提高了查询的效率。
方法一:在“对象资源管理器”中选中要设置主键的表,右键点击“设计”,弹出的窗口中,右击该表设计器里列名前面的小三角--选“设置主键”即可。
方法二:查询语句中代码查询,在一个表中写查询语句时将要在设置主键的列名+数据类型后面+primary key;例如,code int primary key
2、自增长 identity 一般不设置为自增长
Code int primary identity( a,b)--都有固定的索引,前面的a是指从a开始自增长,后面b是指增长几;
例:Code int primary identity( 1,-1)
3、外键约束设置
是为了方便表与表之间的查询,提高查询效率,一般与主键同时起作用。
注:设置主键与外键的时候,受约束的列与主键的数据类型要一致才能用。
方法一:查询语句代码:在要设置外键的表中选择同主键有唯一联系的列+数据类型后面+references[dbo].[主键表名称] ([主键列名])
bumen int references[dbo].[bumen] ([code]) 设置外键
方法二:
第一步,在某个要成为外键的表设计器中右击列名前的小三角,单击“关系”;
第二步:弹出“外键关系”窗口,在“表和列规范”这里单击。
4、数据库关系图:当成功设置主键和外键的表之间快就会存在一种关系。