L05_Oracle数据库编程_QUST.pdf
上传人:qw****27 上传时间:2024-09-12 格式:PDF 页数:28 大小:1.9MB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

L05_Oracle数据库编程_QUST.pdf

L05_Oracle数据库编程_QUST.pdf

预览

免费试读已结束,剩余 18 页请下载文档后查看

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

数据定义语句SQL数据定义功能•模式定义、表定义、视图和索引的定义对象创建修改删除模式CREATESCHEMADROPSCHEMA表CREATETABLEALTERTABLEDROPTABLE视图CREATEVIEWALTERVIEWDROPVIEW索引CREATEINDEXALTERINDEXDROPINDEX定义模式定义模式•定义模式(schema,也称架构、方案)实际上定义了一个逻辑命名空间•在这个空间中可以定义该模式包含的数据库对象,例如基本表、视图、索引等•CREATESCHEMA[<架构名>]AUTHORIZATION<用户名>–如果没有指定<架构名>,则<架构名>隐含为<用户名>–执行创建架构语句的用户必须具有管理员权限,或CREATESCHEMA权限定义模式•为用户“ZHANG”定义一个架构,架构名为“S_C”–CREATESCHEMAS_CAUTHORIZATIONZHANG;•定义一个用隐含名字的架构–CREATESCHEMAAUTHORIZATIONZHANG;•在定义架构的同时定义表–CREATESCHEMATESTAUTHORIZATIONZHANGCREATETABLET1(C1INT,C2CHAR(10));定义模式•Oracle中虽然有createschema语句,但是它并不是用来创建一个schema的•Oracle数据库中不能新创建一个schema,要想创建一个schema,只能通过创建一个用户的方法解决–在创建一个用户的同时为这个用户创建一个与用户名同名的schema并作为该用户的缺省schema–schema名字同user名字对应并且相同删除模式•DROPSCHEMA<架构名>{<CASCADE>|<RESTRICT>}–CASCADE:删除架构的同时将该架构中所有的对象一起删除–RESTRICT:如果被删除的架构中包含对象,则拒绝删除此架构定义基本表定义基本表•CREATETABLE<表名>(<列名><数据类型>[<列级完整性约束条件>][,<列名><数据类型>[<列级完整性约束条件>]]…[,<表级完整性约束条件>]);•如果完整性约束条件涉及到该表的多个属性列,则必须定义在表级上,否则既可以定义在列级也可以定义在表级定义基本表•建立“学生”表Student,学号是主码,姓名取值唯一•CREATETABLEStudent(SnoCHAR(9)PRIMARYKEY,/*列级完整性约束条件*/SnameCHAR(20)UNIQUE,/*Sname取唯一值*/SsexCHAR(2)NOTNULL,/*非空*/SageSMALLINT,SdeptCHAR(20));定义基本表•建立“学生”表Student,学号是主码,姓名取值唯一定义基本表•UNIQUE和PRIMARYKEY•都是强制唯一性,但在强制下面的唯一性时应使用UNIQUE约束(而不是PRIMARYKEY)约束)•非主键的一列或列组合,一个表可以定义多个UNIQUE约束,而只能定义一个PRIMARYKEY约束•允许空值的列,允许空值的列上可以定义UNIQUE约束,而不能定义PRIMARYKEY约束•FOREIGNKEY约束也可引用UNIQUE约束定义基本表•完整性约束•NOTNULL:限制列取值非空•DEFAULT:给定列的默认值•UNIQUE:限制列取值不重•CHECK:限制列的取值范围•PRIMARYKEY:指定本列为主键•FOREIGNKEY:定义本列为引用其他表的外键定义基本表•建立一个“课程”表Course•CREATETABLECourse(CnoCHAR(4)PRIMARYKEY,CnameCHAR(40),先修课CpnoCHAR(4),CcreditSMALLINT,FOREIGNKEY(Cpno)REFERENCESCourse(Cno));Cpno是外码被参照表是Course,被参照列是Cno定义基本表•建立一个“课程”表Course定义基本表•外键约束[FOREIGNKEY(<外键列名>)]REFERENCES<表名>(<主键列名>)•如果是在列级完整性约束处,则可省略“FOREIGNKEY(<列名>)”部分,例如CpnoCHAR(4)RE