澳门新浦京娱乐场网站-www.146.net-新浦京娱乐场官网
做最好的网站

Server学习之路,主键和外键

0.目录

0.目录

0.目录

0.目录

1.前言

1.前言

1.前言

1.定义

  • 1.1 如何是主键和外键
  • 1.2 主键和外键的法力
  • 1.3 主键、外键和目录的差距

2.透过SSMS加多数据

2.建构数据库

  • 2.1 透过SSMS建构数据库
  • 2.2 由此SQL语句建构数据库

2.创立数据库

  • 2.1 因此SSMS建设构造数据库
  • 2.2 经过SQL语句创设数据库

2.主键(primary key)

  • 2.1 透过SSMS设置主键
  • 2.2 通过SQL语句设置主键

3.透过SQL语句增添数据

  • 3.1 加多单条数据
  • 3.2 添增多条数据

3.建立表

  • 3.1 通过SSMS建立表
  • 3.2 由此SQL语句建设构造表

3.建立表

  • 3.1 通过SSMS建立表
  • 3.2 经过SQL语句创立表

3.外键(foreign key)

  • 3.1 由此SSMS设置外键
  • 3.2 经过SQL语句设置外键

4.因此任何表导入数据

  • 4.1 经过数据库中的别的表导入数据
  • 4.2 通过excel表导入数据

1.前言

布署是win10 SQL Server 二〇一一,使用的GUI管理工科具是SQL Server 二零一三自带的SQL Server Management Studio(以下简称SSMS)。本体系重要学习SQL Server基础,指标关键是为着利用Python连接、使用数据库。其它在此处贴上SQL Server 二零一二下载地址。

1.前言

布局是win10 SQL Server 2013,使用的GUI管理工具是SQL Server 二零一一自带的SQL Server Management Studio(以下简称SSMS)。本体系主要学习SQL Server基础,指标关键是为了选择Python连接、使用数据库。其余在这边贴上SQL Server 二零一一下载地址。

4.SQL语句向已存在表安装主键和外键

  • 4.1 已存在表安装主键
  • 4.2 已存在表安装外键

1.前言

增加和删除改查都是对数码的操作,当中“增”对应的SQL语句就是“insert”,也正是“插入”的意味。
本篇首要介绍数据的丰盛,有GUI情势的增进,也可能有SQL语句的拉长,还会有导入的拉长。

2.确立数据库

2.起家数据库

1.定义

2.通过SSMS增加数量

2.1选取 数据库->SSMSTest->表->dbo.student 右键单击dbo.student选取编辑前200行。
澳门新浦京娱乐场网站 1
2.2服从下图将数据依次填入,并保留。
澳门新浦京娱乐场网站 2
2.3同理将下图数据输入到course表中,并保存。
澳门新浦京娱乐场网站 3
2.4同理将下图数据输入到sc表中,并保留。
澳门新浦京娱乐场网站 4
2.5至此,已将数据增进到三张表中。

2.1 通过SSMS创设数据库

2.1.1开荒SSMS,连接上数据库。
如图所示,找到数据库,右键单击数据库,选择新建数据库。
澳门新浦京娱乐场网站 5
澳门新浦京娱乐场网站 6
2.1.2在数据库名称处输入SSMSTest,接纳明确。
(首要数据文件:*.mdf,日志文件*.ldf,次要数据文件*.ndf)
澳门新浦京娱乐场网站 7
2.1.3右键数据库点击刷新大概按F5,然后就能够在数据库上边看到刚刚创立的SSMSTest了。
澳门新浦京娱乐场网站 8
(能够见到SSMSTest左侧的Logo是圆柱体,能够知道为每三个圆柱体都意味着着三个数据库。)
2.1.4至此,已经济建设立了名叫SSMSTest的数据库。

2.1 通过SSMS塑造数据库

