oracle10g经典实战第3章_数据库的操作.ppt_第1页
oracle10g经典实战第3章_数据库的操作.ppt_第2页
oracle10g经典实战第3章_数据库的操作.ppt_第3页
oracle10g经典实战第3章_数据库的操作.ppt_第4页
oracle10g经典实战第3章_数据库的操作.ppt_第5页
已阅读5页,还剩67页未读 继续免费阅读

下载本文档

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

文档简介

1、第三章数据库的操作,3.1操作表数据通过PL/SQL语句操作表数据既方便又灵活。所有的命令都将被编译成SQL*Plus。输入SQL*Plus,用户名和密码分别为ADMIN和manager。3.1.1插入表记录的语法格式:插入表名列列表值(常量1,常量2),此语句的功能是将值指定的行和列值添加到表名指定的表中。(1)插入时,列值表必须与列名表的顺序和数据类型一致。(2)值中描述的值可以是常数、变量或表达式。(3)如果列值为空,则该值必须设置为空。如果列值被指定为列的默认值,则使用DEFAULT。(4)向表中插入行时,如果新插入的行中所有可以取空值的列值都是空值,则可以通过insert语句中的列表

2、指出插入的行值中的非空列,并且只需在值中给出这些列的值。3.1.1插入表记录,例3.1将下面的行: 061101王林计算机人19870201 50插入到XSCJ数据库的表XS中,并且可以使用下面的PL/SQL语句3360插入到XS (XH、XM、ZYM、XB、CSSJ、 ZXF)值(061100) 请使用INSERT INTO语句将以下记录插入学生表:学生编号姓名职业名称性别出生时间总学分备注061102王平计算机女1986-09-02 38 NULL 061103王艳计算机女1985-10-06 40NULL 061104魏延平计算机男1986-08-26 40 NULL 061105吴青红

3、计算机男1985-12-3036两门课不及格061116 课程提前061109张强机器男1984-08-11,40 NULL 061110张伟计算机女1987-07-22,40 NULL 061111计算机女1986-03-18,40 NULL 061112罗计算机女1984-01-30,40 NULL,3.1.1插入表记录,用SELECT语句查询,图3.1显示了插入新数据后的查询结果创建表测试(xmchar (20)不为空,zyvarchar (30)默认(计算机),nj编号不为空);使用INSERT将记录插入到测试表中:INSERT INTO test(xm,nj) VALUES(王林,3

4、);插入到测试表中的记录是:王林计算机3语法格式:插入到表中_名称派生_表派生_表是通过查询SELECT语句获得的结果集。使用此参数,可以将表中的一些数据插入到表表名中。3.1.1插入表记录,示例3.3使用以下CREATE语句创建表xs1:CREAte table xs1(num char(6)不为空,name char (8)不为空,special char(10)为空);使用以下INSERT语句将数据插入xs1表:插入XS1从XS中选择xh、XM、zym,其中zym=计算机;3.1.1插入表格记录。该insert语句将专业名称为“XS计算机”表的每条记录的学生编号、姓名和专业名称列的值插入

5、XS1表的每一行。使用SELECT语句查看插入结果:num name specialty 061101王林计算机061102王平计算机061103王艳计算机061104魏延平计算机061105吴庆红计算机061106李芳芳仪表计算机061107李明计算机061108林一凡计算机061109张强民计算机061110张伟计算机061111赵琳计算机061112罗琳琳计算机添加了MERGE语句,3.1.1插入表记录,语法格式:匹配时使用table _ name on (join _ condition)合并到table _ name,不匹配时更新集合,然后插入()值()joni _ conditio

6、n:连接条件。示例3.4检查表XS_JSJ中的数据是否与表XS中的数据匹配。如果匹配,使用INSERT子句插入数据行。首先,插入XS_JSJ (xh,XM,zym,XB,cssj,zxf)值(101112,霍佳,计算机,女性,截止日期(19860130,YYYYMMDD),36);使用MERGE语句的XS_JSJ表中添加的数据插入到XS表中:当不匹配时,使用xs _ jsj b on (a.xh=b.xh)合并到xs a中,然后插入值(b.xh,b.xm,b.zym,b.xb,b.cssj,b.zxf,使用SELECT语句,您可以发现一个名为霍佳的学生记录已添加到表中。3.1.2 DELETE

7、表记录,1。用删除来删除PL/SQL语言中的数据,删除行可以用删除语句。语法格式:从表名视图名中删除条件此语句的功能是从表名指定的表或视图名指定的视图中删除满足条件查询条件的行。如果忽略此条件,所有行都将被删除。示例3.5在XSCJ数据库的XS表中删除总信用小于39的行,并使用以下PL/SQL语句。从ZXF39所在的XS删除;3.1.2 DELETE表记录,1。使用delete删除数据,并使用SELECT语句查询,我们可以发现表中学校编号为“061102”和“061105”的两行已被删除。结果是:xhxmzym-061101王林计算机061103王艳计算机061104魏延平计算机061106李

8、芳芳计算机061107李明计算机061108林一凡计算机061109张强民计算机0张伟计算机061111赵琳计算机061112罗计算机3.1.2删除表记录,2。使用TRUNCATE TABLE语句删除表数据。如果您真的想删除大型表中的所有记录,可以使用TRUNCATE命令,它可以释放占用的块表空间。此操作无法回滚。语法格式:TRUNCATE TABLE table,其中table_name是要删除其数据的表的名称。由于TRUNCATE TABLE语句删除了表中的所有数据,并且无法恢复,因此应该小心使用。TRUNCATE TABLE用于删除指定表中的所有行,但删除表的结构及其列、近似包、索引等。

9、保持不变。TRUNCATE TABLE在功能上与不带WHERE子句的DELETE语句相同,两者都删除表中的所有行。截断表比删除快。对于外键约束引用的表,应该使用不带WHERE子句的DELETE语句,而不是使用TRUNCATE TABLE来删除数据。此外,TRUNCATE TABLE不能用于索引视图的表。3.1.3修改表格记录。在PL/SQL语言中,UPDATE语句可以用来修改表中的数据行。语法格式:update table _name view_name SET column _ name=expression,n在此语句的where条件中,由表_ name指定的表中的SET指定的每一列的列值

10、或由view _ name指定的满足条件查询条件的记录被设置为由SET指定的新值。如果不使用WHERE子句,将更新所有记录的指定列值。示例3.6将XSCJ数据库XS表中的学生备注列值“061110”更改为“三好学生”,并使用以下PL/SQL语句:更新XS集BZ=三好学生,其中XH=061110;3.1.3修改表记录,用SELECT语句查询,可以发现表中中间数字为“061110”的行的备注字段值已经被修改,如图3.2所示。图3.2修改表后的数据,3.1.3修改表记录,例3.7将XS表中所有学生的总学分增加10。更新XS集ZXF=ZXF 10使用SELECT语句,您可以发现表中所有学生的总学分增加

11、了10个点,如图3.3所示。图3.3,添加学分后的数据,3.1.3,表记录,例3.8,将同学名为“罗”的专业改为“通信工程”,将备注改为“改专业为学习”,并将学号改为“061241”。更新SET=通信工程,BZ=转专业,=061241其中XM=罗;例3.9修改XS表,将“李明”学生的总学分增加4,并将备注改为“先完成数据结构,然后再提并获得学分”。更新XS集ZXF=ZXF 4,BZ=提前完成数据结构并获得学分,其中XM=李明;3.2默认值约束,对于某些字段,可以在程序中定义默认值以方便用户。定义字段的默认值以在定义表或修改表时定义默认值约束。1.默认值约束的定义使用原始设备制造商或SQL命令定

12、义或修改表时,可以定义字段的默认值约束。下面的示例介绍了使用SQL语句定义字段的默认值约束的方法。感兴趣的读者可以练习在原始设备制造商中定义字段的默认值约束。默认值约束定义的一般格式是:create table table _ name(column _ name datatype不为null | null default constraint _ expression/* expression of default value constraint */,n) table_name是创建的表名;列名是列名;数据类型是相应列的数据类型;DEFAULT关键字表示后面的约束表达式是默认约束表达式,

13、它只能是常量(如字符串)、系统函数或空值;参数n表示可以定义多个数据字段。3.2默认值约束,示例3.10定义表时定义字段的默认值约束。创建表XS(学生编号字符(6)不为空,姓名字符(8)不为空,专业名称字符(10)为空,性别字符(2)不为空,出生日期不为空,总学分默认值为0,/*定义默认值约束*/注意varchar2(200)为空)示例3.11修改表时定义字段的默认值约束。更改表XS添加(添加列号(2)默认为0);3.3索引,为什么在字典中搜索时可以快速找到要搜索的内容?主要原因是字典已经按照一定的顺序排序了。在Oracle 10g中,索引是一种数据库结构,用于服务器快速查找表中的行。在数据库

14、中建立索引具有以下功能:(1)快速访问数据;(2)不仅可以提高数据库性能,还可以保证列值的唯一性;(3)实现表间的参照完整性;(4)使用ORDER BY和GROUP BY子句进行数据检索时,使用索引可以减少排序和分组的时间。3.3索引和3.3.1索引的分类索引可以根据存储方式分为两类:B*树索引和位图索引。(1) B*树索引。B*树索引的存储结构类似于书籍的索引结构,存储数据块有两种类型:分支块和叶块。分块相当于大的图书目录,分块相当于特定的索引页。(2)位图索引。位图索引存储主要用于节省空间和减少ORACLE对数据块的访问。它使用位图偏移量来对应表的行标识号。位图索引通常是具有太多重复值的表字段。按功能有以下类型的索引对象:(1)唯一索引。唯一索引意味着没有两行会记录相同的键值。(2)非唯一索引。它被称为非唯一索引,因为它不限

温馨提示

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

评论

0/150

提交评论