博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
子查询 附加主外键的图
阅读量:5129 次
发布时间:2019-06-13

本文共 2514 字,大约阅读时间需要 8 分钟。

子查询,又叫做嵌套查询。

      将一个查询语句做为一个结果集供其他SQL语句使用,就像使用普通的表一样,被当作结果集的查询语句被称为子查询。

子查询有两种类型:

一种是只返回一个单值的子查询,这时它可以用在一个单值可以使用的地方,这时子查询可以看作是一个拥有返回值的函数;

另外一种是返回一列值的子查询,这时子查询可以看作是一个在内存中临时存在的数据表。

主键

数据库主键是指表中一个列或列的组合,其值能唯一地标识表中的每一行。这样的一列或多列称为表的主键,通过它可强制表的实体完整性。当创建或更改表时可通过定义 PRIMARY KEY约束来创建主键。一个表只能有一个 PRIMARY KEY 约束,而且 PRIMARY KEY 约束中的列不能接受空值。由于 PRIMARY KEY 约束确保唯一数据,所以经常用来定义标识列。

主键的作用

主键的主要作用如下:

1)保证实体的完整性;

2)加快数据库的操作速度;

3) 在表中添加新记录时,数据库会自动检查新记录的主键值,不允许该值与其他记录的主键值重复;

4) 数据库自动按主键值的顺序显示表中的记录。如果没有定义主键,则按输入记录的顺序显示表中的记录。

 

主键具有的特点:唯一性、非空性。

code int primary key,   主键不能为空,不能重复,确保唯一性

code int primary key identity(1,1)     从1开始,每次增长1,添加values时不用添加此列

设置外键:

      在要设置外键的表上右键,选择设计,在需要设置外键的列名前右键,如下图:

选择关系单击,出现对话框,单击添加,单击表和列规范后面的省略号,如下图:

在出现的界面做出如下操作:

 

点击确定,再点击确定,操作成功。

create table xueke(code int primary key identity(1,1),kemu char(10),tname varchar(10),age int)insert into xueke values('语文','张生',28)insert into xueke values('数学','张三',29)insert into xueke values('英语','李四',30)insert into xueke values('物理','王五',35)insert into xueke values('化学','王武',40)insert into xueke values('计算机','马六',45)insert into xueke values('生物','冯七',50)insert into xueke values('代数','钱吧',30)insert into xueke values('体育','如烟',32)gocreate table stu (scode int primary key identity(1001,1),xname varchar(10),xuanke int)insert into stu values('A',5)insert into stu values('B',2)insert into stu values('C',3)insert into stu values('D',6)insert into stu values('E',9)insert into stu values('F',7)insert into stu values('G',1)insert into stu values('H',4)insert into stu values('I',3)insert into stu values('J',8)insert into stu values('K',5)go--张生所教科目及代号select code, kemu from xueke where tname='张生'--年龄最小的老师所教的科目及代号select code,kemu from xueke where age=(select min(age) from xueke)--学号是1005的学生所选的老师的详细信息select * from xueke where code=(select xuanke from stu where scode=1005)--选李四的学生姓名select xname from stu where xuanke=(select code from xueke where tname='李四')--选李四的学生人数select count(*) from stu where xuanke=(select code from xueke where tname='李四')alter table stu add age intsp_rename 'stu.age','nl'update xueke set kemu='数学' where code=8--比1003年龄小的老师的信息select * from xueke where age<(select nl from stu where scode=1003)--李四所教学生里年龄最小的select *from stu where nl=(select min(nl) from stu  where xuanke=(select code from xueke where tname='李四'))--选数学的学生的信息select * from stu where xuanke in (select code from xueke where kemu='数学')--所有学生选择的老师年龄大于35的学生信息select * from stu where xuanke in (select code from xueke where age>35)

转载于:https://www.cnblogs.com/baimangguo/p/6085426.html

你可能感兴趣的文章
经典算法系列一-快速排序
查看>>
设置java web工程中默认访问首页的几种方式
查看>>
ASP.NET MVC 拓展ViewResult实现word文档下载
查看>>
8、RDD持久化
查看>>
第二次团队冲刺--2
查看>>
VMware Tools安装
查看>>
Linux上架设boost的安装及配置过程
查看>>
[转载]加密算法库Crypto——nodejs中间件系列
查看>>
zoj 2286 Sum of Divisors
查看>>
使用Xshell密钥认证机制远程登录Linux
查看>>
OpenCV之响应鼠标(三):响应鼠标信息
查看>>
Android 画图之 Matrix(一)
查看>>
List<T>列表通用过滤模块设计
查看>>
【模板】最小生成树
查看>>
设计模式之结构型模式
查看>>
poj2569
查看>>
使用pygal_maps_world.i18n中数据画各大洲地图
查看>>
sql server必知多种日期函数时间格式转换
查看>>
jQuery EasyUI 的下拉选择combobox后台动态赋值
查看>>
timeline时间轴进度“群英荟萃”
查看>>