数据库 SQLserver 主外键 子查询

use lianxi
go
--创建部门表
create table bumen
(
 bmcode int primary key,  --部门编号
 bmname varchar(20),  --部门名字
 bmceo varchar(20),  --部门主管
 bmtel varchar(20),  --部门电话
)
go
--创建人员表
create table renyuan
(
 code int primary key identity(1001,1),  --员工编号
 name varchar (20),  --员工名字
 sex varchar (10),  --员工性别
 age int,  --员工年龄
 ygbm int,  --员工部门
)
go

--设置好外键关系,之后插入数据

--先插入部门的数据
insert into bumen values(1,‘财务部‘,‘张三‘,‘1111111‘)
insert into bumen values(2,‘人事部‘,‘李四‘,‘2222222‘)
insert into bumen values(3,‘技术部‘,‘王五‘,‘3333333‘)
insert into bumen values(4,‘销售部‘,‘赵六‘,‘4444444‘)
go

select *from bumen

--插入人员表的信息

insert into renyuan values(‘张三‘,‘男‘,22,1)
insert into renyuan values(‘李四‘,‘女‘,32,2)
insert into renyuan values(‘王五‘,‘男‘,42,3)
insert into renyuan values(‘赵六‘,‘女‘,52,4)

insert into renyuan values(‘一‘,‘男‘,28,1)
insert into renyuan values(‘二‘,‘女‘,38,2)
insert into renyuan values(‘三‘,‘男‘,48,3)
insert into renyuan values(‘四‘,‘女‘,58,4)

insert into renyuan values(‘五‘,‘男‘,25,1)
insert into renyuan values(‘六‘,‘女‘,35,2)
insert into renyuan values(‘七‘,‘男‘,45,3)
insert into renyuan values(‘八‘,‘女‘,55,4)

select *from renyuan
--delete from bumen
--delete from renyuan

--查询年纪最大的人的部门名称
select bmname from bumen where bmcode=
(select ygbm from renyuan where code=
(select code from renyuan where age=
(select MAX(age) from renyuan)))

--按照年龄排序后的前三个人的所有信息
select top 3 *from renyuan order by age

--按照年龄排序后的6/7/8名人员的所有信息
select top 3 *from renyuan where code not in
(select top 5 code from renyuan order by age)
order by age

--分页查询,要求 一页给显示5条数据
select top 5*from renyuan
select top 5*from renyuan where code not in (select top 5 code from renyuan )
select top 5*from renyuan where code not in (select top 10 code from renyuan )

--总共有几页
select CEILING(COUNT(*)/5.0)from renyuan

--查询销售部里的年龄大于35岁的人的所有信息

select * from renyuan where code in
(select code from renyuan where age>35 and ygbm=
(select bmcode from bumen where bmname=‘销售部‘)
)

--查看所有人员信息,将部门编号替代为部门名称
select code , name, sex , age , (select bmname from bumen where bumen.bmcode= renyuan.ygbm)as 部门 from renyuan

--将每个人的主管添加上
select code , name, sex , age , (select bmname from bumen where bumen.bmcode= renyuan.ygbm)as 部门,
(select bmceo from bumen where bumen.bmcode= renyuan.ygbm) from renyuan

时间: 2024-10-09 13:01:23

数据库 SQLserver 主外键 子查询的相关文章

主外键 子查询

主键.外键和子查询 1 主键和外键的区别 1.1定义主键--唯一标识一条记录,不能有重复的,不允许为空 外键--表的外键是另一表的主键, 外键可以有重复的, 可以是空 1.2作用 主键--用来保证数据完整性 外键--用来和其他表建立联系用的 1.3个数: 主键--主键只能有一个 外键--一个表可以有多个外键 2 主键语句code int PRIMARY KEY IDENTITY(1,1), --PRIMARY KEY 标识主键--IDENTITY(1,1) 从一开始,每增加一行加一:插入数据不用

主键 外键 子查询 练习 学生选修课

