ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:50.58KB ,
资源ID:28884549      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/28884549.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(60 Oracle初级表表练习.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

60 Oracle初级表表练习.docx

1、60 Oracle初级表表练习七、Oracle数据库的对象定义操作(DDL语句)1.表(TABLE)1.1 Oracle 常用的数据类型 重点Varchar2:表示的是可变的字符串类型 varchar(n) =4000Char:表示是定长的字符串 char(n) =2000Number:表示整数和浮点数 number(n),number(n,m)Date:表示日期格式,oracle默认的日期格式是”DD-MM-YY”Timestamp:时间戳,精确度比较高的日期类型Time:时间格式Blob:存储大的二进制多媒体文件。=4GBClob:存储大的二进制文本文件。 使用ALTER命令,其语法为:A

2、LTER TABLE表名 ADD(字段名 类型 DEFAULT 默认值,字段名 类型 DEFAULT 默认值,.)说明: 这种向表中添加字段的方式比较常见,对数据的破坏较小,一般在系统的二次开发用的比较多。Eg : 要向student表中再添加QQ字段,则可以如下操作:ALTER TABLE student ADD(qq number(10);2 修改数据类型其语法为:ALTER TABLE表名 MODIFY(字段名 类型 DEFAULT 默认值字段名 类型 DEFAULT 默认值.)说明: 通常只涉及到数据长度的修改,类型之间的修改限制比较多 在将长度的改小的过程中一定要考试以前的数据是否还

3、能装下。Eg:将student表的sname字段的字符长度改为30ALTER TABLE student MODIFY(name varchar2(30)3 删除表的列基语法是:ALTER TABLE 表名 DROP(字段名,字段名.) 说明: 删除列的情况在实际项目比较少见。Eg:删除student表中的QQ字段 ALTER TABLEstudent DROP(qq)4 修改表的名称其语法是:语法一、ALTER TABLE表名 RENAME TO 新表名语法二、RENAME 表名 TO 新表名Eg:将student表名改成imit_studentALTER TABLE student REN

4、AME TO imti_student或:RENAME student TO imti_student说明: 修改表的名称在实际项目中也比较少见,影响太大。1.4截断表 了解其语法是:TRUNCATE TABLE表名Eg: 删除student表中的所有记录:DROP TABLE student或:DELETE FROM student或:TRUNC TABLE student1.5 DELETE DROP TRUNCATE的比较 重点相同点:三个关键字都能删除表的所记录不同点:1. delete都只是删除数据,不删除表的结构,而drop会删除表的结构,以及依赖它的约束,触发器,索引,但是依赖它

5、的存储过程与函数会保留。2. delete是DML语句,它的操作会放到回滚段中,可以执行回滚操作,能够触发触发器。而drop,truncate都是DDL语句,它的操作不会放到回滚段中,无法回滚,不会触发触发器。3. delete删除数据不会回收该空间。drop会将表所占用的所有空间都释放。truncate默认情况下是要释放空间,但可以设置不释放空间。4. 速度不一样,一般情况:droptruncatedelete5. 安全性,小心使用drop和truncate总结: 想删除部分数据建议使用delete 想删除表只能drop 想删除记录但保留表的结构时,如果操作与事务无关,不需要触发触发器可以使

6、用truncate,如果操作与事务有关,需要触发器可以使用delete 如果想整理数据内部碎片,可以使用truncate跟上reuse stroage.然后重新导入数据。2.约束(CONSTRAINT) 重点在数据库的开发,约束是必不可少,约束可以比较好控制数据的完整性。2.1 约束的分类在实际中,约束可以分为以下几种: 主键约束:主键表示唯一标识,本身不能空且不能重复。(PK) 唯一约束:只表此列的值是唯一,但是可以为空。(UK) 检查约束:表示一个列的值是否是合法数据。(CK) 非空约束:表示此列不能出现空值。 主-外键约束:表示两张表之间约束。(FK)2.2 主键约束(PRIMARY K

7、EY)给某字段加主键约束可以使用关键字PRIMARY KEYCREATE TABLEstudent( Sid number(5) PRIMARY KEY, Sname varchar2(20), Sage number(3), Sgender char(2) DEFAULT 男, Address varchar2(100), Telpone varchar2(12), email varchar2(30)说明: 主键约束本身就有非空的约束和唯一约束,而且一个表只能有一个主键。 将约束直接定义在相应的字段之后的约束称为列级约束。 将约束定义所有字段之后的约束我们称为表级约束。 给约束定义名称最好

8、使用表级约束。如:CREATE TABLEstudent( Sid number(5),-学员编号 Sname varchar2(20), Sage number(3), Sgender char(2) DEFAULT 男, Address varchar2(100), Telpone varchar2(12), email varchar2(30), CONSTRAINT student_sid_pk PRIMARY KEY(sid) 通常一张表的主键会设置成与实体本身无关一个字段。也就是说通常会虚构出一个无业务无关ID字段作为表的主键。CREATE TABLEstudent( Id num

9、ber(8) ,-虚构一个与业务无关的字来作为表的主键 Sid number(5),-学员编号 Sname varchar2(20), Sage number(3), Sgender char(2) DEFAULT 男, Address varchar2(100), Telpone varchar2(12), email varchar2(30), CONSTRAINT student_sid_pk PRIMARY KEY(id)Eg:向表student中添加记录INSERT INTO student VALUES(1001,zhangsan,20,男,襄樊胜利街,138458888,abc)

10、;INSERT INTO student VALUES(1001,zhangsan,20,男,襄樊胜利街,138458888,abc);说明: 当使用了主键约束后,则不允许插入两个完全相同的记录。并且主键所在列不允许为空值。2.3 唯一约束(UNIQUE)保证数据的某项内容不重复。可以使用唯一约束,关键字是UNIQUEEg.将student表的sname列定义成唯一列.CREATE TABLEstudent( id number(5),-主键 sno varchar2(8) UNIQUE,-代表学员编号 Sname varchar2(20) UNIQUE, Sage number(3), Sg

11、ender char(2) DEFAULT 男, Address varchar2(100), Telpone varchar2(12), email varchar2(30), CONSTRAINT student_sid_pk PRIMARY KEY(id)说明: 同样可以用表级约束使用CONSTRAINT关键字来定义唯一性约束. 如:CREATE TABLEstudent( id number(5),-主键 sno varchar2(8) UNIQUE,-代表学员编号 Sname varchar2(20), Sage number(3), Sgender char(2) DEFAULT

12、男, Address varchar2(100), Telpone varchar2(12), email varchar2(30), CONSTRAINT student_sid_pk PRIMARY KEY(id), CONSTRAINT student_sname_uk UNIQUE(sname)要查看当前用户的所有约束,可查看ORACLE数据字典,USER_CONSTRAINTselect constraint_name from user_constraints where owner=SCOTT2.4 检查约束用来检查数据的合法性的约束,可以使用CHECK关键字.Eg:将表stud

13、ent中的年龄范围定义在0-150,性别必须是男或者女CREATE TABLEstudent( id number(5),-主键 sno varchar2(8) UNIQUE,-代表学员编号 Sname varchar2(20), Sage number(3) CHECK(sage BETWEEN 0 AND 150), Sgender char(2) DEFAULT 男 CHECK(sgender IN(男,女), Address varchar2(100), Telpone varchar2(12), email varchar2(30), CONSTRAINT student_sid_p

14、k PRIMARY KEY(id), CONSTRAINT student_sname_uk UNIQUE(sname)同样也可以用表级约束来定义检查约束CREATE TABLEstudent( id number(5),-主键 sno varchar2(8) UNIQUE,-代表学员编号 Sname varchar2(20), Sage number(3), Sgender char(2) DEFAULT 男 CHECK(sgender IN(男,女), Address varchar2(100), Telpone varchar2(12), email varchar2(30), CONS

15、TRAINT student_sid_pk PRIMARY KEY(id),CONSTRAINT student_sname_uk UNIQUE(sname),CONSTRAINT student_sage_ck CHECK(sage BETWEEN 0 AND 150)2.5非空约束(NOT NULL)可以对那此必填的字段进行约束,可以使用关键字NOT NULLEg:使student表的sno必填的内容CREATE TABLEstudent( id number(5),-主键 sno varchar2(8) UNIQUE NOT NULL,-代表学员编号 Sname varchar2(20)

16、, Sage number(3), Sgender char(2) DEFAULT 男 CHECK(sgender IN(男,女), Address varchar2(100), Telpone varchar2(12), email varchar2(30), CONSTRAINT student_sid_pk PRIMARY KEY(id),CONSTRAINT student_sname_uk UNIQUE(sname),CONSTRAINT student_sage_ck CHECK(sage BETWEEN 0 AND 150)说明: 如果使用列级约束给同一字段加多个约束,用空格隔开

17、即可。 非空约束不可以使用表级约束来定义,只能使用列级约束。2.6 主-外键约束(FOREIGN KEY)之前讲的四种的约束全部都针对单表的约束,而主-外键约束是两张表的约束,使用关键字FOREIGN KEY。外键主要用来维护两实体之间的联系。对于1:N的关系建立在在多一方。对于1:1的关系建立在从表的一方。对于多对多的关系是需要中间表来维护,而且中间表使用的是联合主键。CREATE TABLEstudent(-子表 id number(5),-主键 sno varchar2(9) UNIQUE NOT NULL,-代表学员编号 Sname varchar2(20), Sage number(

18、3), Sgender char(2) DEFAULT 男 CHECK(sgender IN(男,女), Address varchar2(100), Telpone varchar2(12), email varchar2(30),classid number(3), CONSTRAINT student_sid_pk PRIMARY KEY(id), CONSTRAINT student_sname_uk UNIQUE(sname), CONSTRAINT student_sage_ck CHECK(sage BETWEEN 0 AND 150) CONSTRAINT student_cl

19、ass_classid_fk FOREIGN KEY(classid) REFERENCES class(id)CREATE TABLE class(-父表 id number(3) PRIMARY KEY, cno varchar2(6) not null unique, cname varchar2(20) not null unique, classroom varchar2(10)说明: 外键约束可以保证数据的完整性,不会出现不合理的数据,它可以为空可以重复,但数据都是来源于关联表的主键值。 外键可以进行列级定义或或者表级定义如:CONSTRAINT student_class_cla

20、ssid_fk FOREIGN KEY(classid) REFERENCES class(id)(表级定义)classid number(3) references class(id)(列级定义) 主外键约束引用的必须是父表的主键。 在添加数据的时候必须先添加父表的数据。 删除的时候必须先删除子表中数据再删除父表中的数据实际也可以进级级联操作,要进行级联操作的时候需要在建立外键的关系的时候指定此级联属性。A. ON DELETECASCADE:删除父表中的数据时,会级联删除子表中关联的数据。B. ON DELETE SET NULL:删除父表中数据时,会将子表的关联列的数据全部置为NULLC

21、. ON DELETE NO ACTION:不做任何级联,默认设置 删除表的时候也需要先删除子表再删除父表。但是可以加上CASCADE CONSTRAINT来进行级联删除(意义不大)。如:drop table class CASCADE CONSTRAINT;2.7约束的修改约束的修改比较不常见。特别是已经有数据的表,再修改其约束的时候,限制会比较多。通常会用在建表时,特别是建立主外约束时用的比较多。1 添加约束其语法是:ALTER TABLE 表名 ADD CONSTRAINT 约束名 约束类型(约束的字段) Eg:将class表的classroom字段加上唯一性约束 ALTER TABLE

22、 class ADD CONSTRAINT class_classroom_uk UNIQUE(classroom) 可以使用上面语法添加的约束类型有: PRIMARY KEY,UNIQUE CHECK FOREIGN KEY 对于NOT 类型的约束可以使用下面的语法:ALTER TABLE class MODIFY(classroom varchar(30) NOT null); 删除约束 其约束的语法: ALTER TABLE 表名 DROP CONSTRAINT 约束名 Eg:去掉STUDENT表的sname字段的唯一约束 ALTER TABLE student DROP CONSTRAINT student_sname_uk;3约束的禁用和启用其语法:ALTER TABLE 表名 DISABLE CONSTRAINT 约束名ALTER TABLE 表名 ENABLE CONSTRAINT 约束名

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1