首页 >> 大全

多表操作、外键、视图、多表联合

2023-12-15 大全 26 作者:考证青年

* from where 工作日期 like '%2005%'

月-日-年 时 分 秒

* from where 工作日期 like '_ _ _ _ _ _2005%'

显示工作日期是空的员工记录:处理空值 is

* from where 工作日期 is null

说明:SQL 无法启动时如何处理

命令:net user ldf

. msc --服务

三、子查询

1、:

注意:A、内层查询必须使用()

B、执行顺序:先执行内层查询,返回此结果给外层查询,最后执行外层查询

实例:显示两个表都有的记录

方法一: a . name from a ,b where a . name = b . name

方法二: * from a where name in ( * from b)

说明: = 子查询的结果只能有一个

in 子查询的结果可以有多个或是一个

实例:显示a表有,b表没有的员工信息

* from a where name not in ( * from b)

显示年龄最大的员工信息

* from where 年龄 = ( max(年龄) from )

2、表的自连接:一个表进行的自我连接

* from home as homea,home as homeb

实例:

求每个部门中不同性别的平均基本工资

部门,性别,avg(基本工资) from .e group by 部门,性别

找出基本工资大于本部门平均基本工资的员工信息

* from , ( 部门 , avg(基本工资) as 部门平均基本工资 from group by 部门) as YG where . 部门 = YG . 部门 and . 基本工资 > YG . 部门平均基本工资

说明:YG为虚拟表

作业:

表和视图如何关联查询__表与视图的基本操作

A、显示广西的客户信息

客户姓名 from where 客户编号 =( 客户编号 from where 机构地址='广西')

B、显示吕泽所需要的服务信息

* from where 服务编号 in ( 服务编号 from - where 机构编号 in( 机构编号 from where 客户编号 in ( 客户编号 from where 姓名='吕泽')))

C、显示每个分支机构所提供的服务信息

机构地址,服务名 from ,,- where .服务编号 = -.服务编号 and -.机构编号 = .机构编号

D、需要两种服务的客户信息

* from where 客户编号 in ( 客户编号 from group by 客户编号 count(*)=2)

四、数据库关系图、关系(略) 五、外键

1、外键:将一个表的主键添加到另一个表中,以此键构建起表与表之间的关系,那么我们这个字段称为另一个表的外键

好处:A、减少数据的冗余

B、级联更新、级联删除

2、外键的创建:右击增加列

点击鼠标右键选择‘关系‘--表和列规范--保存

3、级联更新、级联删除:

关系--、--层叠

通过数据库关系图:

右击创建--右击空白选‘创建数据库关系图’

六、视图:窗户、虚拟表,不存放数据

1、引入视图的好处:

A、让用户限制在某些列

B、让用户限制在某些行

C、可以实现多表操作

D、可以实现安全机制(与用户管理放在一起使用)

2、视图的本质就是一个虚拟表,不存放任何数据,只存放语句

3、创建视图的方法

A、通过图形--右击新建视图

B、通过命令

实例:创建一个视图存放表的所有数据

4、语法:

view 视图名

as

语句

较为全面:

view 视图名

[with ] -- 加密

as

语句

[with check ] -- 必须是满足条件的记录才参加操作

实例:通过命令创建视图存放所有女同志的信息

view

as

* from where 性别='女'

通过视图插入记录:

into ('0013','张飞','女'...)

* from

限制只能插入女同志记录:

view view2

as

* from where 性别='女'

with check

5.查看视图的源代码:

6、加密使用 with

view

with

as

* from where 性别='女'

7、插入失败的情况:

A、如果基本表有多个的话,则不允许插入

示例:

view

as

员工表.姓名,性别,年龄,地址,网址 from 员工表,公司表,网址表 where 员工表.姓名=公司表.姓名 and 公司表.公司名称 = 网址表 .公司

B、如果语句中含有、group by等不允许插入

示例:

view view3

as

部门 from

into view3 ('后勤部')

C、如果语句中含有字段组合,则也不允许插入

示例:

view view4

as

基本工资+奖金-税金 as 应发工资 from

D、如果其他字段不允许有空值,则也不允许插入

示例:

view view5

as

姓名,性别,年龄,籍贯,部门 from

* from view5

into view5 ('ABC','MM',18,'BJ','技术部')

E、如果违反with check 条件,则也不允许插入

示例:

view

as

食品名称,单价*数量 as 总价 from sp

* from

七、多表联合:union

union与连接的区别:连接的对象是列,只是列的增加,联合的对象是行,只是行的增加

语法: 语句 union 语句

实例: * into from nan union * from nv

* from

说明:多个表的字段数量及类型一定要一致

实例: 姓名,性别,年龄 from

union

* from

说明:如果存在重复记录,则只显示一条,显示所有使用union all

实例:统计男女员工各多少人

性别,count(*) from ( * from nan

union all

* from nv) as

group by 性别

关于我们

最火推荐

小编推荐

联系我们


版权声明:本站内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 88@qq.com 举报,一经查实,本站将立刻删除。备案号:桂ICP备2021009421号
Powered By Z-BlogPHP.
复制成功
微信号:
我知道了