create database xuankebiao--创建一个选课表的数据库 go use xuankebiao--使用这个数据库 go create table kechengbiao--添加一个课程表的表 ( kcode int primary key not null,--课程编号,主键 kname varchar(20), klaoshi varchar(20), kdh varchar(20), ) create table xiyuanbiao--添加一个院系的表 ( xicode

sql 数据库查看主外键关联

SELECT 主键列ID=b.rkey ,主键列名=(SELECT name FROM syscolumns WHERE colid=b.rkey AND id=b.rkeyid) ,外键表ID=b.fkeyid ,外键表名称=object_name(b.fkeyid) ,外键列ID=b.fkey ,外键列名=(SELECT name FROM syscolumns WHERE colid=b.fkey AND id=b.fkeyid) ,级联更新=ObjectProperty(a.id,'Cn

批量删除MSSQL 中主外键约束

转自: http://www.maomao365.com/?p=813 在制作 MSSQL同步工具的时候,发现由于主外键的约束,导致数据同步异常,所有我们需要把 读数据库里面的主外键约束,进行批量删除操作. 1 如何批量查询数据库的主外键? 在MSSQL2005以上版本中,系统提供一个系统视图 sys.foreign_keys 可以查询出系统所有的外键约束2 如何批量删除数据库的主外间键? -----------------------------------------------------

通过SQL脚本来查询SQLServer 中主外键关系

在SQLServer中主外键是什么,以及主外键如何创建,在这里就不说了,不懂的可以点击这里,这篇文章也是博客园的博友写的,我觉得总结的很好: 此篇文章主要介绍通过SQL脚本来查看Sqlserver中主外键关系: SELECT f.name AS '关系名称', OBJECT_NAME(f.parent_object_id) AS '表名称', COL_NAME(fc.parent_object_id,fc.parent_column_id) AS '字段名称', OBJECT_NAME (f.r

SQLserver中的视图与主外键的创建

一.背景 原来学过数据库的相关内容,只是形式上的,从来也没有实践过,徐徐飘过而已,如今在做机房时,很多知识需要用到视图,才开始去慢慢的实践. 视图:我理解的就是一张表,它把我们所需要的某个表或某几个表中的部分信息提取出来,形成了一张临时的表. 它主要有两个优点:1.简单,它呈现给我们的数据就是我们想要的数据,没有多余的. 2.安全,提供给用户它们权限范围内的数据 我为什么会用到视图?举一个简单的例子,在查询用户信息时,我们可能会用到两张表中的内容.那么这个时候我就需要将两张表中我需要的数据提取出

主外键多表查询demo

https://www.cnblogs.com/DragonFire/p/6949767.html mySQL练习-主外键多表查询 MySQL练习-主外键多表查询 练习: 1.建立表关系: 请创建如下表,并创建相关约束 创建表并建立表关系 表数据 补充联合唯一 2.操作练习: 1.自行创建测试数据 测试失败数据 2.查询"生物"课程比"物理"课程成绩高的所有学生的学号: 多表嵌套查询 3.查询平均成绩大于60分的同学的学号和平均成绩: HAVING用法 4.查询所有

数据库的SQL语句创建和主外键删除操作

1 create table UserType 2 3 ( 4 5 Id int primary key identity(1,1), Name nvarchar(25) not null 6 7 ) go 1 create table UserInfo 2 3 ( 4 5 Id int primary key identity(1,1), LoginPwd varchar(50) not null, LoginName varchar(50) not null, Name varchar(25

Hinernate进行mysql数据库的逆向工程无法生成主外键关系

(1)我们在进行SSH开发大※的项目的时候,使用myeclipse自带的hibernate的逆向工程工具时,发现竟然无法生成one-to-one  one-to-many等的主外键关系,明明的数据库建时已经有主外键关系了.为啥逆向生成时就不行了呢? (2)首先说一下,我使用的是PHP开发环境Appserv自带的MySQL数据库,不是单独安装的: (3)这是因为数据库引擎的问题, 我们可以在sql命令行中输入命令:show engines; 可以看到default默认的是MyISAM: (3)"M