2.1.1开辟SSMS,连接上数据库。
如图所示,找到数据库,右键单击数据库,选取新建数据库。
澳门新浦京娱乐场网站 9
澳门新浦京娱乐场网站 10
2.1.2在数据库名称处输入SSMSTest,选取分明。
(首要数据文件:*.mdf,日志文件*.ldf,次要数据文件*.ndf)
澳门新浦京娱乐场网站 11
2.1.3右键数据库点击刷新恐怕按F5,然后就能够在数据库上面看到刚刚创造的SSMSTest了。
澳门新浦京娱乐场网站 12
(能够观察SSMSTest右侧包车型地铁Logo是圆柱体,能够掌握为每二个圆柱体都意味着着三个数据库。)
Server学习之路,主键和外键。2.1.4至此,已经济建设立了名叫SSMSTest的数据库。

1.1 什么是主键和外键

关系型数据库中的一条记下中有若干性格情,若里面某四个属性组(注意是组)能独一标志一条记下,该属性组就能够改为一个主键。
比如:
学生表(学号,姓名,性别,班级)
其间每种学生的学号是独一的,学号便是贰个主键

课程表(课程编号,课程名,学分)
中间课程编号是独一的,课程编号正是二个主键

成绩表(学号,课程号,成绩)
成就表中单一贰天性质不能独一标记一条记下,学号和课程号的组成才足以独一标志一条记下,所以 学号和科目号的属性组是三个主键

成就表中的学号不是成绩表的主键,但它和学员表中的学号相对应,何况学生表中的学号是学生表的主键,则称成绩表中的学号是学生表的外键

3.经过SQL语句增添数据

2.2 通过SQL语句创设数据库

2.2.1在最伊始的分界面点击新建查询。
澳门新浦京娱乐场网站 13
2.2.2在点击新建查询出来的分界面中输入以下代码:

create database SQLTest

澳门新浦京娱乐场网站 14
2.2.3点击上边的奉行,或然按F5之后出来了如下画面。
澳门新浦京娱乐场网站 15
2.2.4右键数据库点击刷新恐怕按F5,然后就能够在数据库上边看到刚刚确立的SQLTest了。
澳门新浦京娱乐场网站 16
2.2.5至此,已经确立了名叫SQLTest的数据库。

2.2 通过SQL语句创立数据库

2.2.1在最早先的分界面点击新建查询。
澳门新浦京娱乐场网站 17
Server学习之路,主键和外键。2.2.2在点击新建查询出来的分界面中输入以下代码:

create database SQLTest

澳门新浦京娱乐场网站 18
2.2.3点击下边包车型大巴推行,或许按F5之后出来了之类画面。
澳门新浦京娱乐场网站 19
2.2.4右键数据库点击刷新恐怕按F5,然后就能够在数据库下边看看刚刚创设的SQLTest了。
澳门新浦京娱乐场网站 20
2.2.5至此,已经建设构造了名称叫SQLTest的数据库。

1.2 主键和外键的作用

1.2.1为了保证关周详据库的完整性:
主键是能鲜明一条记下的举世无双标志,比如,一条记下包括身份正号,姓名,年龄。身份ID号是唯一能分明你这个人的,别的都大概有双重,所以,居民身份证号是主键。

外键用于与另一张表的涉嫌。是能分明另一张表记录的字段,用于保持数据的一致性。比方,A表中的一个字段,是B表的主键,那他就能够是A表的外键。

1.2.2起约束效劳:
外键取值法规:空值或参照的主键值。
(1)插入非空值时,假如主键表中未有那个值,则不可能插入。
(2)更新时,无法改为主键表中未有的值。
(3)删除主键表记录时,你能够在建国门外键时选定外键记录一齐级联删除如故驳回删除。
(4)更新主键记录时,相同有级联更新和拒绝执行的精选。

3.1 加多单条数据

3.1.1抉择 数据库->SQLTest,点击新建查询,注意左上角的框里是SQLTest,不是的话手动选项一下。
3.1.2在点击新建查询出来的分界面中输入以下代码:

