08.表的创建和维护.ppt

上传人:99****p 文档编号:1434864 上传时间:2019-02-27 格式:PPT 页数:27 大小:711.57KB
下载 相关 举报
08.表的创建和维护.ppt_第1页
第1页 / 共27页
08.表的创建和维护.ppt_第2页
第2页 / 共27页
08.表的创建和维护.ppt_第3页
第3页 / 共27页
08.表的创建和维护.ppt_第4页
第4页 / 共27页
08.表的创建和维护.ppt_第5页
第5页 / 共27页
点击查看更多>>
资源描述

1、表的创建和维护Oracle SQL和 PL/SQL编程2目标使用 CREATE TABLE命令创建新表使用子查询创建新表向现有表添加列修改现有表中的一列大小从现有表中删除一列将一列标记为未使用,在以后删除它重命名表截断表删除表3表的创建和维护用来创建和修改数据库表的命令被称为 “ 数据定义语言” ( Data Definition Language, DDL)命令。这些命令实际上是专门用来 创建或修改数据库对象 的 SQL命令。4表设计 3-1首先表的名称并确定结构;确定哪些列将包含在这个表中,确定任何字符或数字列所需要的宽度在 Oracle中命名表和列时的规则 :表和列的名称 最多可以达到

2、30个字符长 ,而且必须以一个 字母开始 ,这个限制只适合于表或列的名称,而不适合用于一列中的数据量。表和列名称中允许数字,下划线( _)和数字符号( #),但是不能在表和列名称中包含任何空格 。用户拥有的每一个表应该具有一个 唯一的表名称 ,而且每一个表中的 列名称也应该是唯一 的不能使用 Oracle “ 保留字 ” ,例如: SELECT, DISTINCT, CHAR和 NUMBER等。5表设计 3-2确定了表的内容,可以创建列了,必须完成1. 为每一列选择一个名称2. 确定每一列将存储的类型。3. 确定(在某些情况下)列的最大宽度6表设计 3-3在选择列名称之前,先看一下数据类型以及

3、他们的默认值Oracle数据类型数据类型 说明VARCHAR2(n) 长度可变的字符数据,其中 n表示这个列的最大长度,最大大小是 4000个字符。这种数据类型没有默认大小,必须指定一个最小值。例子: VARCHAR2(9),最多可以包含 9个字母、数字或符号CHAR(n) 长度固定的字符,其中 n表示列的长度,默认大小是 1,最大大小是 2000个字符。例子: CHAR(9)可以包含 9个字母,数字或符号,但是输入的字符少于 9个,则会向右边添加空格,使数据达到 9个字符的长度。NUMBER(p,s) 数字列,其中 p表示精度(或小数 右边 和 左边 的总位数),最大值是 38位NUMBER

4、(7,2)DATE 日期类型,默认的格式 “ DD-MM-YY” ,可以使用 TO_CHAR格式显示日期其他元素LONG 最多存储 2G的长度可变的字符数据CLOB 用于最多 4GB的单字节字符数据RAW(n) 最多存储 2000字节的原始二进制数据。LONG RAW 最多 2GB的未结构化数据BLOB 最多可存储 4GB的未结构化数据BFILE 存储了操作系统存储的一个二进制文件的文件定位器TIMESTAMP DATE的数据扩展,不需要 TO_CHAR函数就可引用时,分,秒INTERVAL 用来确定特定的时间间隔或时间量7创建表关键字 “ CREATE TABLE” 指示 Oralce创建一

5、个表。可以包括可选的 schema(架构),表示谁将 “ 拥有 ” 要创建的这个表,例如:如果创建这个表的用户也就是这个将要拥有这个表的人,那么可以忽略架构,将默认采用当前的用户名。另一方面,如果使用用户名为 DRAKE为某个人创建了 ACCTMANAGER表,那么架构和表名称将属于 DRAKE的架构,而不是属于你的架构。数据库对象的所有者有权在对象上执行这些操作。对于一个表来说,另一个数据库是用户能够查询或处理表中包含的数据的唯一方式就是使用表所有者或数据库管理提供的权限。当然表名称是用来标识正在创建的表的名称。要想为其他人的架构创建一个表(也就是其他人拥有的表),你必须具有对那个用户的架构

6、使用 CREATE TABLE命令的权限。 CREATE TABLEschema tablename(columnname datatypeDEFAULT value,columnname datatypeDEFAULT value,);8定义列一个表最多可以包含 1000列 。CREATE TABLE acctmanager(amid VARCHAR2(4),amname VARCHAR2(20),amedate DATE DEFAULT SYSDATE,region CHAR(2);u创建表的时候允许向列分配一个默认值。默认值是用户没有在列中输入内容情况, Oracle自动存储的值。u表名

7、虽然是以小写字母输入,但 ORACLE会在处理命令时自动转为大写。将表名与列名取小写字母为了与 Oracle关键字区别。u由于创建表的用户就是这个表的拥有者,所以省略架构名。uamedate分配了一个默认值 SYSDATE,表明如果用户输入新的销售经理信息,而没有包括这个人的聘用时间时,则 oracle服务器会插入当前日期。注意:如果定义 amedate为空,则会生成一个错误。u执行了命令之后,只是创建了表结构,并没有数据。u能够执行 CREATE TABLE命令必须有这个权限,如果没有要求管理员授予。9查看表结构: DESCRIBEDESCRIBE tablename用 来显示表的结构注意:

8、 DESCRIBE是 sql*plus的命令而不是 SQL命令。命令的简写 DESC结果中列出了定义的列和数据类型,还显示了这一列是否为空,也就是是否允许 NULL值,注意: amid如果定义为了主键,则会显示 NOT NULL,在讲约束的时候会讲到。10通过子查询创建表创建一个包含现有表的数据的表,可以使用 CREATE TABLE命令并包括一个包含子查询的 AS子句。CREATE TABLE tablename(columnname,)AS (subquery);CREATE TABLE secustomerordersAS (SELECT customer#,state,ISBN,Category,quantity,cost,retailFROM customers NATURAL JOIN orders NATURAL JOINOrderitems NATURAL JOIN booksWHERE state IN(FL,GA,AL);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 课件讲义

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。