SQLserver学习day03 数据表基本概念和操作的学习与管理 数据库关系图

来源:互联网 发布:js === 编辑:程序博客网 时间:2024/05/22 06:58

数据表管理

数据表基本概念

主键

:表中一列或者多列组合的,能够唯一的标识表中的每一行,一个表只能有一个主键,多列组合当主键称为复合主键。

外键

:相对应于主键而言。一个表中可以有多个外键。

标识列:

又叫做自动增长列或者自动编号,本身没有具体的含义只是用来标识不同的实体。
- 标识列用来区分不同的实体
- 定义成标识列时,需要指定标识种子和标识增量,默认值都是1
- 标识列通常也被定义为主键
- 定义为标识列的列必须是整型
- 标识列的数据是自动增加的,不能手动的为标识列插入值。

数据类型

这里写图片描述
这里写图片描述
这里写图片描述

视图下创建表


右键表,新建。
当字段名字为关键字时,自动添加中括号。
这里写图片描述

SQL语句创建表

USE E_Market--选择数据库GOCREATE TABLE CommoditySort--CREATE TABLE 表名(    SortId int IDENTITY(1,1)NOT NULL,--代表的意思 :字段名 数据类型 标识列自动增长(标识种子,每次增长) 不为空    SortName varchar(50)NOT NULL)GO

约束的类型

数据完整性:要求数据具有准确性和可靠性。

实体完整性:表中的每一行都叫做一个实体,要求表中的所有的行唯一。例如:不能有相同的两个信息被录入。
约束方法:唯一约束,主键约束,标识列。

域完整性约束:保证列值符合规定要求。例如:密码长度至少6位。
约束方法:限制数据类型,检查约束,外键约束,默认值,非空约束。

引用完整性约束:要求两表相同字段必须一致。引用完整性确保键值在所有表中一致。这样的一致性要求不能引用不存在的值,如果键值更改了,那么在整个数据库中,对该键值的所有引用要进行一致的更改。
约束方法:主键约束

主键约束:

主键列不能为空,主键列唯一,只有主键列才能被作为其他表的外键所创建。
右键选中的表,选择设计,然后选中相应的字段设置为主键,需要标识列就在下方属性选择。
例如:将EmployeeNo设置为主键,标识种子从1001开始,每次增加1

这里写图片描述

外键约束:

用于在两表之间建立关系,需要指定引用主表是哪一列。
右键选择关系。添加,然后选择表和列规范,然后设置相对应的主键和外键。

这里写图片描述

唯一约束:

要求该列的值必须是唯一的,允许未空,但只能有一个
选中字段右键选择索引/键。选择添加,然后将类型改为唯一键,选择要使用唯一键的列。

这里写图片描述

默认约束:

某列没有写值的话,有一个默认值

这里写图片描述

检查约束:

通过逻辑表达式判断数据的有效性,用来限制某列或者多列取值的范围。

右键选择check约束,然后输入表达式即可。

这里写图片描述

非空约束:

要求该列不能为空值。

例子:我们创建两个表,一个部门表,一个员工表。

1.外键约束,我们将员工所属的部门设置为外键约束。有四个部门,当我们设置为5时,就会出错,因为外键只能引用主键表中有的内容。

这里写图片描述
这里写图片描述

2.检查约束:当我们输入的年龄不符合要求时,报错。

这里写图片描述

注意:当我们录入完数据的时候,最后发现主键的值并不是连续的,这是因为当我们录入错误的时候,他已经取了一个值,我们更改错误的时候,他自动取下一个值。

这里写图片描述

使用SQL语句添加约束。

这里写图片描述

对E_Market数据库的UserInfo表添加约束

USE E_Market--选择数据库GOALTER TABLE UserInfo--选择表ADD CONSTRAINT PK_UserId Primary Key(UserId),--对UserId设置主键    CONSTRAINT CK_UserPwd CHECK(LEN(UserPwd)>=6),--密码长度大于等于6    CONSTRAINT CK_Gender CHECK(Gender=0 OR Gender=1),--值只能为01    CONSTRAINT DK_Gender DEFAULT(0) FOR Gender,--默认值为0    CONSTRAINT CK_Email CHECK(Email LIKE '%@%')--Email里要包含@    GO

添加外键约束:

CONSTRAINT FK_UserId FOREIGN KEY(UserId) REFERENCES UserInfo(UserId)--引用UserInfo表中的UserId

向已有数据的表中添加约束
不检查已经存在的数据,对后加入的数据进行检查

ALTER TABLE Employee WITH NOCHECKADD CONSTRAINT CK_EmployeeId CHECK(LEN(EmployeeId)=18)GO

删除约束

视图删除:

sql语句删除约束:

这里写图片描述

--删除Employee表中的主键ALTER TABLE Employee DROP CONSTRAINT PK_UserIdGO

数据库关系图

对特定的数据库表进行可视化管理与分析,一个数据库可以创建多个数据库关系图。

(1)可以清楚的看到表之间的主外键引用关系
(2)建立引用关系时,从主表的主键向子表的引用键拖动。
(3)在设计状态下是从子表向主表建立关系,数据库关系图下则刚好相反。

这里写图片描述

删除数据表

视图下删除表:要注意先删除没有被引用的表,否则会报错。

sql语句删除表:

USE Demo--选择数据库GODROP TABLE Employee--DROP TABLE 表名DROP TABLE PostGO
1 0
原创粉丝点击