insert into student values('0001', '张三', 18, '男', '文学院')
insert into student values('0002', '李四', 19, '女', '理学院')
insert into student values('0003', '王五', 20, '男', '文学院')
insert into student values('0004', '赵六', 21, '女', '理学院')

insert into course values('1001', '英语', null, 3)
insert into course values('1002', '体育', null, 3)
insert into course values('1003', '书法', null, 3)

insert into sc values('0001', '1001', 90)
insert into sc values('0001', '1002', 80)
insert into sc values('0001', '1003', 70)
insert into sc values('0002', '1001', 75)
insert into sc values('0002', '1002', 85)
insert into sc values('0002', '1003', 95)

3.1.3点击施行。
澳门新浦京娱乐场网站 21
3.1.4取舍 数据库->SQLTest->表->dbo.student 右键单击dbo.student采纳编辑前200行。
澳门新浦京娱乐场网站 22
3.1.5得以看到student表中曾经成功增加了数额,同理也能够看来另外七个表中也幸不辱命增加了多少。
澳门新浦京娱乐场网站 23
3.1.6至此,已将数据增加到三张表中。

3.建立表

3.建立表

1.3 主键、外键和目录的分别

区别 主键 外键 索引
定义 唯一标识一条记录,不能有重复的,不允许为空 表的外键是另一表的主键, 外键可以有重复的, 可以是空值 该字段没有重复值,但可以有一个空值
作用 用来保证数据完整性 用来和其他表建立联系用的 是提高查询排序的速度
个数 主键只能有一个 一个表可以有多个外键 一个表可以有多个唯一索引

参照他事他说加以考察网址:SQL的主键和外键的成效

3.2 添增添条数据

并且丰硕多条数据,只需选取union关键字就可以。

insert into student(sno, sname, sage, ssex, sdept)
select '0001', '张三', 18, '男', '文学院' union
select '0002', '李四', 19, '女', '理学院' union
select '0003', '王五', 20, '男', '文学院' union
select '0004', '赵六', 21, '女', '理学院'

insert into course(cno, cname, cpno, ccredit)
select '1001', '英语', null, 3 union
select '1002', '体育', null, 3 union
select '1003', '书法', null, 3

insert into sc(sno, cno, grade)
select '0001', '1001', 90 union
select '0001', '1002', 80 union
select '0001', '1003', 70 union
select '0002', '1001', 75 union
select '0002', '1002', 85 union
select '0002', '1003', 95

3.1 通过SSMS建立表

3.1.1开荒刚刚创设的SSMSTest数据库,找到表(数据库->SSMSTest->表)。
右键单击表,选取新建表。
澳门新浦京娱乐场网站 24
3.1.2在点击新建表出来的分界面中遵循下图输入:
澳门新浦京娱乐场网站 25
3.1.3按Ctrl S或许点击最上面菜单栏中的文件,选择保存。
输入欲保存的表名称student,并点击明确。
澳门新浦京娱乐场网站 26
3.1.4再次点击新建表,根据下图输入,何况保留为course。
澳门新浦京娱乐场网站 27
澳门新浦京娱乐场网站 28
3.1.5双注重击新建表,根据下图输入,并且保留为sc。
澳门新浦京娱乐场网站 29
澳门新浦京娱乐场网站 30
3.1.6在 数据库->SSMSTest->表 这里刷新一下,就能够意识刚刚构建的三张表了。
澳门新浦京娱乐场网站 31
(选用 数据库->SSMSTest->表->dbo.student 右键单击采用设计,就足以查看刚刚确立的表的有血有肉音讯了。)

3.1 通过SSMS建立表

