Sql实践怎么规范sql数据和五大约束.十三

首先和大家说一下我们接下来与实践相关的内容。大家如果是从事数据库的话有三个发展的方向分别为:管理,开发,智能分析
DBA 又分为初级,中级,高级,不满大家我学完 sql 也只能达到初级和中级之间的水平。
安全行和高可用性
安全性又分为:
1.     用户管理
2.     存储安全:备份
3.     网络传输行
4.     数据加密
怎么规范 sql 数据
1.     域完整性:域:字段值的取值范围。
2.     实体完整性:实体:记录,保证记录的完整性。
3. 引用完整性:保证数据一贯的一致性。
约束:
1.     defanlt 默认
2.     check 检测
3.     primary key 主键
4.     foreign key 外键
5.     unique  唯一
1. defanlt 约束
目的:将一个字段最有可能出现的值设置为 defanlt 约束
1. 通过图形界面将年龄的默认值设置为 20
yuangong 表上右击修改表,在年龄的默认值或绑定里写入 20. 操作完成后保存并退出。
测试一下给 yuangong 表插入一条记录,
如下图所示因为约束的原因年龄为 20
2. 通过命令在新建表是将性别的默认值设置为男。
语法为:
Create table t1
(姓名 varchar 8 ),性别 char 2 ), default ‘男’, 年龄 int 籍贯 varchar 30 ))
测试给 t1 表中插入几条信息。插入完成后进行查看如下图约束设置成功。
2. 通过命令在现有表上增加默认值约束。
语法为: alter table 表名 add constraint 默认名 default for 字段名
将年龄的默认值设置为 22.
插入一条记录进行测试,插入完成后进行查看、如下图所示约束增加成功。
2. check 约束
目的:限制字段的取值范围。
例:用图形界面将 nan 表的年龄取值范围限制为 18-60.
首先在 nan 表上右击修改,在年龄字段上右击找到 check 约束打开,然后点击添加,添加后点击表达式空白处会出来一个( )这个按钮点击,最后写入,年龄 >=18 and 年龄 <=60
完成后点击确定如下图,最后保存此操作。
测试向 nan 表中插入一条年龄为 67 的记录。如下图所示 check 约束起作用了。
2 .通过命令在新建表时将年龄的范围限制在 18-60 新建表 t2
语法为:
Create table t2
id int ,uname varchar(8),sex int, constraint ck_age check (age>=18 and age<=60)
来在进行测试一下, t2 表插入一条年龄为 17 的记录。如下图所示插入失败。
3. 在现有表上增加 check 约束,将性别的取值只能是男或者女。
语法为: alter table 表名 add constraint 约束名 check (表达式)
测试插入一条记录,假如性别为中性。如下图插入失败。
1. 删除约束
例通过命令删除约束
语法为:
Alter table 表名 drop constraint 约束名
测试看约束是否已删除。如下图所示插入成功, check 约束删除成功。
2. 查看约束。
Sp_helpconstraint 表名
例:查看 t1 表有那些约束。
3. primary key 主键约束。
1. 用命令新建表是创建主键。
第一种方法:
Create table t3
uname varchar 8 not null primary key sex char 2 ), age int
第二种方法:
Create table t4
uname varchar 8 not null sex char 2 ), age int primary key uname ))
第三种方法:
Create table t5
uname varchar 8 not null sex char 2 ,age int, constraint pk_t5 primary key (uname)
单一的主键三种方法都可以用,复合主键只能用第二,第三种方法。
1 :在现有表上增加主键,给 t2 表增加主键。
语法为 :
Alter table 表名 add constraint 约束名 primary key (字段名)
想要把字段名改为主键是不能为空的,
4. unique 约束
唯一性约束一个字段的值不允许出现重复。、
例:用图形界面将 t2 表中 uname 设置为唯一性约束。 点击修改表在 uname 上右击找到索引 / 键点击,添加在是唯一的把否该为是。完成后保存。
2. 用命令在新建表时将 uname 设置为唯一性约束。创建 t6 表、
语法为:
Create table t6
id int not null,uname varchar(8) not null,sex char(2),age int, constraint unique_uname unique(uname)
测试插入几条记录。如下图所示唯一性约束设置成功。
例将 id 设置为唯一性约束。
语法为:
Alter table 表名 add constraint 约束名 unique (字段名)
测试如下图所示插入失败,唯一性约束设置成功。
5. foreign key 外键
目的:构建表间关系。
首先创建两个表,部门表和员工表。
外键: 将一个表的主键增加到另一个表中,以此键来构建起两个表之间的关系,那么这个字段就称为另一个表的外键。
表间关系的好处:
1.     减少冗余数据。
2.     实现数据约束。
3.     实现级联更新,级联删除。
然后给这两个表中插入记录,如下图。
接下来就要给两个表建立表间关系,把部门表的主键部门 id 放入到员工表中去。操作完成后保存。
然后打开员工表把部门 id 的信息插入。
以上操作完成后的两个表。
最后在数据库关系图上右击新建数据库关系图。选中两个表点击添加。
然后在部门表里选中部门 id 拖到员工表里部门 id 上,放上去会出现如下图情况,点击确定。
下一步直接点击确定即可。
把更新规则和删除规则改为层叠。
保存关系表名为: diagram_0
出现如下图后点击是进行保存。
完成后测试一下级联更新。如下图所示我们把部门表里的部门 id 2 改为 22
级联更新成功,员工表里的部门 id 也更新了。
接下就要测试级联删除。
把部门表里的部门 id 22 的删除,
如下图所示级联删除成功。
接下来看用命令怎么创建外键。先创建两个表。
create table 部门表
(
部门 id int not null primary key,
名称 varchar(8),
电话 varchar(11)
)
create table 员工表
(
员工 id int not null primary key,
姓名 varchar(8),
性别 char(2),
年龄 int
部门 id int foreign key references 部门表 ( 部门 id)
)
显示员工表的约束。
例:在现有的表上增加外键约束。
创建表间关系。
语法为:
alter table 员工表 add constraint fk_ 部门 id
foreign key( 部门 id)references 部门表 ( 部门 id) on
delete cascade on update cascade
测试和上面一样我就不做了。

本文出自 “帅帅” 博客,转载请与作者联系!

你可能感兴趣的:(sql,数据库,职场,休闲)