《表格及约束》PPT课件.ppt_第1页
《表格及约束》PPT课件.ppt_第2页
《表格及约束》PPT课件.ppt_第3页
《表格及约束》PPT课件.ppt_第4页
《表格及约束》PPT课件.ppt_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第一章 表格及数据约束,本章主要内容,1.1 前言 简介数据对象。 1.2 表格概念 介绍表格的概念。 1.3 数据类型 熟悉各种数据类型及其区别。 1.4 表的操作 熟练掌握建表及修改表规则。 1.5 数据约束 掌握各种约束作用。 1.6 知识点总结,1.1 前言,数据库数据对象中最基本的是表和视图, 其他还有约束、序列、函数、存储过程、包、触发器等。 对数据库的操作可以基本归结为对数据对象的操作,理解和掌握数据库对象是学习数据库的捷径。,1.2 表格概念,数据库是由一组相关文件组成的。文件是一组相关的记录。在实际数据库中,文件被称为表,字段称为“列”,记录称为“行”。,列,行,1.3 数据类型,1.3.1 数值类型 所有数字都有符号和精度。精度是除符号位以外的位数 NUMBER(p,s):精度为p 且小数位数为s 的数字。 精度可介于1 与38 之间。小数位数可介于84 与127 之间。 例如: Number(4,1) 最大存储数据为: 999.9 FLOAT(p) :美国国家标准协会(ANSI) 数据类型。FLOAT 数据类型是二进制精度为p 的浮点数。这种数据类型的默认精度为二进制数126 或十进制数38。 INTEGER:等效于NUMBER(p,0)。,1.3.2 字符串类型,字符串是一个字节列。字符串的长度为该序列中的字节数。 定长字符串:CHAR(n) n个字节的固定长度字符数据。最大大小为2,000 个字节。 如果没有指定长度,那么就认为是 1 个字节 注意:当你创建一个CHAR型字段,数据库将保证在这个字段中的所有数据是定义长度,如果某个数据比定义长度短,那么将用空格在数据的右边补到定义长度。如果长度大于定义长度将会触发错误信息。,1.3.2 字符串类型,变长字符串: VARCHAR(n) varchar 型数据是varchar2 型数据的快照。 VARCHAR2(n) varchar2 数据类型是一种可变长度的、有最大长度的字母数字型数据。 Varchar2类型的字段长度可以达到4000字节。一个空的varchar2(2000)字段和一个空varchar2(2)字段所占用的空间是一样的。 注意:VARCHAR 是VARCHAR2 的同义词。工业标准的VARCHAR 类型可以存储空字符串,但是oracle不这样做,尽管它保留以后这样做的权利。Oracle自己开发了一个数据类型VARCHAR2,这个类型不是一个标准的VARCHAR,它将在数据库中varchar 列可以存储空字符串的特性改为存储NULL 值。如果你想有向后兼容的能力,Oracle建议使用VARCHAR2而不是VARCHAR。,1.3.2 字符串类型,变长字符串: NCHAR() 和 NVARCHAR2() NCHAR() 和 NVARCHAR2()数据类型分别与CHAR() 和 VARCHAR2()类型是相同的,只不过它们用来存储NLS(National Language Support)数据。比如:某些系统中,日文数据的存储会用到这个类型.,1.3.3 日期时间型,DATE:在公元前4712 年1 月1 日至公元9999 年12 月31 日之间的有效日期。它还存储以下时间:小时、分钟和秒。 TIMESTAMP:使用这种数据类型可指定日期中的年、月和日,以及时间中的小时、分钟和秒、毫秒。,1.3.4 LOB 数据类型,LOB(Large Object) 数据类型存储非结构化数据,比如二进制文件,图形文件,或其他外部文件。LOB 可以存储到4G字节大小。数据可以存储到数据库中也可以存储到外部数据文件中。 LOB数据类型有以下几种: 1. BLOB: 二进制数据 2. CLOB: 字符型数据 3. BFILE: 二进制文件,1.3.5 其他数据类型,NULL:是一个区分所有非空值的特殊值 ROWID:数据类型是ORACLE 数据表中的一个伪列,它是数据表中每行数据内在的唯一的标识。此数据类型与数据存储的实际地址有关.,1.4 表的操作,1.4.1 表的命名规则 表名标识一个表,应尽可能在表名中描述表的功能 命名规则 - 表名和列名不能超过30个字符: 必须以字母开头 必须只能包含 AZ, az, 09, _, $,#等 必须不能和用户定义的其他对象重名 必须 不能是ORACLE的保留字 正确表名: student_Info 错误表名: student_info!#,1.4 表的操作,1.4.2 表的创建 创建表语法:,CREATE TABLE 表名 ( 列名1 属性 默认值 是否为空 约束, 列名2 属性 默认值 是否为空 约束, 列名2 属性 默认值 是否为空 约束 ) ;,1.4 表的操作,1.4.2 表的创建 创建学生表(tbl_studentinfo),CREATE TABLE tbl_studentinfo ( stuno CHAR(5) NOT NULL, stuname VARCHAR2(20) NOT NULL, stubirth DATE, stusex CHAR(1) not null WITH DEFAULT 0, studaddr VARCHAR2(200) , stutel VARCHAR2(11) );,NOT NULL 子句可以用WITH DEFAULT 数值 扩充,1.4 表的操作,1.4.2 表的创建 创建课程表(tbl_classinfo),CREATE TABLE tbl_classinfo( classno CHAR(3) NOT NULL, classname VARCHAR2(10) NOT NULL );,1.4 表的操作,1.4.2 表的创建 创建成绩表(tbl_scoreinfo),CREATE TABLE tbl_scoreinfo( stuno CHAR(5) NOT NULL, classno CHAR(3) NOT NULL, score NUMBER(3,1) );,1.4 表的操作,1.4.2 表的创建 注意 : 1. null可以为空 not null 不可为空 1. 一般定义成char型字段,是因为这个字段的数据长度固定,并且实际数据查询 中, char型比varchar型的效率高。,小结,数据类型 创建表,CREATE TABLE tbl_classinfo( classno CHAR(3) NOT NULL, classname VARCHAR2(10) NOT NULL );,数值类型:NUMBER 字符串类型:CHAR,VARCHAR2 日期类型:DATE,1.4 表的操作,1.4.3 表的删除 删除表语法 删除学生表,DROP TABLE 表名,DROP TABLE tbl_studentinfo;,1.4 表的操作,1.4.4 表的修改 字段的增加语法: 增加小组负责人属性,ALTER TABLE 表名 ADD 列名 属性 约束,ALTER TABLE tbl_studentinfo ADD upstuno CHAR(5)DEFAULT NULL;,ALTER TABLE tbl_studentinfo ADD upstuno CHAR(5);,ALTER TABLE tbl_studentinfo ADD upstuno CHAR(5) DEFAULT 05001;,1.4 表的操作,1.4.4 表的修改 字段的删除语法: 删除电话字段,ALTER TABLE 表名 DROP COLUMN 列名,ALTER TABLE tbl_studentinfo DROP COLUMN stutel;,1.4 表的操作,1.4.4 表的修改 字段的修改语法: 修改学生名的长度,ALTER TABLE 表名 MODIFY (列名 属性),ALTER TABLE tbl_studentinfo MODIFY (stuBirthDay Date not null);,1.5 数据约束,数据的完整性就是对数据的准确性和一致性的一种保证。 数据完整性(Data Integrity)是指数据的精确(Accuracy)和可靠性(Reliability)。,1.5.1 约束的概念及作用,约束被 ORACLE用来对数据实施业务规则,保证数据的完整性 一般数据库提供了5种完整性约束: 非空约束 NOT NULL 主键约束 Primary key 外键约束 Foreign key 唯一约束 Unique 检查约束 Check,约束的创建,可以在创建一个新表时定义一个或多个约束 也可以在创建表之后通过更改表来定义它们,CREATE TABLE 表名 ( 列名 数据类型 NOT NULL, 列名 数据类型 PRIMARY KEY, 列名 数据类型 UNIQUE, 列名 数据类型 NOT NULL REFERENCES 表名 (列名), 列名 数据类型 NOT NULL CHECK (检查条件) ),创建一个新表时定义一个或多个约束,非空约束,在定义列时直接定义约束,主键约束,唯一约束,外键约束,检查约束,CREATE TABLE 表名( 列名 数据类型, CONSTRAINT 约束名 PRIMARY KEY (列名), CONSTRAINT 约束名 UNIQUE (列名), CONSTRAINT 约束名 FOREIGN KEY (列名) REFERENCES 表名 (列名), CONSTRAINT 约束名 CHECK (检查条件) );,在创建表的时候用子句的方式创建约束,ALTER TABLE 表名 MODIFY (列名 NOT NULL); ALTER TABLE 表名 ADD PRIMARY KEY (列名1,列名2); ALTER TABLE 表名 ADD UNIQUE (列名1,列名2, ); ALTER TABLE 表名 ADD FOREIGN KEY(列名) REFERENCES 表名2 (列名2); ALTER TABLE 表名 ADD CHECK (检查条件);,在创建表之后通过更改表来定义,非空约束,主键约束,唯一约束,外键约束,检查约束,约束的删除,删除约束语法: 约束定义与它们所应用的数据库相关联,并存储在数据库字典USER_CONSTRAINTS/ DBA_CONSTRAINTS中。,ALTER TABLE 表名 DROP CONSTRAINT 约束名,USER_CONSTRAINT中的约束信息,数据库目录中的约束信息,1.5 数据约束,1.5.3 主键约束 确定哪些列唯一的标识了各个记录,主键不能为Null,并且数据值必须唯一 。 注意:1. 一个表只能有一个主键,但是一个主键可以包含多个列; 1. 在某些约束的创建过程中由于一个表只有一个此类约束,故约束名的设置可以省略。当约束名不写的时候,数据库系统会为这个约束创建一个自定义的约束名。,CREATE TABLE TBL_STUDENTINFO ( STUNO CHAR(5) PRIMARY KEY );,CREATE TABLE 表名 ( 列名 数据类型 PRIMARY KEY ),创建主键约束的语法 一: 例:学生信息表设置学生学号为主键,主键约束,CREATE TABLE 表名( 列名 数据类型 , CONSTRAINT 约束名 PRIMARY KEY (列名) );,CREATE TABLE TBL_STUDENTINFO ( STUNO CHAR(5), CONSTRAINT PK_STUNO PRIMARY KEY (STUNO) );,主键约束,创建主键约束的语法 二: 例:学生信息表设置学生学号为主键,ALTER TABLE 表名 ADD PRIMARY KEY (列名1,列名2);,ALTER TABLE TBL_STUDENTINFO ADD PRIMARY KEY (STUNO);,主键约束,创建主键约束的语法 三: 例:学生信息表设置学生学号为主键,1.5 数据约束,1.5.4 外键约束 在一对多关系中,将约束添加到”多”表中,确保了如果将一个值输入一个指定的列,那么它必须已经存在域一 表中, 或者还没有添加这个记录 。 创建外键约束的语法: 例:成绩表的学号可以设置外键,参照为学生表的学号,ALTER TABLE tbl_scoreinfo ADD FOREIGN KEY (stuno) REFERENCES tbl_studentinfo(stuno);,ALTER TABLE 表名 ADD FOREIGN KEY(列名) REFERENCES 表名2 (列名2);,其他方法参加主键约束,1.5 数据约束,1.5.5 唯一约束 确保存储在一个指定列中的所有数据值都是唯一的,UNIQUE与PRIMARY KEY的区别在于唯一约束可以为空。 创建唯一约束的语法: 例:学生信息表的学生姓名创建唯一,ALTER TABLE 表名 ADD UNIQUE (列名),ALTER TABLE tbl_studentinfo ADD UNIQUE (stuname);,其他方法参加主键约束,1.5 数据约束,1.5.6 检查约束 确保在向表中添加数据值之前满足了一个指定的条件 。 创建检查约束的语法: 例:学生成绩必须是大于等于0且小于等于150的数字,ALTER TABLE 表名 ADD CHECK (条件),ALTER TABLE tbl_scoreinfo ADD CHECK (score =0 AND score = 150),其他方法参加主键约束,CREATE TABLE TBL_STUDENTINFO ( STUNO CHAR(5) PRIMARY KEY, STUNAME VARCHAR2(20) NOT NULL, STUBIRTH DATE, STUSEX CHAR(1), STUADDR VARCHAR2(200), STUTEL VARCHAR2(11) UNIQUE );,CREATE TABLE TBL_SCOREINFO ( STUNO CHAR(5) REFERENCES TBL_STUDENTINFO(STUNO), CLASSNO CHAR(3) NOT NULL, SCORE NUMBER(3,1) CHECK (SCORE =0 AND SCORE = 100) );,附:TBL_STUDENTINFO,TBL_SCOREINFO,非空约束,CREATE TABLE TBL_STUDENTINFO ( STUNO CHAR(5) NOT NULL, STUNAME VARCHAR2(20), STUBIRTH DATE, STUSEX CHAR(1), STUADDR VARCHAR2(200), STUTEL VARCHAR2(11), CONSTRAINT PK_STUNO PRIMARY KEY (STUNO), CONSTRAINT QK_STUTEL UNIQUE (STUTEL) );,CREATE TABLE TBL_SCOREINFO ( STUNO CHAR(5), CLASSNO CHAR(3) NOT NULL, SCORE NUMBER(3,1), CONSTRAINT FK_STUNO FOREIGN KEY (STUNO) REFERENCES TBL_STUDENTINFO (STUNO), CONSTRAINT CK_SCORE CHECK (SCORE =0 AND SCORE = 100) );,附:TBL_STUDENTINFO,TBL_SCOREINFO,CREATE TABLE TBL_STUDENTINFO ( STUNO CHAR(5), STUNAME VARCHAR2(20), STUBIRTH DATE, STUSEX CHAR(1), STUADDR VARCHAR2(200), STUTEL VARCHAR2(11), UPSTUNO CHAR(5) ); ALTER TABLE TBL_STUDENTINFO ADD PRIMARY KEY (STUNO);,CREATE TABLE TBL_SCOREINFO ( STUNO CHAR(5), CLASSNO CHAR(3), SCORE NUMBER(3,1) ); ALTER TABLE TBL_SCOREINFO ADD PRIMARY KEY (STUNO,CLASSNO); ALTER TABLE TBL_SCOREINFO ADD FOREIGN KEY (STUNO) REFERENCES TBL_STUDENTINFO(STUNO); ALTER TABLE TBL_SCOREINFO ADD FOREIGN KEY (CLASSNO) REFERENCES TBL_CLASSINFO(CLASSNO);,附:TBL_STUDENTINF

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论