3.1.1开垦刚刚创设的SSMSTest数据库,找到表(数据库->SSMSTest->表)。
右键单击表,选择新建表。
澳门新浦京娱乐场网站 32
3.1.2在点击新建表出来的分界面中遵守下图输入:
澳门新浦京娱乐场网站 33
3.1.3按Ctrl S大概点击最上面菜单栏中的文件,选取保存。
输入欲保存的表名称student,并点击显明。
澳门新浦京娱乐场网站 34
3.1.4重新点击新建表,依照下图输入,何况保留为course。
澳门新浦京娱乐场网站 35
澳门新浦京娱乐场网站 36
3.1.5再一次点击新建表,依照下图输入,而且保留为sc。
澳门新浦京娱乐场网站 37
澳门新浦京娱乐场网站 38
3.1.6在 数据库->SSMSTest->表 这里刷新一下,就能够开采刚刚确立的三张表了。
澳门新浦京娱乐场网站 39
(选用 数据库->SSMSTest->表->dbo.student 右键单击接纳设计,就足以查看刚刚成立的表的现实音讯了。)

2.主键(primary key)

4.通过别的表导入数据

3.2 通过SQL语句创设表

3.2.1精选 数据库->SQLTest,然后采取新建查询。注意左上角的那贰个框中要选中SQLTest,如若不是的话就手动采取一下。
澳门新浦京娱乐场网站 40
3.2.2在新建查询出来的界面中输入以下代码:

--这是SQL中的注释信息,使用两个减号来注释。
drop table student    --删除表student
create table student  --创建表student
(sno char(4),
sname char(8),
sage int,
ssex char(2),
sdept char(20)
)

drop table course    --删除表course
create table course  --创建表course
(cno char(4),
cname char(8),
cpno char(4),
ccredit int
)

drop table sc    --删除表sc
create table sc  --创建表sc
(sno char(4),
cno char(4),
grade int
)

3.2.3点击施行,会并发下边包车型地铁警示。那是因为大家还尚未开创表,所以没东西删除。只须要再一次点击实施就可以。
澳门新浦京娱乐场网站 41
澳门新浦京娱乐场网站 42
3.2.4在 数据库->SQLTest->表 这里刷新一下,就能意识刚刚确立的三张表了。
澳门新浦京娱乐场网站 43
(选拔 数据库->SQLTest->表->dbo.student 右键单击选取设计,就足以查看刚刚创建的表的有血有肉音信了。)

3.2 通过SQL语句创建表

3.2.1取舍 数据库->SQLTest,然后选拔新建查询。注意左上角的那些框中要选中SQLTest,若是或不是的话就手动选用一下。
澳门新浦京娱乐场网站 44
3.2.2在新建查询出来的分界面中输入以下代码:

--这是SQL中的注释信息,使用两个减号来注释。
drop table student    --删除表student
create table student  --创建表student
(sno char(4),
sname char(8),
sage int,
ssex char(2),
sdept char(20)
)

drop table course    --删除表course
create table course  --创建表course
(cno char(4),
cname char(8),
cpno char(4),
ccredit int
)

drop table sc    --删除表sc
create table sc  --创建表sc
(sno char(4),
cno char(4),
grade int
)

3.2.3点击实施,会并发上面包车型客车警示。那是因为大家还未有开创表,所以没东西删除。只需求重新点击施行就能够。
澳门新浦京娱乐场网站 45
澳门新浦京娱乐场网站 46
3.2.4在 数据库->SQLTest->表 这里刷新一下,就能够意识刚刚创立的三张表了。
澳门新浦京娱乐场网站 47
(选拔 数据库->SQLTest->表->dbo.student 右键单击采用设计,就足以查看刚刚确立的表的有血有肉新闻了。)

2.1 通过SSMS设置主键

2.1.1展开事先建构的表,即选用 数据库->SSMSTest->表->dbo.student 右键单击dbo.student采纳设计。
澳门新浦京娱乐场网站 48
2.1.2在sno处右键单击选择设置主键。
澳门新浦京娱乐场网站 49
2.1.3那时候能够见到sno前面出现了多个钥匙同样的Logo,那就代表着sno已经被安装为主键了。点击一下保存照旧按Ctrl S就能够保存了。
2.1.4依照以上步骤张开dbo.course,右键单击cno选用设置主键。保存。
澳门新浦京娱乐场网站 50
2.1.5遵照以上步骤张开dbo.sc,按住shift依次点击sno和cno前面包车型大巴小框开关,就能够何况入选这两行。然后再右键单击选拔设置主键。保存。
澳门新浦京娱乐场网站 51
澳门新浦京娱乐场网站,2.1.6至此,已经成功了三张表的主键设置。

