Oracle 创建和处理表

Oracle 创建和处理表

常见的数据库对象:

对象描述
基本的数据存储集合,由行和列组成
视图从表中抽出的逻辑上相关的数据集合
序列提供有规律的数值
索引提高查询的效率

Oracle 数据库中的表:

  1. 用户定义的表:
    SELECT * FROM user_tables; // 查看用户创建的表
  2. 数据字典:
    Oracle Server 自动创建的一组表,包含数据库信息
	//查看用户定义的表:
	SELECT table_name  FROM	 user_tables ;
	//查看用户定义的各种数据库对象:
	SELECT DISTINCT object_type FROM  user_objects ;
	//查看用户定义的表, 视图, 同义词和序列:
	SELECT	*  FROM	  user_catalog ;

命名规则:

  • 必须以字母开头
  • 必须在 1–30 个字符之间
  • 必须只能包含 A–Z, a–z, 0–9, _, $, 和 #
  • 必须不能和用户定义的其他对象重名
  • 必须不能是Oracle 的保留字

CREATE TABLE 语句:
1- 建表必须具备:
CREATE TABLE权限
存储空间
2- 建表语法:
CREATE TABLE [schema.]table (column datatype [DEFAULT expr][, …]);
3- 建表语句必须指定:
表名
列名, 数据类型, 尺寸

4- 数据类型:

数据类型描述
VARCHAR2(size)可变长字符数据
CHAR(size)定长字符数据
NUMBER(p,s)可变长数值数据
DATE日期型数据
LONG可变长字符数据,最大可达到2G
CLOB字符数据 ,最大可达到4G
RAW (LONG RAW)原始的二进制数据
BLOB二进制数据,最大可达到4G
BFILE存储外部文件的二进制数据,最大可达到4G
ROWID行地址

使用子查询创建表:

   create table my_emp
   as 
   select last_name name,employee_id id,hire_date 
   from employees; 

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

DESC my_employee; //显示表结构

ALTER TABLE 语句:

  • 追加新的列
  • 修改现有的列
  • 为新追加的列定义默认值
  • 删除一个列
  • 重命名表的一个列名
//追加一个新列
ALTER TABLE my_employee
ADD	(job_id VARCHAR2(9));
新列是表中的最后一列

//修改一个列
ALTER TABLE	my_employee
MODIFY (last_name VARCHAR2(30));

ALTER TABLE  my_employee
MODIFY (last_name VARCHAR2(30) default 'abc')
对默认值的修改只影响今后对表的修改

//重命名一个列
ALTER TABLE  my_employee
RENAME COLUMN  job_id TO id; 

//删除一个列
ALTER TABLE  my_employee
DROP COLUMN  id;

删除表:

DROP TABLE my_employee;

  • 数据和结构都被删除
  • 所有正在运行的相关事务被提交
  • 所有相关索引被删除
  • DROP TABLE 语句不能回滚

清空表:
TRUNCATE TABLE 语句:

TRUNCATE TABLE my_employee;

  • 删除表中所有的数据
  • 释放表的存储空间

TRUNCATE语句不能回滚
可以使用 DELETE 语句删除数据,可以回滚

改变对象的名称:

执行RENAME语句改变表, 视图, 序列, 或同义词的名称
RENAME my_employee TO new_employee;
必须是对象的拥有者

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT界的希望

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值