您的位置:首页 > 数据库 > Oracle

Oracle学习----创建和管理表

2012-09-04 23:08 369 查看
数据类型

字符型

char(<size>) 1..2000

varchar(<size>) 1..4000

varchar2(<size>) 1..4000

long 2G

数值型

number(<p>,<s>) 1..38

日期型

date

timestamp [with time zone]

二进制型

RAW(<N>) 1…2000

LONGRAW 2G

LOB类型

BLOB Binary Large Object 4G

CLOB Character Large Object 4G

BFILE Binary File 4G

使用DBMS_LOB包进行处理

CREATE TABLE语句

你必须拥有

— CREATE TABLE特权


存储空间


CREATE TABLE [schema.]table (column datatype [DEFAULT expr] [,…]);

你指定:


表名



列名,列数据类型和列的大小


命名规则

1)必须以字母开头
2)字符长度在1-30之间
3)只能包含A-Z,a-z,0-9,_,$和#
4)被同一个用户拥有的对象不能有重复的名字
5)不能是Oracle服务器保留字

创建表

CREATE TABLE dept (

deptno NUMBER(2),

dname VARCHAR2(14),

loc VARCHAR2(13)

);

数据类型

数据类型


描述


VARCHAR2(size)


可变长度字符数据 1..4000


CHAR(size)


固定长度字符数据 1..2000


NUMBER(p,s)


可变长度数字数据


DATE

日期和时间数值


LONG

可变长度字符数据,最大到2GB

CLOB

字符数据,最大到4GB

RAW and LONG RAW


原始二进制数

BLOB

二进制数,最大到4GB

BFILE

存储到外部文件中的二进制数;最大到4GB

ROWID

表示行在表中的唯一地址


DEFAULT选项

在一个插入操作之间为一列指定默认的值

…hire_date DATE DEFAULT SYSDATE,…

1)字符值,表达式或者SQL函数都是合法值

2)另外一列的名称或者伪列是非法值

3)默认的数据类型必须匹配列的数值类型


使用子查询语法创建一个表

综合CREATE TABLE语句和AS
subquery选项创建一个表并插入行


CREATE TABLE table [(column,column…)] AS subquery;

指定列的数字和子查询列的数量相匹配

使用列名和默认值定义列

使用子查询创建一个表

CREATE TABLE dept80

AS SELECT employee_id,last_name,salary*12 ANNSAL,hire_date

FROM employees

WHERE department_id = 80;

ALTER TABLE语句

使用ALTER TABLE语句用来

----增加新的一列

----修改已经存在的列

----为新列定义一个默认的值

----删除一列

ALTER TABLE语句

使用ALTER TABLE语句增加,修改或者删除行

ALTER TABLE table


ADD (column datatype [DEFAULT expr] [,column datatype]…);

ALTER TABLE table

NODIFY (column datatype [DEFAULT expr] [,column datatype]…);

ALTER TABLE table

DROP (column);

删除一张表

----表中的数据和结构会被删除

----任何未决的事务被提交

----所有的索引被删除

----你不能回滚DROPTABLE语句

DROP TABLE dept80;

改变对象的名字

要想改变表,视图,序列或者同义字的名称,你可以执行RENAME语句

RENAME dept TO detail_dept;

你必须是对象的拥有者

截断表


TRUNCATE TABLE语句


删除表中所有的行



释放被表占用的存储空间


TRUNCATE TABLE detail_dept;

你使用TRUNCATE时你不能回滚行删除

作为选择,你可以使用DELETE语句删除行

Oracle数据库中的表

用户表


由用户创建和维护的表的集合



包含用户信息


数据字典


由Oracle服务器创建和维护的表的集合



包含数据库信息


查询数据字典

查看用户拥有的表的名称

SELECT table_name FROM user_tables;

查看用户拥有的不同对象类型

SELECT DISTINCT object_type FROM user_objects;

查看用户拥有的表,视图,同义字和序列

SELECT * FROM user_catalog;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: