现在的位置: 首页 > 综合 > 正文

Oracle 11g 第九章知识点总结——创建和管理表

2013年10月15日 ⁄ 综合 ⁄ 共 4983字 ⁄ 字号 评论关闭

Oracle 11g 第九章知识点总结——创建和管理表


知识点预览

创建和管理表


创建和管理表

1.      常见的数据库对象

 

 

 


 

2.      命名规则

表名和列名:

a)        必须以字母开头

b)       必须在 1–30 个字符之间

c)        必须只能包含 A–Z, a–z, 0–9, _, $, 和 #

d)       必须不能和用户定义的其他对象重名

e)        必须不能是Oracle 的保留字


3.      CREATE TABLE 语句

a)        必须具备:

                                     i.             CREATE TABLE权限

                                   ii.             存储空间

 

CREATE TABLE[schema.]table

          (column datatype [DEFAULTexpr][, ...]);

 

b)       必须指定:

                                     i.             表名

                                   ii.             列名,数据类型,
尺寸


4.      引用其他用户的表

a)        其他用户定义的表不在当前用户的方案中

b)       应该使用用户名座位前缀,引用其他用户定义的对象


5.      DEFAULT 选项

a)        插入时为一个列指定默认值

 

... hire_dateDATE DEFAULT SYSDATE, ...

 

b)       字符串, 表达式, 或SQL 函数都是合法的

c)        其它列的列名和伪列是非法的

d)       默认值必须满足列的数据类型定义


6.      创建表

a)        语法

 

CREATE TABLEdept
       (deptno   NUMBER(2),
              dname    VARCHAR2(14),
              loc VARCHAR2(13));

Table created.

b)       确认

DESCRIBE dept


7.      Oracle 数据库中的表

a)        用户定义的表:

                                     i.             用户自己创建并维护的一组表

                                   ii.             包含了用户所需的信息

b)       数据字典:

                                     i.             由Oracle Server自动创建的一组表

                                   ii.             包含数据库信息


8.      查询数据字典

a)        查看用户定义的表.

 

SELECTtable_name
FROM     user_tables ;

b)       查看用户定义的各种数据库对象

 
SELECT DISTINCTobject_type
FROM      user_objects ;

c)        查看用户定义的表, 视图, 同义词和序列

 

SELECT *
FROM     user_catalog ;

9.      数据类型


 


 

10.  日期数据类型

a)        Oracle9i对日期的改进:

加入了新的日期型数据类型.

有效的存储新数据类型.

提高对时区和本地时区的支持.

b)       TIMESTAMP 数据类型是对 DATE 数据类型的扩展

c)        按DATE数据类型存放 年, 月, 日, 小时, 分钟, 秒 以及微秒甚至纳秒

d)       TIMESTAMP 数据类型的一般形式:

 

TIMESTAMP[(fractional_seconds_precision)]


 


11.  TIMESTAMP WITH TIME ZONE

a)        TIMESTAMP WITH TIME ZONE 是一个带有时区的 TIMESTAMP

b)       时区部分按照小时和分钟显示本地时区与UTC的时差

 

TIMESTAMP[(fractional_seconds_precision)]

WITH TIMEZONE

 

12.  TIMESTAMP WITH LOCAL TIME

a)        TIMESTAMP WITH LOCAL TIME ZONE 是一种带有本地时区的 TIMESTAMP

b)       数据库按照数据库的本地时区存放数据

c)        时区不显示在数据后面, Oracle 自动将数据转换为用户所在的时区

 

TIMESTAMP[(fractional_seconds_precision)]

WITH LOCALTIME ZONE

 

13.  INTERVAL YEAR TO MONTH 数据

 

INTERVAL YEAR TOMONTH 存放若干年和若干月的一个时间段。

 

INTERVAL YEAR[(year_precision)] TO MONTH

 

INTERVAL '123-2'YEAR(3) TO MONTH
Indicates aninterval of 123 years, 2 months.
 
INTERVAL '123'YEAR(3)
Indicates aninterval of 123 years 0 months.
 
INTERVAL '300'MONTH(3)
Indicates aninterval of 300 months.
 
INTERVAL '123'YEAR
Returns anerror, because the default precision is 2,
and '123' has 3digits.

14.  INTERVAL DAY TO SECOND 数据

 

INTERVAL DAY TO SECOND 存放若干天到若干秒的一个时间段

 

