资源描述:
《第3章SQL语言基础ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第3章SQL语言基础(2)3.1SQL简介3.2SQL语言的基本元素3.3SQL语言中的运算符3.4常用的SQL*Plus命令3.5SQL语言中的函数3.6关系表的DDL语句3.7关系表的DML语句3.8SQL的数据查询3.9视图3.6关系表的DDL语句DDL(数据定义语句)用于定义各种数据库对象。DDL语句只涉及到数据库对象的结构,而不涉及对数据的具体操作。关系数据库中最基本的数据库对象就是关系表,关系表有严格的定义,它是一种二维表。对这种表有如下规定:①每张表都有一个名字,通常称为表名或关系名。表名必须以字母开头,最大长
2、度为30个字符。②一张表可以由若干列组成,列名唯一,列名也称作属性名。③表中的一行称为一个元组,它相当于一条记录。④同一列的数据必须具有相同的数据类型。⑤表中的每一个列值必须是不可分割的基本数据类型。3.6.1CREATETABLE建表语句⑴基本格式CREATETABLE表名(列名1数据类型[DEFAULT缺省值][列完整性约束],列名2数据类型[DEFAULT缺省值][列完整性约束],…[表完整性约束]);例建立一个学生表的语句如下:CREATETABLEstudent(snochar(6),snamevarchar2(1
3、0),sexchar(2)DEFAULT'男',birthdaydate,dnochar(3));⑵完整性约束定义表的完整性约束是一件非常重要的工作。Oracle允许用户在建表时,定义应用于关系上的完整性约束,并把它作为数据库模式的一部分存储在数据字典中,由系统自动维护数据的完整性。Oracle支持5种基本的完整性约束。①主码完整性约束。②唯一完整性约束。③非空完整性约束。④基于属性值的完整性约束。⑤引用完整性约束。完整性定义有两种形式:①列约束--约束是在列定义中实现的。②表约束--在所有列定义之后实现。对于某列的约束,可
4、以采用列约束的形式,也可以采用表约束的形式。但是如果约束涉及不止一列时,就必须采用表约束的形式定义。为了为其它操作提供方便,需给每个约束起个名字。保留字"CONSTRAINT"用来指定约束名。例:CREATETABLEstudent(snochar(6)CONSTRAINTs1PRIMARYKEY,snamevarchar2(10)CONSTRAINTs2NOTNULL);①主码完整性约束(PRIMARYKEY)每个表都应该有一个主码,"PRIMARYKEY"就是来定义主码。主码约束具有如下特点:a.定义主码的字段不能为空值
5、。b.同一个表中只能定义一个主码约束。c.Oracle自动为主码约束的字段建立一个唯一索引和非空约束。d.可以使用一个字段作为主码,也可以使用多个字段作为主码,当主码由一个以上的属性组成时,必须采用表约束定义形式。例:CREATETABLEsc(snochar(6),cnochar(6),gradenumber(3),CONSTRAINTsc1PRIMARYKEY(sno,cno));②唯一完整性约束(UNIQUE)一个关系中只能定义一个主码,但关系中可能不止一列的值要求唯一,我们可用唯一完整性来解决这个问题。唯一完整性具有
6、如下特点:a.定义了唯一完整性约束的属性不能有重复值。b.唯一完整性可以在字段定义,也可以在表级定义。c.可以使用一个属性作为唯一完整性约束,也可以使用多个属性作为唯一约束。d.如果在一个属性上仅定义了唯一性约束,而没有定义非空约束,则该属性可以拥有多个NULL值。例:CREATETABLEdep(dnochar(3)CONSTRAINTd1PRIMARYKEY,dnamechar(10)CONSTRAINTd2UNIQUE,telchar(6),CONSTRAINTd3UNIQUE(tel));③非空完整性约束(NOTNU
7、LL)在实际应用中,表中某些属性不允许有空缺的情况,需定义非空约束。非空约束只能是列级约束。如:snamechar(6)CONSTRAINTs2NOTNULL,④基于属性值的完整性约束"CHECK"约束可以为属性定义复杂的约束条件。在数据录入或修改时,系统会依据CHECK表达式来检查属性值的合法性,并拒绝接收非法值。例如性别只能是男和女:sexchar(2)CONSTRAINTs3CHECK(sexin('男','女')),牵涉多个属性的CHECK约束,只能在表级定义。例:CREATETABLEemp(enochar(3),
8、enamevarchar2(10),salnumber,deptnochar(3),CHECK((deptno='d01'andsal<=5000)or(deptno!='d02'andsalsalsal<=4000));⑤引用完整性约束(REFERENCES)不同关系中的数据之间也会存在