Oracle 之创建和管理表
常见的数据库对象:
对象 | 描述 |
表 | 基本的数据存储集合,由行和列组成 |
视图 | 重表中抽出的逻辑上相关的数据集合 |
序列 | 提供有规律的数据 |
索引 | 提高查询的效率 |
同义词 | 给对象起别名 |
表名和列名的定义规则:
必须以字母开头
必须在1-30个字符之间
必须只能包含A-Z ,a-z, 0-9, _ ,$ ,#
必须不能和用户顶一顶额其他对象重名
必须不不能是oracle的保留字;
创建表的权限:
--create table 权限
--存储空间
基本语法:
create table xxx(name varchar(10),age number(2));
常用的数据类型:
数据类型 | 描述 |
varchar2(size) | 可变长字符数据 |
char(size) | 定长的字符数据 |
number(p,s) | 数据类型,p表示数字的位数,s表示小数点后的位数 |
date | 日期类型 |
long | 可变长字符数据,最大可达2g |
clob | 字符数据,最大可达4g |
raw(long raw) | 原始的二进制数据 |
blob | 二进制数据,最大可达4g |
bfile | 存储外部文件的二进制数据,最大可达4g |
rowid | 行地址 |
子查询创建表
使用as subquery 选项,将创建表和插入数据结合起来;
这种方式可以从已知的表中进行获取数据,然后创建新的表;
例如:表的复制
create table emp1 as select * from employees;
create table emp2 as select * from employees where 1=2; 条件是假的,所以创建的emp2 是空表;
ALTER TABLE 语句
--追加新的列
新列在表的最后一个;
alter table tableName add (job_id varchar(10));
--修改现有的列
可以修改列的数据类型,尺寸,默认值
对默认值的修改只影响今后对表的修改;
alter table tableName modify (last_name varchar(20));
--为新追加的列定义默认值
alter table tableName modify(salary number(9,2) default 1000);
--删除一个列
使用drop column 子句删除不在需要的列
alter table tableName drop column job_id;
--重命名表的一个列名;
使用RENAME COLUMN ...to 子句重命名一个列
alter table tableName rename column job_id to id;
删除表
数据和结构都会被删除;
所有正在运行的相关事务被提交
素有相关索引被删除
drop table 语句不能回滚
drop table tableName;
清空表
--truncate table 语句
删除表中的所有的数据,释放表的存储空间;
truncate table tableName;
--不能回滚;
可以使用delete语句删除数据,可以回滚;
改变对象的名称
执行rename语句改变表,视图,序列,同义词的名称
rename dept to hhah_dept;
必须是对象的拥有者;