分页查询,连接查询

–join on 连接查询
select ren.name,sex,age,cid,bumen.bname from ren join bumen on
ren.bumen=bumen.bcode
–在地点的根底上,将每一个部门的部门职责放在前边呈现
select ren.name,sex,age,cid,bumen.bname,bzhi from ren join bumen on
ren.bumen=bumen.bcode
–在表中插入两条不完全的数量
insert into bumen values(6,’科研’,null)
insert into ren values(‘奥巴马’,67,null,null,null)
–全体询问 full
–新闻不完全时还想查到拥有数据,可以在join前边加上full
select ren.name,sex,age,cid,bumen.bname,bzhi from ren full join bumen on
ren.bumen=bumen.bcode
–左查询 left
–只管第一个表的具有数据总体来得,不管第一个表的不完整数据
select ren.name,sex,age,cid,bumen.bname,bzhi from ren left join bumen on
ren.bumen=bumen.bcode

1)、将haha表中年纪>四十周岁可能年龄

–将职员表内部门的编码转换来都部队门名称查询出来
select ren.code,name,age,sex,cid,bumen.bname from ren,bumen where
ren.bumen=bumen.bcode
–查询销售部里的年纪大于30周岁的人的全体音讯
select *from ren where bumen=(select bcode from bumen where
bname=’销售部’)and age>30
–查看全体职员的八字
select
name,SUBSTRING(cid,7,4)+’年’+SUBSTRING(cid,10,2)+’月’+SUBSTRING(cid,12,2)+’日’from
ren
–查看编号为5的人的寿辰
select name
,SUBSTRING(cid,7,4)+’年’+SUBSTRING(cid,10,2)+’月’+SUBSTRING(cid,12,2)+’日’from
ren where code=5
–查年龄是25,26,27全体人的多寡
select*from ren where age in(25,26,27)
–查看有没有跟2,3,4同等大的人手
select *from ren where age in(select age from ren where code in(2,3,4))

封锁
除了主键/外键约束,还有任何的牢笼

insert into ren values(‘张三’,24,’男’,’370303199903044440′,1002)
insert into ren values(‘李四’,25,’女’,’370303199905044440′,1001)
insert into ren values(‘王五’,26,’男’,’370303199907044440′,1002)
insert into ren values(‘赵六’,27,’女’,’370303199908044440′,1001)
insert into ren values(‘冯七’,28,’男’,’370303199909044440′,1003)
insert into ren values(‘钱大’,29,’女’,’370303199901044440′,1001)
insert into ren values(‘赵二’,22,’男’,’370303199911044440′,1003)
insert into ren values(‘陈赫’,31,’男’,’370303199912044440′,1001)
insert into ren values(‘王祖蓝’,32,’女’,’370303199904044440′,1004)
insert into ren values(‘宝贝儿’,33,’男’,’370303199903034440′,1004)
insert into ren values(‘李晨’,34,’女’,’370303199903224440′,1004)
insert into ren values(‘范爷’,35,’男’,’370303199903234440′,1005)
insert into ren values(‘任泉’,36,’男’,’370303199903254440′,1002)
insert into ren values(‘李冰冰’,37,’男’,’370303199903264440′,1003)
insert into ren values(‘冯小刚’,38,’女’,’370303199903274440′,1005)
insert into ren values(‘郭德纲’,39,’男’,’370303199903284440′,1004)
insert into ren values(‘赵本山’,40,’女’,’370303199903294440′,1004)

图片 1

叁 、连接查询

图片 2
 –分别插入虚拟数据,之后进展查询操作:

–union 上下拼接
–注意:所拼接的列的数据类型要一律
–查询code值为1 和code值为2 的三人的具有音讯
select*from ren where code =2
union
select*from ren where code=1
–职员表的code列和name列拼接上机关表的bcode列和bname列
select code ,name from ren
union
select bcode,bname from bumen

图片 3

–年龄超过37和年龄小于27的职员和工人消息
select*from ren where age>37or age<27

 

1、子查询

Join前面能够加三种修饰符:

② 、分页查询

图片 4

–前五条
select top 5*from ren
–第6-10条
select top 5*from ren where code not in (select top 5  code from ren
)
–想在一伊始就想驾驭能分成几页(五条一页)
select CEILING(COUNT(*)/5.0)from ren

3)Right join..on

–职员表的code列和name列sex拼接上部门表的bcode列和bname列bzhi列
select code ,name ,sex from ren
union
select bcode,bname ,bzhi from bumen

列必供给相应一致。

