主键

数据库主键是指表中一个列或列的组合,其值能唯一地标识表中的每一行。这样的一列或多列称为表的主键,通过它可强制表的实体完整性。当创建或更改表时可通过定义 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   都叫什么

用代码  给  学生表加一个年龄列

我就要比我小的老师教

老师A的学生里 年龄最小的

所有选择  数学的学生 信息

所有学生选择的老师年龄大于20的  学生信息

 
表一列:   选课ID 科目名称 老师姓名 老师年龄
 
表二 列:学号 姓名 选课ID
 
--我就要选  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主、外键,子查询的更多相关文章

  1. 2016年11月17日 星期四 --出埃及记 Exodus 20:8

    2016年11月17日 星期四 --出埃及记 Exodus 20:8 "Remember the Sabbath day by keeping it holy.当记念安息日,守为圣日.

  2. 2016年11月14日--SQL创建数据库、表-查、插、删、改

    --创建数据库(create database 数据库名)create database hq20161114go --使用选择数据库(use 数据库名)use hq20161114go --创建学生 ...

  3. 2016年11月26日 星期六 --出埃及记 Exodus 20:17

    2016年11月26日 星期六 --出埃及记 Exodus 20:17 "You shall not covet your neighbor's house. You shall not c ...

  4. 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 ...

  5. 2016年12月17日 星期六 --出埃及记 Exodus 21:12

    2016年12月17日 星期六 --出埃及记 Exodus 21:12 "Anyone who strikes a man and kills him shall surely be put ...

  6. 2016年11月30日 星期三 --出埃及记 Exodus 20:21

    2016年11月30日 星期三 --出埃及记 Exodus 20:21 The people remained at a distance, while Moses approached the th ...

  7. 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 ...

  8. 2016年11月28日 星期一 --出埃及记 Exodus 20:19

    2016年11月28日 星期一 --出埃及记 Exodus 20:19 and said to Moses, "Speak to us yourself and we will listen ...

  9. 2016年11月27日 星期日 --出埃及记 Exodus 20:18

    2016年11月27日 星期日 --出埃及记 Exodus 20:18 When the people saw the thunder and lightning and heard the trum ...

随机推荐

  1. vbox 网络配置文件

    sz /etc/sysconfig/network-scripts/ifcfg-eth1 #VAGRANT-BEGIN # The contents below are automatically g ...

  2. Linux学习笔记(二)2015.4.14

    笔记2.1 Q:登陆命令  A:刚开始登陆的是安装Linux时设置的普通用户,如lin,输入su - root后,成为root用户 笔记2.2 Q:切换控制台  A:ctrl+alt+F1-F7可以切 ...

  3. ecshop 的transport.js 与jqueyr冲突

    1111 {insert_scripts files='common.js,global.js,transport.js'} <script type="text/javascript ...

  4. Xcode文档安装

    找到所需文档的下载地址,搜索.dmg 安装位置

  5. EasyDarwin

     1.EasyDarwin多媒体点播实现 新版本EasyDarwin都加入了中心管理服务EasyCMS, 对于点播系统,EasyCMS不是必须的. MP4点播,需要将mp4文件hint之后才行,MP4 ...

  6. 平衡二叉树(AVL)c语言实现

    参考: 二叉平衡树的插入和删除操作 平衡二叉树,AVL树之图解篇 [查找结构3]平衡二叉查找树 [AVL] #include "stdio.h" #include "st ...

  7. MQ介绍

    MQ    MQ传递主干, 在世界屡获殊荣. 它帮您搭建企业服务总线(ESB)的基础传输层.IBM WebSphere MQ为SOA提供可靠的消息传递.它为经过验证的消息传递主干, 全方位. 多用途的 ...

  8. [转载]SVN如何恢复已删除文件或文件夹

    http://blog.sina.com.cn/s/blog_694d806e0100kaqz.html 用TortoiseSVN: 1.在本地working copy中,用TortoiseSVN-& ...

  9. vs2010 中无法打开 源文件 "stdafx.h" 未定义标识符 “xxx”

    解决方案: 项目属性->配置属性->C/C++->常规->附加包含目录->$(ProjectDir)

  10. CATransition-转场动画

    CAAnimation的子类,用于做转场动画,能够为层提供移出屏幕和移入屏幕的动画效果.iOS比Mac OS X的转场动画效果少一点 UINavigationController就是通过CATrans ...