INTERVAL DAY [(day_precision)]

TO SECOND [(fractional_seconds_precision)]

 

 

INTERVAL '4 5:12:10.222' DAY TO SECOND(3)
Indicates 4 days, 5 hours, 12 minutes, 10 seconds,
and 222 thousandths of a second.INTERVAL '123' YEAR(3).
 
INTERVAL '7' DAY
Indicates 7 days.
 
INTERVAL '180' DAY(3)
Indicates 180 days.
 
INTERVAL '4 5:12:10.222' DAY TO SECOND(3)
Indicates 4 days, 5 hours, 12 minutes, 10 seconds,
and 222 thousandths of a second.
 
INTERVAL '4 5:12' DAY TO MINUTE
Indicates 4 days, 5 hours and 12 minutes.
 
INTERVAL '400 5' DAY(3) TO HOUR
Indicates 400 days 5 hours.
 
INTERVAL '11:12:10.2222222' HOUR TO SECOND(7)
indicates 11 hours, 12 minutes, and 10.2222222 seconds

.

15.  使用子查询创建表

a)        有时候用 AS subquery 选项,将创建表和插入数据结合起来

 

CREATE TABLE table

        [(column, column...)]

AS subquery;

 

b)       指定的列和子查询中的列要一一对应

c)        通过列名和默认值定义列

 

16.  使用子查询创建表举例

 

CREATE TABLE    dept80
  AS 
    SELECT  employee_id, last_name,
            salary*12 ANNSAL,
            hire_date
    FROM    employees
    WHERE   department_id = 80;

Table created.

 

DESCRIBE dept80


17.  ALTER TABLE 语句

 

使用 ALTER TABLE 语句可以:

追加新的列

修改现有的列

为新追加的列定义默认值

删除一个列


18.  ALTER TABLE 语句

 

使用 ALTER TABLE 语句追加, 修改, 或删除列的语法.

 

ALTER TABLE table

ADD          (column datatype [DEFAULTexpr]

          [, column datatype]...);

 

ALTER TABLE table

MODIFY    (columndatatype [DEFAULTexpr]

          [, column datatype]...);

ALTER TABLE table

DROP          (column);

 

19.  追加一个新列

 

使用 ADD 子句追加一个新列

 

ALTER TABLEdept80
ADD          (job_id VARCHAR2(9));

Table altered.

 

新列是表中的最后一列


20.  修改一个列

a)        可以修改列的数据类型, 尺寸, 和默认值

 

ALTER TABLE      dept80
MODIFY              (last_nameVARCHAR2(30));

Table altered.

 

b)       对默认值的修改只影响今后对表的修改


21.  删除一个列

 

使用 DROP COLUMN 子句删除不再需要的列.

ALTER TABLE  dept80
DROP COLUMN  job_id;

Table altered.


22.  SET UNUSED 选项

a)        使用 SET UNUSED 使一个或多个列被标记为不可用

b)       使用 DROP UNUSED COLUMNS 选项删除不可用的列

 

ALTER TABLE    table

SET   UNUSED  (column);

OR

ALTERTABLE  table

SET   UNUSED COLUMN column;

 

ALTER TABLE table

DROP  UNUSED COLUMNS;

 

 

23.  删除表

a)        数据和结构都被删除

b)       所有正在运行的相关事物被提交

c)        所有相关索引被删除

d)       DROP TABLE 语句不能回滚

 

DROP TABLE dept80;

Table dropped.


24.  改变对象的名称

a)        改变对象的名称

 

RENAME dept TOdetail_dept;

Table renamed.

b)       必须是对象的拥有者


25.  清空表

a)        TRUNCATE TABLE 语句:

                                     i.             删除表中所有的数据

                                   ii.             释放表的存储空间

 

 

TRUNCATE TABLE detail_dept;

Table truncated.

b)       TRUNCATE语句不能回滚

c)        可以使用 DELETE 语句删除数据


26.  表的注释

a)        使用COMMENT 语句给表或列添加注释

 

COMMENT ON TABLEemployees
IS 'EmployeeInformation';

Comment created.

b)       可以通过下列数据字典视图查看所添加的注释:

                                     i.             ALL_COL_COMMENTS

                                   ii.             USER_COL_COMMENTS

                                 iii.             ALL_TAB_COMMENTS

                                  iv.             USER_TAB_COMMENTS


27.  总结

 

 

 

 

抱歉!评论已关闭.