ch.3(1)SQL语言_第1页
ch.3(1)SQL语言_第2页
ch.3(1)SQL语言_第3页
ch.3(1)SQL语言_第4页
ch.3(1)SQL语言_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

第3章关系数据库语言SQL 1 SQL概述2 DDL3 DMLDCL 第四部分安全性讲 4 嵌入式使用5 PL SQL 1 SQL概述 1 SQL的发展历程2 SQL数据库中的术语3 SQL数据库的三级体系结构4 SQL的组成 1 SQL的发展历程 1972 IBM开始研究SystemR系统 配置了数据库语言SQUARESQUARE SpecifyingQueriesAsRelationalExpressions 使用了大量的数学符号1974 Boyce和Chamberlin将SQUARE修改为SEQUELSEQUEL StructuredEnglishQUEryLanguage 去掉了数学符号 以英语单词和结构式语法代替查询后简称为SQL StructuredQueryLanguage 1 SQL的发展历程 1970s末起 主流的数据库厂商纷纷在其产品中支持SQLOracle DB2 Sybase1986 10 ANSI颁布了美国标准的SQL1987 4 ISO采纳美国标准为国际标准 后称 SQL86 1989 4 SQL89 增强了完整性特征1992 SQL92 SQL2 1999 SQL3 2 SQL数据库中的术语 基本 表 关系记录 元组字段 列 属性字段值 属性值字段类型 列类型 域码 键主码 主键外码 外键 3 SQL数据库的三级体系结构 SQL数据库 支持SQL语言的关系数据库 外模式 概念模式 内模式 关系子模式 关系模式 存储模式 视图 View 基本表 文件 SQL用户 ANSI SPARC 关系数据库 SQL数据库 3 SQL数据库的三级体系结构 一个SQL数据库的总体逻辑结构是基本表 Table 的集合 对应于ANSI SPARC的概念模式SQL数据库的底层存储结构采用文件 对应内模式用户所见的数据结构以视图 View 对应外模式用户可以通过SQL对基本表和视图进行操作 4 SQL的组成 SQL DDL DML DCL 嵌入式SQL的使用规定 CreateTable AlterTable DropTable 定义基本表 CreateView DropView 视图操作 CreateIndex DropIndex 索引操作 InsertDeleteSelectUpdate GrantRevoke 记录操作 权限管理 2 SQL的数据定义 DDL 基本表的组成创建基本表 CreateTable修改基本表 AlterTable删除基本表 DropTable 1 基本表的组成 列完整性约束 1 列 列名字母开头 可含字母 数字 30字符列类型Char n 定长字符串类型 Varchar2 n 可变长字符串类型 Number 数值型 Date 日期时间型 1 列 Oracle数据类型与ANSI有一定的差别若使用ANSI类型 Oracle自动转换为Oracle类型 2 完整性约束 主键约束 PrimaryKey 实体完整性唯一键约束 Unique 外键约束 ForeignKey 参照完整性检查约束 Check 用户自定义完整性 这些约束既可以定义在列上 也可以定义在基本表之上列约束 在每列后定义 只对当前列有效表约束 在全部列定义后定义 可定义多个列上的约束 2 创建基本表 基本表构成 表名 列和约束CreateTable 列名1列类型1 列约束1 列名2列类型2 列约束2 表约束 CreateTableStudent S Varchar2 10 ConstraintPKPrimaryKey SnameVarchar2 20 AgeNumber 3 SexChar 1 在SQL数据库中 不一定必须定义主键 这与关系模型有差别 1 定义列 完整格式 DEFAULT NOT NULL CreateTableStudent S Varchar2 10 ConstraintPKPrimaryKey SnameVarchar2 20 NOTNULL AgeNumber 3 SexChar 1 DEFAULT F NOTNULL表示不允许空值 实际上是Check约束的简化 A 默认值 当往表中插入一条新记录时 如果某列上有默认值 并且新记录中未指定该列的值 则自动以默认值填充 InsertIntoStudent s sname age Values 001 John 20 自动以默认值填充 插入一条新记录 B 列约束 必须更在每个列定义后定义只对当前列有效可以使用四种类型的约束格式 Constraint 例S char n ConstraintPK StudentPrimaryKeyS char n PrimaryKey Whereweare 创建基本表定义列定义约束 2 定义约束 列约束 在每个列后定义 可以有多个约束子句不能定义多个列上的约束表约束 在全部列定义完成后定义 可以有多个约束子句多个列上的约束必须使用表约束单列上的约束可以用列约束 也可用表约束四种约束都可以作为列约束或表约束 A 列约束和表约束举例 CreateTableStudent S Varchar2 10 ConstraintPK SPrimaryKey SnameVarchar2 20 AgeNumber 3 ConstraintCK SCheck age 14andage 100 SexChar 1 ConstraintUQ SUnique Sname ConstraintCK SSCheck SexIN M F CreateTableStudent S Varchar2 10 ConstraintPK SPrimaryKey SnameVarchar2 20 AgeNumber 3 SexChar 1 B PrimaryKey约束 定义主键 不许有空值 也不可重复 CreateTableSC 选课表S Varchar2 10 C Varchar2 20 ScoreNumber 3 ConstraintPK SCPrimaryKey S C 一个表只能有一个主键 C Unique约束 唯一性约束 值不可重复 但可以为空 CreateTableStudent S Varchar2 10 ConstraintPK SPrimaryKey SnameVarchar2 20 ConstraintUQ SUnique AgeNumber 3 SexChar 1 D Unqiue约束对空值的处理 若约束列中有一列不为空 就实施约束 若约束列都为空 则不实施约束 E ForeignKey约束 外键约束 表中某列值引用其它表的主键列或Unique列 参照完整性含义 CreateTableStudent S Varchar2 10 ConstraintPK SPrimaryKey SnameVarchar2 20 AgeNumber 3 CreateTableSC 选课表S Varchar2 10 ConstraintFK SCReferencesStudent S C Varchar2 20 ScoreNumber 3 F ForeignKey约束示例 InsertIntoSCvalues 003 c001 85 Erroroccurs DeleteFromStudentwhereS 001 Erroroccurs 被参照表 主表 Student表 参照表 子表 SC表 在子表中 如SC 插入记录时 若主表中对应的列值不存在 则插入出错 删除主表中的记录时 若有子表中的相应记录存在 也出错 若设置了级联删除则不会出错 G ForeignKey约束的选项 级联删除 删除主表中的记录时 同时删除子表中相关联的记录 OnDeleteCascade级联设空 删除主表中的记录时 同时将子表中相应记录的外键列值设为空 OnDeleteSetNULL CreateTableSC 选课表S Varchar2 10 C Varchar2 20 ScoreNumber 3 ConstraintFK SCForeignKey S ReferencesStudent S OnDeleteCascade H Check约束 检查约束 自定义某些列上的约束ConstraintCK S1Check age 15 ConstraintCK S2Check SexIn M F ConstraintCK SCCheck Score 0andScore 100 ConstraintCK S3Check SnameIsNotNULL NOTNULL 2 修改基本表 AlterTable Add Modify DropColumn Add DropConstraint 1 增加列 AlterTableAdd与CreateTable中相同 AlterTableStudent AddClassVarchar2 10 AlterTableStudent AddDeptVarchar2 10 ConstraintUQ S3UNIQUE 2 删除列 AlterTableDropColumn AlterTableStudent DropColumnage 3 修改列 AlterTableModify与CreateTable中相同但列名不能修改 AlterTableStudent ModifyageIntegerNOTNULL 4 增加约束 AlterTableAdd只能增加表约束表约束格式与创建表时相同 AlterTableStudent AddConstraintPK StudentPrimaryKey S 5 删除约束 AlterTableDropConstraint CreateTableSC 选课表S Varchar2 10 C Varchar2 20 ScoreNumber 3 Constra

温馨提示

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

评论

0/150

提交评论