数据库学习笔记(二)

主要学习如何创建和管理SQL Server表

1.表相关的几个概念

1.1数据完整性

数据完整性要求数据库中数字具有准确性,准确性是通过数据库表的设计和约束来实现的.

为了实现完整性,数据库需要做以下两方面的工作

(1)检验每行的数据是否符合要求

(2)检验每列数据是否符合要求

为实现以上要求,SQL Server提供了以下四种类型的约束(Constraint)

a.实体完整性约束

要求表中没一行数据都反映不同的实体,不能存在相同的数据行.

通过索引,唯一约束,主键约束或标识列属性,可以实现标的实体完整性.

b.域完整性约束

指给定列输入的有效性

通过限制数据类型,检查约束,输入格式,外键约束,默认值,非空约束等多种方法.可以实现表的域完整性.

c.引用完整性约束

用来保持已定义表之间的关系

在强制引用完整性时,SQL Servers禁止用户进行下列操作

1)当主表没有关联记录时,将记录添加到子表

2)更改主表中的值,并导致相关表中的记录孤立

3)从主表中删除记录,但在相关表中仍存在与该记录匹配的相关记录

引用完整性通过主键之间的引用关系来实现.

d.自定义完整性约束

用来自定义特定的规则.

1.2主键和外键

(1)主键(Primary Key)

一个列这个列的值用于唯一标识表中的每一行,用来强制表的实体完整性,这样的列称为主键.

一个表只能有一个主键,主键约束确保了表中的汉是唯一的,尽管有的表中允许没有主键,但通常情况下应当为表设置一列为主键.

如果两列或多列组合起来唯一的标识表中的每一行,则该主键也叫做"复合主键".

在选择哪个列作为主键的时候,需要考虑以下两个原则

a.最少性:是指列数最少的键,如何可以从单个主键和组合主键中选择时,应该选择单个主键,这是因为一般情况操作一列比操作多列要快.

b.稳定性:是指列中的数据特征,由于主键通常用来在两个表之间建里联系,所以主键的数据不要经常更新,理想情况下应该永远不变

(2)外键

外键是相对主键而言的,就是子表中对应于主表的列,在子表中称为外键或引用键,他的值要求与主表的主键或者唯一键相对应,外键用来强制引用完整性,一个表可以有多个外键.

创建数据库表实际上就是实施不同的约束,实现完整性规则的过程.

2.创建数据库表

2.1在SQL Server Management Studio中建立数据表

在SSMS中,单击数据库下的表节点,将显示该数据库所有的表

数据库表也分为系统表和用户表

系统表是创建数据库的时候自动生成的,并用来保存数据库自身的信息

用户表存储用户自定义的数据

选择并右击数据库下"表"选项,然后在快捷菜单中选择"新建表"选项,这样就可以在右侧的区域中输入和定义表的不同列.

除了输入列的名称之外,还需要确定该列的数据类型,因此首先要对SQL Server提供的数据类型有所了解

2.2确定列的数据类型

SQL Server数据类型
分类 数据类型说明
二进制数据类型用来存储非字符和文本的数据binary
varbinary
image
固定长度的二进制数据
可变长度的二进制数据
可用来存储图像
文本数据类型字符数据包括任意字母,符号或数字字符的组合char
varchar
nchar
nvarchar
text
ntext
固定长度的非Unicode字符数据,最大长度为8000字符
可变长度的的非Unicode字符数据
固定长度的Unicode字符数据
可变长度的Unicode字符数据
存储长文本信息
存储可变长度的长文本
日期和时间数据类型用于存储日期和时间datetime从1753年1月1日到9999年12月31日,
准确度为1/300秒,或3.33毫秒
数字数据类型该数据类型仅包含数字,包括正数,负数,以及分数int
smallint
tinyint
bigint
float
real
整数


浮点数
货币数据类型用于十进制货币值,并且精确到小数点后4位数字money 
bit数据类型表示是/否的数据,只有两种选择.
在SQL Server中用1和0表示
1表示是,0表示否
bit存储布尔数据类型
Unicode是一种在计算机上使用的字符编码,它为每种语言中的每个字符都设定了统一并且唯一的二进制编码,以满足跨语言,跨平台进行文本转换,处理的要求.

在创建表的时候,选择字符数据类型,还需要输入长度信息,选择数字数据类型不需要输入长度信息,因为其长度是固定的.

2.3保存数据库的表

选择文件->保存,或快捷菜单中的保存图标.

3.完善表的设计结构

3.1是否允许为空值

数据库的列是否允许为空值也是一项约束,如果该列允许为空,则在输入数据行的时候这一项可以不输入.

3.2建立主键

选择要建立主键的列,单击右键,然后在快捷菜单中选择"设置主键"命令就可以了,

设置该列为主键后,该列上会有个钥匙形状图标进行标识

3.3默认值

表的默认值设置能够定义一个键,当用户没有在某一列中输入时,则将所定义的值赋值给这一列.

3.4标识列

很多情况下,存储的信息中很难找到不重复的信息作为列的主键.

SQL Server提供了一个"标识列",标识列本身没有具体的意义,只是用了区别实体

标识列实现方式如下:

a.如果一列的数据属于数字类型(例如整数),则可以把该列定义为标识列.

b.定义标识列之后,还需要分别指定"标识种子"和"标识增量",默认都是1

c.定义了标识列之后,在以后每次输入数据的时候,该列随数据行的增加而自动增加数值,并且不会重复,第一次的数字就是"标识种子"值,以后每次按照"标识递增量"增加数值

标识列中的数据是自动生成的,不能在该列上输入数据,也不允许为标识列指定值

3.5向表中插入数据

只要选择表,然后在快捷菜单中选择"打开表",就可以像表中直接插入数据了

4建立表间关系

4.1如何建里表间关系

在SSMS中可以按照以下步骤建立俩张表之间的关系

(1)在设计表的时候,在成绩表(Score)中的右键菜单中选择"关系选项",将显示"外键关系"对话框,单击添加按钮可以添加新的关系

(2)单击"表和列规范"最右侧的小按钮,将显示要建立关系的主键表以及主键列对话框

(3)选择主键表为XXX,主键列为XXX,对应的外键表的列为XXX

单击确定按钮,保存表的结构,这样他们之间的主--外键关系就建立了.

4.2建立数据库关系图

展开该数据库,选择"数据库关系图",右键单击"新建数据库关系图",然后根据提示新建数据库关系图

5.建立检查约束

5.1如何建立检查约束

在设计表的时候,在快捷菜单中选择"CHECK约束"选项,然后在"CHECK约束"对话框中单击"添加按钮",将添加一个新的约束

单击表达式最右侧的小按钮,可以在弹出的"CHECK约束表达式"对话框中输入以下表达式

单击"确定"按钮后保存表,该约束建立,以后在向表中输入,插入或者更新数据的时候.约束将起作用

6.删除数据库表

对于不在使用的数据库表,可以删除以释放磁盘空间,选择该表,在右键菜单中选择"删除"选项可以把该表直接删除

对于建立主外键关系的表,如果要删除主表,则首先要删除相关的子表以保证数据的引用完整性,否则将报错.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值