




已阅读5页,还剩40页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1,表的创建,主讲教师:刘振华,2,教学目标,能力目标能正确使用数据类型能熟练创建表能熟练对表分区和复制表格知识目标掌握表创建语句语法掌握常用数据类型使用,3,任务导入,新闻发布系统,是将网页上的某些需要经常变动的信息,类似新闻等更新信息集中管理,并通过信息的某些共性进行分类,最后系统化,标准化发布到网站上的一种网站应用程序。,4,任务导入,5,任务,6,任务,7,操作示范,创建学生信息表:CREATE TABLE tbstudent(SName VARCHAR2(10) NOT NULL, Sno VARCHAR2(10),SBirthday DATE, SSex CHAR(2),Constraint pri_tbstudent_sno PRIMARY KEY(sno);,演示,8,操作示范,演示,创建成绩表:CREATE TABLE tbscore(Sno VARCHAR2(10) NOT NULL, Subject VARCHAR2(10) NOT NULL, Score NUMBER,PRIMARY KEY (Sno,Subject),Constraint ref_tbstudent_sno FOREIGN KEY(Sno) references tbstudent(sno);,9,任务实施,理解书籍内容,任务:创建新闻发布系统4张表格时间:20分钟,小组讨论,10,任务实施,小组互评,检查评比,11,指定表空间,表存放位置 以上所建表对象存放于用户的默认表空间。如果要更改表的表空间,则需在建表语句后面带上存储参数。CREATE TABLE tbstudent(SName VARCHAR2(10) NOT NULL, Sno VARCHAR2(10),SBirthday DATE, SSex CHAR(2),Constraint pri_tbstudent_sno PRIMARY KEY(sno)Tablespace users; -指定表对应的表空间名,12,理论知识,创建表语法如下:CREATE TABLE schema.table_name(column_name DATATYPE ,column_name DATATYPE.);其中 : schema 表 示 对 象 的所有者 即 模式的 名 称 ; table_name 表 示 表的 名 称 ;column_name 表示列的名称;DATATYPE 表示该列的数据类型及其长度。,13,理论知识,创建表时,需要指定下列内容: 唯一的表名称 表内唯一的列名称 列的数据类型及其宽度表名应该严格遵循下列命名规则:表名首字符应该为字母;不能使用 Oracle 保留字来为表命名;表名的最大长度为 30 个字符;同一用户模式下的不同表不能具有相同的名称;可以使用下划线、数字和字母,但不能使用空格和单引号;Oracle 中的表名(还有列名、用户名和其他对象名)不区分大小写,系统会自动转换成大写。,14,理论知识,数据定义语言 数据定义语言用于改变数据库结构,包括创建、修改和删除数据库对象。例如,该语言可以用来创建、修改和删除表。CREATE TABLE(创建表)ALTER TABLE(修改表)TRUNCATE TABLE(截断表)DROP TABLE(删除表),15,理论知识,数据类型 1)字符数据类型 CHAR CHAR数据类型是一种有固定长度和最大长度的字符串。存储在数据类型为CHAR字段中的数据将以空格的形式补到最大长度。长度定义在12000字节之间。当你创建一个CHAR型字段,数据库将保证在这个字段中的所有数据是定义长度,如果某个数据比定义长度短,那么将用空格在数据的右边补到定义长度。如果长度大于定义长度将会触发错误信息,16,理论知识,数据类型 1)字符数据类型 VARCHAR2 VARCHAR2数据类型是一种可变长度的、有最大长度的字母数字型数据。VARCHAR2类型的字段长度可以达到4000字节,VARCHAR2类型的变量长度可以达到32676字节。一个空的VARCHAR2(2000)字段和一个空的VARCHAR2(2)字段所占用的空间是一样的,17,理论知识,数据类型 1)字符数据类型 VARCHAR VARCHAR数据类型数据是VARCHAR2型数据的快照。,18,理论知识,数据类型 1)字符数据类型 NCHAR数据类型和NVARCHAR2数据类型如果系统需要集中管理和存储多种字符集,就需要使用这两种字符类型。在使用NCAHR和NVARCHAR2时,文本内容采用国家字符集来存储和管理。而不是默认字符集。 这两种类型的长度指的是字符数,而不是字节数。,19,理论知识,数据类型 2)数字数据类型数字数据类型可用来存储负的和正的定点数、浮点数和零等数字,最常用的是NUMBER数据类型。NUMBER数据类型,可用来存储整数、定点数和浮点数。最高精度是38个十进制位。如果不指定精度,默认为38位。范围在-1*10130和9.99999*10125之间,如果标识一个数据超出这个范围时就会出错。该数据类型的格式为:NUMBER(p,s):它表示NUMBER数据类型存储一个有p位精确度的s位等级的数据。p是精度(precision),表示数字的总位数。s是等级(scale),表示小数点右边数字的位数,取值范围在-84至127之间。可以同时指定p和s,也可以只指定p不指定s,或者是p和s都不指定。只能用整数指定p和s。,20,理论知识,数据类型 3)日期和时间数据类型 DATE数据类型用来存储日期和时间格式的数据。这种格式可以转换为其他格式的数据去浏览,而且它有专门的函数和属性用来控制和计算。以下的几种信息都包含在DATE数据类型中:Century、Year、Month、Day、Hour、Minute、Second。TIMESTAMP数据类型是Oracle在DATE数据类型上扩展出来的,它包括了所有DATE数据类型的年月日时分秒的信息,而且包括了小数秒的信息。使用TIMESTAMP数据类型可以足够的区分出事件的先后顺序,21,理论知识,数据类型 4)LOB数据类型 存储图片和音像资料或者是超长的文本 LOB(Large Object)数据类型存储非结构化数据,比如二进制文件,图形文件,或其他外部文件。LOB可以存储到4G字节大小。 BLOB:代表Binary LOB(二进制LOB),它可以存储较大的二进制对象,如图形、视频剪辑和声音剪辑等。,22,Oracle中的伪列,伪列就像Oracle中的一个表列,但实际上它并未存储在表中。伪列可以从表中查询,但是不能插入、更新或删除它们的值。在这一节讨论两个伪列ROWID和ROWNUM。数据库中的每一行都有一个行地址,ROWID伪列返回该行地址。可以使用RowID值来定位表中的一行。通常情况下,ROWID值可以唯一地标识数据库中的一行。ROWID伪列有以下重要的用途:能以最快的方式访问表中的一行(索引中应用)。能显示表的行是如何存储的。可以作为表中行的唯一标识。,23,Oracle中的伪列,对于一个查询返回的每一行,伪列ROWNUM返回一个数值代表行的次序。返回的第一行的ROWNUM值为1,第二行的ROWNUM值为2,依次类推。通过使用ROWNUM伪列,可以限制查询返回的行数。,24,实践使用表分区,创建一个分区表,存储某公司产品的销售记录,由于公司的销售记录很多,放在一个普通表中,会影响DML操作的效率,根据商品价值分区。 CREATE TABLE tb_sales ( product_id VARCHAR2(5), sales_date DATE NOT NULL, sales_cost NUMBER(10) ) PARTITION BY RANGE (sales_cost) ( PARTITION P1 VALUES LESS THAN (1000), PARTITION P2 VALUES LESS THAN (2000), PARTITION P3 VALUES LESS THAN (3000) );,25,实践使用表分区,向表中插入数据,在SQL提示符下,输入如下代码: INSERT INTO tb_sales VALUES (1233,TO_DATE(2007-10-1,yyyy-mm- dd),800);按回车键,系统提示“已创建 1 行”。,Sql server中日期型数据表示和字符串一致,系统自动转换成日期型数据。但oracle中需要使用字符串表示后按给定格式转换成日期型数据。,26,实践使用表分区,查询特定分区中的数据,在SQL提示符下,输入如下代码: SELECT * FROM tb_sales PARTITION(P2);,27,实践使用表分区,INSERT INTO tb_sales VALUES (1235,TO_DATE(2003-10-1,yyyy-mm-dd),3100); 按回车键,系统提示“插入的分区关键字未映射到任何分区”。因为根据表分区的特点,商品价值小于3000的存储在P3分区,而对于大于等于3000的数据无法存储的相应得分区。,28,实践使用表分区,为sales表在添加一个分区,在SQL提示符下,输入如下代码: ALTER TABLE tb_sales ADD PARTITION P4 VALUES LESS THAN (4000);按回车键,系统提示“表已更改”。,29,实践使用表分区,ALTER TABLE tb_sales ADD PARTITION P5 VALUES LESS THAN (MAXVALUE);按回车键,系统提示“表已更改”。在上面语句中,我们没有使用具体的值,而是使用了Oracle提供给的关键字“MAXVALUE”,从而保证了在向表中插入任何数据的时候都能成功。,30,实践使用表分区,在sales表中,由于大部分的商品价值小于1000,使得分区P1太大,从而使我们表分区的目的不明显,需要将这个分区在500这个点拆分为两个分区,在SQL提示符下,输入如下代码: ALTER TABLE tb_sales SPLIT PARTITION P1 AT(500) INTO (PARTITION p1,PARTITION P6);,31,实践使用表分区,在sales表中,由于P3、P4两个分区中数据较少,需要合并这两个分区。在SQL提示符下,输入如下代码: ALTER TABLE tb_sales MERGE PARTITIONS P3,P4 INTO PARTITION P4;,32,实践使用表分区,在sales表中,由于分区P5中没有数据,需要删除分区。在SQL提示符下,输入如下代码: ALTER TABLE tb_sales DROP PARTITION P5;,33,实践使用表分区,由于范围分区可能造成分区数据不平均,从而降低了分区表的效果,因此提出了散列分区。在SQL提示符下,输入如下代码,创建一个散列分区表。CREATE TABLE tb_employee(emp_id NUMBER(4),emp_nameMP_NAME VARCHAR2(14),emp_address VARCHAR2(15),department VARCHAR2(10)PARTITION BY HASH (department)PARTITIONS 4;,34,实践使用表分区,可以为表创建复合分区,现按范围进行分区,然后在范围分区内部进行散列分区:CREATE TABLE tb_sales2( product_id VARCHAR2(5), sales_date DATE NOT NULL, sales_cost NUMBER(10) PARTITION BY RANGE (sales_date) SUBPARTITION BY HASH (product_id) SUBPARTITIONS 5 ( PARTITION S1 VALUES LESS THAN (TO_DATE(01/4月/2001,DD/MON/YYYY), PARTITION S2 VALUES LESS THAN (TO_DATE(01/7月/2001,DD/MON/YYYY), PARTITION S3 VALUES LESS THAN (TO_DATE(01/9月/2001,DD/MON/YYYY), PARTITION S4 VALUES LESS THAN (MAXVALUE);该代码演示了如何创建表tb_sales2,该表会被分区为复合分区。它先按sales_date列创建了4个范围分区,再按product_id创建了5个子分区,因此,总共会为该表创建20个分区。,35,理论知识,表分区是将一个表划分成几部分,分区后逻辑上表仍然是一张完整的表,只是将表中的数据物理上存放到多个表空间。以改善大型应用系统的性能。一般超过2GB的表才需要分区。分区方法包括范围分区、散列分区、复合分区和列表分区分区维护操作包括添加、删除、合并和拆分分区,36,表分区,为了简化数据库大表的管理,例如在数据仓库中一般都是TB级的数量级。Oracle 8以后推出了分区选项。分区将表分离在若干不同的表空间上,用分而治之的方法来支撑无限膨胀的大表,提高大表在物理一级的可管理性。将大表分割成较小的分区可以改善表的维护、备份、恢复、事务及查询性能。,37,表分区,分区的优点: 1. 增强可用性2. 减少关闭时间3. 维护轻松4. 均衡I/O5. 改善性能6. 分区对用户透明,最终用户感觉不到分区的存在。,38,表分区
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 下沉社区人员管理办法
- 机械设备吊装后定位校准技术方案
- 排水管网穿越障碍物施工方案
- 铝幕墙数字化成本动态管控方案
- 管网项目全生命周期成本控制管理方案
- 标准厂房成本预算控制方案
- 高速公路互通区绿化景观营造方案
- 排水管网改造施工组织设计方案
- 农产品品牌化建设方案
- 农村发展经济管理和咨询服务协议
- 供应商纠正预防措施报告
- 《插画》名师优质课获奖市赛课一等奖课件
- 一带一路详解
- 中小学英语课件-Go-away-Mr-Wolf
- 蛋白质-能量营养不良课件
- 1输变电工程施工质量验收统一表式(线路工程)
- 二年级语文上册《有趣的动物》课件PPT
- 不干胶贴标机设计学士学位论文
- 《劳动合同书》-河南省人力资源和社会保障厅劳动关系处监制(2016.11.15)
- 市热电厂清洁生产审核报告
- GB/T 239.2-2023金属材料线材第2部分:双向扭转试验方法
评论
0/150
提交评论