use student
create table bumen
(
bcode int primary key,
bname varchar(50),
bzhi varchar(50)
)
go
create table ren
(
code int identity(1,1),
name varchar(50),
age int,
sex char(10),
cid varchar(50),
bumen int
)
go
insert into bumen values(1001,’人事部’,’总管士面试考核’)
insert into bumen values(1002,’市集部’,’负责开拓市集’)
insert into bumen values(1003,’销售部’,’负责产品销售’)
insert into bumen values(1004,’生产部’,’负责产品生产’)
insert into bumen values(1005,’质量检验部’,’负责产品质检’)
go

图片 5

–给宣传部加上职能的音讯
update bumen set bzhi=’宣传公司文化’ from bumen where bname=’科研’

还能够放在select.和from 中间使用。也就是叁个转换函数,查询出来的总得是一行一列。

 

                 2.数据类型必须呼应一致

–右查询 right
–只管第三个表的拥有数据总体显示,不管第三个表的不完全体据
select ren.name,sex,age,cid,bumen.bname,bzhi from ren right join bumen
on ren.bumen=bumen.bcode

 

–查看销售部有怎么着人
select*from ren where bumen=(select bcode from bumen where
bname=’销售部’)
–查看张三所属的单位职分
select bzhi from bumen where bcode=(select bumen from ren where
name=’张三’)
–查询部门人数最多的机关内部年纪最大的人手的有着音讯
select top 1*from ren where bumen=(select top 1 bumen from ren group by
bumen order by COUNT(*)desc) order by age
–遵照年龄排序,从小到大,不要前多少人的
select *from ren where code not in (select top 5 code from ren order by
age )
–找男人士里面年龄最大的一体消息
select *from ren where age=(select top 1 age from ren where sex=’男’
order by age desc)
select *from ren where age=(select MAX(age) from ren where sex=’男’ )

一般用法:=

上述正是接二连三查询的格式。

表与表哪个表在前面就先举行哪个表的询问,必须在表与表之间存在连接关系时才能接纳。

Union

  Select ceo,code,from bumen

加right:(通过关系显得)突显左侧表的一切数量,依照右表的相继排序,而左侧表的数目经过关系排列,左侧没有提到的不出示。

Select * from haha where age<30

【注意事项】1.持有机动去重的效劳。

 表达式能够用and连接(能够加多个表明式),等同于where 条件

加full:全部列出多少,把三个表中的数据总体显示出来,尽管当中1个表中的数量与另一表没有别的涉及。

 

2)、将haha表中name,bumen和bumen表中的ceo,code查询,同时出现在同一个表中

东拼西凑查询–join…on…(将五个表拼在一起展现,最多四个表)

图片 6

图片 7

简化连接查询语句格式:Select.haha.name,sex,age,bumen.name,ceo from haha,bumen where haha.bumen=bumen.code

二 、纵向联合union:

 

  Union

Join bumen on haha.bumen=bumen.code–将join之后的话语参预到地方的表中。

替换句,将haha里的bumen替换成bumen里的code:句式二:Select name,sex,age,(select name from bumen where bumen.code=haha.bumen)as 部门,(select ceo from bumen where bumen.code=haha.bumen) from haha

格局二:需求安装唯一键的列名直接加unique.

① 、子查询补充:

Exists的用法:

加Left:(通过关系显得)突显右侧表中的整个数量,按照左侧表的顺序排列,而右侧表的数目则经过涉及排列,左边没有关联的不出示。

【注意事项】查询到的结果必须是在select..from之间写出来才能显得。

壹 、设置唯一性约束(作为候选索引)提前设置好,幸免录入出错;

【案例1】–创设学生消息表:学号、姓名、班级、性别、语文化教育师编号、数学教授编号、日语老师编号

 例:cid varchar(50) unique

3、check约束

原句:句式一:Select name,sex,age,bumen from haha

2)Left join..on

图片 8

图片 9
 –成立助教表:教授编号、姓名、课程、性别、出生日期

Select * from haha where age>40

子查询不仅能放在where后作为条件使用

select*from haha where bumen=(select code from bumen where name=’销售部’)and age>35–括号内部查询出来的当作参数使用

select*from haha where exists(select*from bumen where bumen.code=haha.bumen,and bumen.name=’销售部’)and age>35–相当于循环嵌套语句

3个表存放现有数量,另三个表存放已去除的数据.

1)Full join…on

 

  select name,bumen from haha

一 、横联

② 、连接查询

图片 10

一经是设置了唯一性的列都能够看做外键使用。

图片 11
 –创立分数表:语文分数、数学分数、挪威语分数、学生学号

Select haha.name,sex,age,bumen.name,ceo from haha

贰 、查看查询代码

相关文章