主外键,子查询

use lianxi0720
go
create table bumen
(
bcode int primary key,--部门编号
bname varchar(20), --部门名称
bceo varchar(20), --部门负责人
btel varchar(20) --部门电话
)
go
create table renyuan
(
code int primary key identity(10001,1),
name varchar(20),
sex varchar(10),
age int,
bc int
)
go

--设置好外间关系之后来插入数据
--先插入部门的数据
insert into bumen values(1001,‘财务部‘,‘张三‘,‘1234567‘)
insert into bumen values(1002,‘销售部‘,‘李四‘,‘2345678‘)
insert into bumen values(1003,‘人事部‘,‘王五‘,‘3456789‘)
insert into bumen values(1004,‘技术部‘,‘赵六‘,‘4567890‘)
go

select * from bumen
--插入人员表的信息
insert into renyuan values(‘张三‘,‘男‘,33,1001)
insert into renyuan values(‘李四‘,‘女‘,27,1002)
insert into renyuan values(‘王五‘,‘男‘,25,1003)
insert into renyuan values(‘赵六‘,‘女‘,24,1004)

insert into renyuan values(‘王祖蓝‘,‘男‘,38,1001)
insert into renyuan values(‘马蓉‘,‘女‘,33,1002)
insert into renyuan values(‘王宝强‘,‘男‘,36,1003)
insert into renyuan values(‘杨颖‘,‘女‘,28,1004)

insert into renyuan values(‘郑恺‘,‘男‘,29,1001)
insert into renyuan values(‘范冰冰‘,‘女‘,40,1002)
insert into renyuan values(‘张伟‘,‘男‘,30,1003)
insert into renyuan values(‘蔡依林‘,‘女‘,37,1004)

select * from renyuan

--查询年纪最大的人的部门名称
select MAX(age) from renyuan
select bc from renyuan where age=40
select bname from bumen where bcode=1002
--子查询
select bname from bumen where bcode=
(select bc 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 bc=
(select bcode from bumen where bname=‘销售部‘)
)

--查看所有人员信息,将部门编号替代为部门名称
select code , name, sex , age , (select bname from bumen where bumen.bcode= renyuan.bc)as 部门 from renyuan
--将每个人的主管添加上
select code , name, sex , age , (select bname from bumen where bumen.bcode= renyuan.bc)as 部门,
(select bceo from bumen where bumen.bcode= renyuan.bc) from renyuan

时间: 2024-10-09 07:18:48

主外键,子查询的相关文章

主外键 子查询

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

数据库 SQLserver 主外键 子查询

use lianxigo--创建部门表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)

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

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

主外键多表查询demo

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

通过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

oracle 主外键管理

使用主外键约束使得数据具有完整性. 1.查询表上所有的约束 select * from user_constraints t where t.table_name='FATHER'; 2.查询具有主外键关系的表 select c.owner,c.constraint_name,c.constraint_type,c.table_name,f.owner,f.constraint_name,f.constraint_type,f.table_name from dba_constraints c,

关于表的主外键关系练习 师生 分数表

--创建三个表 --表一:学生表 student--学号:code int (主键)从1开始--姓名:name varchar(50)--性别:sex char(10)--班级:banji char(10)--语文教师编号:yujiao int --数学教师编号:yujiao int --英语教师编号:yujiao int --表二:教师表 teacher--教师名字:name --教师编号:code int (主键) 从1001开始--负责课程:lesson char(10)(语文.数学.英语

清除oracl中有主外键关联的表中的部分数据。

1.禁用主外键BEGINfor c in (select 'ALTER TABLE '||TABLE_NAME||' DISABLE CONSTRAINT '||constraint_name||' ' as v_sql from user_constraints where CONSTRAINT_TYPE='R') loop EXECUTE IMMEDIATE c.v_sql;end loop;end;2.清空数据源.清空所有数据.一般情况是对表进行条件删除.begin for ec in (

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

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

oracle主从表主外键对应关系

一.首先让我们来了解下什么是主外键? 1.主键:唯一标识数据表中的某一行 1) 一个表中只能有一个主键.如果在其他字段上建立主键,则原来的主键就会取消.在ACCESS中,虽然主键不是必需的,但最好为每个表都设置一个主键. 2)主键的值不可重复,也不可为空(NULL).主关键字是可选的,并且可在 CREATE TABLE 或 ALTER TABLE 语句中定义. 3)主键的创建:在建置新表格时设定主键的方式 MySQL:  CREATE TABLE Customer (SID integer,La