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),--值只能为0或1 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
- SQLserver学习day03 数据表基本概念和操作的学习与管理 数据库关系图
- Swift的学习Day03(操作符)
- MySQL数据库学习&整理(二)数据类型与操作数据表
- MYSQL 学习笔记二 数据库引擎与数据表的基本操作
- 数据库和数据表的操作
- MySQL数据库学习02-数据表的基本操作:创建
- MySQL数据库学习03-数据表的基本操作:修改
- MySQL数据库学习04-数据表的基本操作:删除
- Android数据库与数据表的关系
- SQLserver学习day02 数据库用户管理 数据库的基本维护
- SqlServer 数据库的学习
- 创建SQLServer数据库和数据表
- 数据库和数据表管理
- MySQL学习笔记-数据类型与操作数据表
- mysql:数据库和数据表的管理
- MySQL学习笔记20150920MySQL的基本概念与管理
- Linux学习笔记 -- day03 权限管理
- MySQL中的数据库和数据表的操作
- html5-3D圣樹
- HDU 2012 素数判定
- 守护进程与孤儿进程
- 浅谈数据库用户表结构设计
- unity中实现异步切换场景
- SQLserver学习day03 数据表基本概念和操作的学习与管理 数据库关系图
- [机器学习]信息熵、信息增益的概念
- 单件类的实现
- nginx的配置、虚拟主机、负载均衡和反向代理
- 身份证末尾校验位计算OC
- 《Android群英传》---读书笔记1
- 02-线性结构2 一元多项式的乘法与加法运算
- SVG滤镜
- HDU 2023 求平均成绩