4.1 通过数据库中的别的表导入数据

SQL Server语句把三个表的多寡插入到另贰个表,有以下二种格局:
4.1.1率先种,当要插入的表(student_back)空中楼阁时

--把表student中性别为'男'的学生信息插入到表student_back(不存在)中
select * into student_back from student where ssex='男'

4.1.2次之种,当要插入的表已经存在时

--把表student中性别为'女'的学生信息插入到表student_back(已存在)中
insert into student_back(bno, bname, bage, bsex, bdept)
select sno, sname, sage, ssex, sdept from student
where ssex='女'

参照网址:SQL Server插入数据和删除数据

2.2 通过SQL语句设置主键

2.2.1抉择 数据库->SQLTest,点击新建查询,注意左上角的框里是SQLTest,不是的话手动选项一下。
澳门新浦京娱乐场网站 52
2.2.2在点击新建查询出来的界面中输入以下代码:

--这是SQL中的注释信息,使用两个减号来注释。
drop table student    --删除表student
create table student  --创建表student
(sno char(4) primary key,  --设置sno为主键
sname char(8),
sage int,
ssex char(2),
sdept char(20)
)

drop table course    --删除表course
create table course  --创建表course
(cno char(4) primary key,  --设置cno为主键
cname char(8),
cpno char(4),
ccredit int
)

drop table sc    --删除表sc
create table sc  --创建表sc
(sno char(4),
cno char(4),
grade int,
primary key(sno, cno)  --设置sno和cno的属性组为主键
)

2.2.3点击上边包车型大巴试行,大概按F5之后出来了如下画面。
澳门新浦京娱乐场网站 53
2.2.4右键SQLTest点击刷新可能按F5,然后选拔表,右键单击选拔设计,能见到三张表都已经设置主键了。
澳门新浦京娱乐场网站 54
澳门新浦京娱乐场网站 55
澳门新浦京娱乐场网站 56
2.2.5至此,已经达成了三张表的主键设置。

4.2 通过excel表导入数据

4.2.1展开excel表,观望第一行是字段名字可能实际多少,作者的表这里首先行是数据。
澳门新浦京娱乐场网站 57
4.2.2取舍 数据库->SQLTest,右键单击选取 职务->导入数据。
澳门新浦京娱乐场网站 58
4.2.3点击下一步。
澳门新浦京娱乐场网站 59
4.2.4多少源选用excel,文件路线选拔你的文书路线,凡是excel版本在二零零七以上的都选取二〇〇七,非常注意首行富含列名称这里,因为本人的excel中首行是数码,所以要把非常√打消掉。然后点击下一步。
澳门新浦京娱乐场网站 60
4.2.5比如出现了下图的错误,就去那一个网站() 下载安装好之后重试就能够。
澳门新浦京娱乐场网站 61
4.2.6按您的数据库登陆格局采纳身份验证格局。然后点击下一步。
澳门新浦京娱乐场网站 62
4.2.7点击下一步。
澳门新浦京娱乐场网站 63
4.2.8在目的那里选拔student表。然后点击下一步。
澳门新浦京娱乐场网站 64
4.2.9点击下一步。
澳门新浦京娱乐场网站 65
4.2.10点击下一步。
澳门新浦京娱乐场网站 66
4.2.10点击完成。
澳门新浦京娱乐场网站 67
4.2.11到此处就意味着着成功导入了。
澳门新浦京娱乐场网站 68
4.2.12选用 数据库->SQLTest->表->dbo.student 右键单击dbo.student采纳编辑前200行,能够看到刚刚的数额现已打响导入。
澳门新浦京娱乐场网站 69

