2016年11月17日--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时不用添加此列
设置外键:
在要设置外键的表上右键,选择设计,在需要设置外键的列名前右键,如下图:

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

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

点击确定,再点击确定,操作成功。
子查询,又叫做嵌套查询。
将一个查询语句做为一个结果集供其他SQL语句使用,就像使用普通的表一样,被当作结果集的查询语句被称为子查询。
子查询有两种类型:
一种是只返回一个单值的子查询,这时它可以用在一个单值可以使用的地方,这时子查询可以看作是一个拥有返回值的函数;
另外一种是返回一列值的子查询,这时子查询可以看作是一个在内存中临时存在的数据表。

练习:
建立两个表:
1.选课ID 科目名称 老师姓名 老师年龄
2.学号 姓名 选课ID
某个学生选的 哪门课 哪个老师 多少岁
有几个人选了 老师A 都叫什么
用代码 给 学生表加一个年龄列
我就要比我小的老师教
老师A的学生里 年龄最小的
所有选择 数学的学生 信息
所有学生选择的老师年龄大于20的 学生信息


--我就要选 A老师 教的课 select * from laoshi where name='老师A' --我就要选 老师年龄最小的 课 * from laoshi order by age --某个学生选的 哪门课 哪个老师 多少岁 select code,name,(select kemu from laoshi where xuanke.xuanke=code ),(select name from laoshi where xuanke.xuanke=code ),(select age from laoshi where xuanke.xuanke=code ) from xuanke --有几个人选了 老师A 都叫什么 select code,name,COUNT(*) from xuanke where xuanke=(select code from laoshi where name='老师A') --用代码 给 学生表加一个年龄列 alter table xuanke add agee int --我就要比我小的老师教 ) --老师A的学生里 年龄最小的 select * from xuanke where agee=(select min(agee) from xuanke where xuanke=(select code from laoshi where name='老师A')) --所有选择 数学的学生 信息 select * from xuanke where xuanke in (select code from laoshi where kemu='数学') --所有学生选择的老师年龄大于20的 学神信息 )
2016年11月17日--SQL主、外键,子查询的更多相关文章
- 2016年11月17日 星期四 --出埃及记 Exodus 20:8
2016年11月17日 星期四 --出埃及记 Exodus 20:8 "Remember the Sabbath day by keeping it holy.当记念安息日,守为圣日.
- 2016年11月14日--SQL创建数据库、表-查、插、删、改
--创建数据库(create database 数据库名)create database hq20161114go --使用选择数据库(use 数据库名)use hq20161114go --创建学生 ...
- 2016年11月26日 星期六 --出埃及记 Exodus 20:17
2016年11月26日 星期六 --出埃及记 Exodus 20:17 "You shall not covet your neighbor's house. You shall not c ...
- 2016年11月1日 星期二 --出埃及记 Exodus 19:17
2016年11月1日 星期二 --出埃及记 Exodus 19:17 Then Moses led the people out of the camp to meet with God, and t ...
- 2016年12月17日 星期六 --出埃及记 Exodus 21:12
2016年12月17日 星期六 --出埃及记 Exodus 21:12 "Anyone who strikes a man and kills him shall surely be put ...
- 2016年11月30日 星期三 --出埃及记 Exodus 20:21
2016年11月30日 星期三 --出埃及记 Exodus 20:21 The people remained at a distance, while Moses approached the th ...
- 2016年11月29日 星期二 --出埃及记 Exodus 20:20
2016年11月29日 星期二 --出埃及记 Exodus 20:20 Moses said to the people, "Do not be afraid. God has come t ...
- 2016年11月28日 星期一 --出埃及记 Exodus 20:19
2016年11月28日 星期一 --出埃及记 Exodus 20:19 and said to Moses, "Speak to us yourself and we will listen ...
- 2016年11月27日 星期日 --出埃及记 Exodus 20:18
2016年11月27日 星期日 --出埃及记 Exodus 20:18 When the people saw the thunder and lightning and heard the trum ...
随机推荐
- ubuntu-E:Encountered a section with no Package: header的解决办法 (转)
E:Encountered a section with no Package: header, E:Problem with MergeList /var/lib/apt/lists/cn.arch ...
- (新手向)基于Bootstrap的简单轮播图的手机实现
个人电脑里存了不少适合手机欣赏的图片,但是放手机里看是件很占据资源的事.鉴于家里有一台电脑经常开着,正好用来做家庭局域网共享,于是笔者就设想通过一种比较简单环保的思路.通过手机访问电脑内的图片. 首先 ...
- Third-person Camera Navigation
http://msdn.microsoft.com/en-us/library/bb203909(v=xnagamestudio.31).aspx http://xbox.create.msdn.co ...
- IIS 8.5 伪静态去掉index.php thinkphp 3.2.2
因为测试都是在win下开发的 win8.1企业版 II8.5 首先安装 Thinkphp 3.2.2 URL Rewrite Module 2.0 http://www.iis.net/downlo ...
- Yii2 使用八 使用scenarios
在model里定义 public function scenarios() { return [ 'add' => ['title', 'content'], ]; } 在rules里定义 [[ ...
- Mac终端Terminal调用Sublime Text
Sublime Text 本身提供了命令行工具, 只需要在 Terminal 中输入以下内容就行了 sudo ln -s /Applications/Sublime\ Text.app/Content ...
- Orchard源码分析(5.1):Host初始化(DefaultOrchardHost.Initialize方法)
概述 Orchard作为一个可扩展的CMS系统,是由一系列的模块(Modules)或主题(Themes)组成,这些模块或主题统称为扩展(Extensions).在初始化或运行时需要对扩展进行安装:De ...
- C#技术漫谈之垃圾回收机制(GC)(转)
GC的前世与今生 虽然本文是以.NET作为目标来讲述GC,但是GC的概念并非才诞生不久.早在1958年,由鼎鼎大名的图林奖得主John McCarthy所实现的Lisp语言就已经提供了GC的功能,这是 ...
- 本地自定义了404 和500 错误处理 部署到IIS上显示 服务器内部错误
问题如图 解决办法如下,在IIS上设置一下即可
- gflags
一.安装配置 下载地址: https://code.google.com/p/gflags/downloads/list 解压安装: tar zxvf gflags-2.0.tar.gz && ...