数据库设置约束条件有什么好处?

数据库设置约束条件有什么好处?,第1张

数据库约束是为了保证数据的完整性而实现的一套机制,它具体的根据各个不同的数据库的实现而有不同的工具。\x0d\x0a一般来说有以下几种实现方式:\x0d\x0a1、检查约束:\x0d\x0a通过在定义数据库表里,在字段级或者是在表级加入的检查约束,使其满足特定的要求。\x0d\x0a比如以下的表定义:\x0d\x0aCRATE TABLE student(\x0d\x0aid serial,\x0d\x0aname varchar(10),\x0d\x0ascrore integer CHECK (scrore >0))\x0d\x0a定义分数不能小于0。\x0d\x0a也可以在表级定义:\x0d\x0aCHECK (字段1 秘字段2之间的关系)\x0d\x0a2、非空约束:\x0d\x0a这个大家应该很熟悉了。直接在字段后面加上:NOT NULL。\x0d\x0a3、唯一约束:\x0d\x0a定义一个唯一约束但是它并不包括NULL值。直接在字段定义后加入UNIQUE即可定义一个唯一约束。\x0d\x0a4、主键约束:\x0d\x0aSQL 92建议在建立一个表时定义一个主键:它其实就是:唯一约束+非空约束。\x0d\x0a5、外键:\x0d\x0a所有约束里数这个约束最有意思了:比如说有这样一件事,你需要做一个学生查询的网页。那么为了方便,你将建立三个数据表:\x0d\x0a一个是学生情况表:\x0d\x0aCREATE TABLE student(\x0d\x0aid serial primary ke,\x0d\x0aname varchar(10),\x0d\x0a.......\x0d\x0a)\x0d\x0a一个表是记录所开的课程\x0d\x0aCREATE TABLE class(\x0d\x0aclass_id varchar(5) primary key,\x0d\x0adescribe varchar(20)\x0d\x0a.....\x0d\x0a)\x0d\x0a一个表是记录学生成绩的表:\x0d\x0aCREATE TABLE score(\x0d\x0aid integer references student,\x0d\x0aclass_id varchar(5) references class,\x0d\x0ascore integer CHECK (score >0)\x0d\x0a)\x0d\x0a\x0d\x0a这个时候你会发现以下几件事:\x0d\x0a如果你在成绩表里输入不存在的学生和课程,数据系统将拒绝。如果你要删除一个学生,但是他已经在成绩表里有记录,数据库将拒绝删除这个学生的记录。\x0d\x0a那么我们现在来看,前面一个对我们是有利的,因为谁都不想一个学生无缘无故的有了一个成绩的记录,但是在删除的时候就会比较麻烦了,有时候我的确是想删除这个学生。那么我总不能在应用程序里照顾得那么周到吧。不要紧我们在定义数据表的时候只在外键那一样加入以下控制就OK了,我们来重新定义数据表 score\x0d\x0aCREATE TABLE score(\x0d\x0aid integer references student ON UPDATE CASCADE ON DELETE CASCADE, //我们希望在学生记录改变时自动改变分数记录,在删除学生级联删除分数记录\x0d\x0aclass_id varchar(5) references class ON UPDATE CASCADE ON DELETE\x0d\x0aRESTRICT, //我们希望在改变课程时自动改变分数记录表里关于课程的引用,但是不希望删除课程时级联删除分数。\x0d\x0a.....\x0d\x0a)\x0d\x0a\x0d\x0a这样我们就可以很好做到数据完整了。

从数据库用户角度看,数据库中的数据是以表、视图等方式储存的。那么用户自己是怎么创建表的呢?简单的有两种方式,一种是用户可以在Oracle提供的SQL*Plus中使用CREATE TABLE语句创建表,也可以通过OEM图形化工具创建表。

工具/材料

电脑

Oracle 10g

CREATE TABLE创建表01

首先用户必须要有CREATE TABLE系统权限,并且只能在自己的模式中创建表,图中的例子使用CREATE TABLE语句在当前模式中创建了一个共有5列的表:表的名称为employees,包含 emp_id, name, job,age,dep_id 等5列,后面的number、 varchar2、等为数据类型,括号里面为长度。

02

如果想要在其他模式中创建表,则必须在表名前加上模式名,并且用户还要有CREATE ANY TABLE系统权限,例如图中语句将在SYSTEM模式中创建employees1表

OEM创建表01

在OEM主界面中选择【管理】选项卡,进入如图所示的数据库管理界面;然后在“数据库对象”中单击【表】选项。

02

系统进入管理表界面,在该页面中单击【创建】按钮,进入如图所示的“创建表的组织形式”界面。在该界面中用户可以选择创建的表类型---标准表、临时表或索引表。

03

在选择创建的表类型后,单击【继续】按钮,进入如图所示的“创建表”界面。在“名称”文本框中输入要创建表的名称。系统在“方案”文本框中显示当前模式,这表示新创建的表将属于该模式。

04

在“创建表”页面中选择“约束条件”选项卡,进入如图所示的“表约束条件”页面。该页面中用户可以为创建的表定义约束条件,包括主键约束(PRIMARY)、唯一约束(UNIQUE)、检查约束(CHECK)和外键(FOREIGN)约束。

05

设置储存参数,选择“储存”选项卡,进入如图所示的储存设置界面,最后保存表格,单机【确定】按钮,系统会根据用户对表的设置,创建一个新表。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/10075219.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存