3.外键(foreign key)

3.1 通过SSMS设置外键

3.1.1接纳 数据库->SSMSTest->表->dbo.sc 右键单击dbo.sc选取设计。
澳门新浦京娱乐场网站 70
3.1.2右键单击sno只怕cno,选取涉及。
澳门新浦京娱乐场网站 71
3.1.3点击左下角的增加。
澳门新浦京娱乐场网站 72
3.1.4在 表和列标准前边的框中式点心一下,就能产出前面包车型地铁多个点的按键,点击五个点Logo的可怜按键。
澳门新浦京娱乐场网站 73
3.1.5因为sc中的sno援用了student中的sno,所以主键表这里接纳student,然后选取相应的sno。而sc中的cno因为援引的是course中的sc,所以在此处没有办法设置外键,供给等下再设置,在这里把它选拔为无。点击分明。
澳门新浦京娱乐场网站 74
澳门新浦京娱乐场网站 75
3.1.6双重视击左下角的拉长。依照上述手续将主键表接纳为course,选拔对应sc中的cno的course中的cno,并点击明确。
澳门新浦京娱乐场网站 76
澳门新浦京娱乐场网站 77
澳门新浦京娱乐场网站 78
3.1.7点击关闭,然后保留,在产出的警示中精选是。
澳门新浦京娱乐场网站 79
澳门新浦京娱乐场网站 80
3.1.8抉择 数据库->SSMSTest->数据库关系图 右键单击选用新建数据库关系图,在弹窗中精选是,然后将三张表都添加,然后就能够看到三张表之间的涉嫌了。
澳门新浦京娱乐场网站 81
澳门新浦京娱乐场网站 82
澳门新浦京娱乐场网站 83
澳门新浦京娱乐场网站 84

3.2 通过SQL语句设置外键

3.2.1取舍 数据库->SQLTest,然后采纳新建查询。注意左上角的相当框中要选中SQLTest,如若不是的话就手动选项一下。
3.2.2在新建查询出来的分界面中输入以下代码:

--这是SQL中的注释信息,使用两个减号来注释。
drop table sc    --删除表sc
create table sc  --创建表sc
(sno char(4) foreign key references student(sno),  --加外键约束
cno char(4) foreign key references course(cno),  --加外键约束
grade int,
primary key(sno, cno)  --设置sno和cno的属性组为主键
)

3.2.3点击实施。
澳门新浦京娱乐场网站 85
3.2.4精选 数据库->SSMSTest->数据库关系图 右键单击采用新建数据库关系图,在弹窗中采纳是,然后将三张表都增加,然后就能够看来三张表之间的涉及了。
澳门新浦京娱乐场网站 86

4.SQL语句向已存在表安装主键和外键

4.1 已存在表安装主键

格式为:

alter table 表名
add constraint PK_字段名--"PK"为主键的缩写,字段名叫要在其上创办主键的字段名,'PK__字段名'就为约束名
primary key (字段名) --字段名同上

如:

alter table student
add constraint PK_sno
primary key (sno)

PS:即使施行以上代码有以下警告,表达在建表的时候未有给sno增多非空约束,即须求在建表的时候利用以下代码。
澳门新浦京娱乐场网站 87

drop table student    --删除表student
create table student  --创建表student
(sno char(4) not null,  --加非空约束,不加"not null" 默认为:可以为空
sname char(8),
sage int,
ssex char(2),
sdept char(20)
)

4.2 已存在表安装外键

格式为:

alter table 表名
add constraint FK_字段名--"FK"为外键的缩写
foreign key (字段名) references 关联的表名(关联的字段名) --注意'关联的表名'和'关联的字段名'

如:

alter table sc add constraint FK_sno foreign key (sno) references student(sno)

本文由澳门新浦京娱乐场网站发布于数据库,转载请注明出处:Server学习之路,主键和外键