常见的数据库对象

Oracle 数据库中的表

用户定义的表:

  • 用户自己创建并维护的一组表
  • 包含了用户所需的信息
  • 如:SELECT * FROM user_tables;查看用户创建的表

数据字典:

  • 由 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 语句

必须具备:

  • CREATE TABLE权限
  • 存储空间
CREATE TABLE [schema.]table
(column datatype [DEFAULT expr][, ...]);

必须指定:

  • 表名
  • 列名, 数据类型, 尺寸

创建表

语法

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

数据类型

使用子查询创建表

  • 使用 AS subquery 选项,将创建表和插入数据结合起来
  • 指定的列和子查询中的列要一一对应
  • 通过列名和默认值定义列
CREATE TABLE table
[(column, column...)]
AS subquery;

复制现有的表:

create table emp1 as select * from employees;
create table emp2 as select * from employees where 1=2;

注:创建的emp2是空表。

使用子查询创建表举例

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
MODIFY (column datatype [DEFAULT expr]
[, column datatype]...);
ALTER TABLE table
DROP COLUMN column_name;
ALTER TABLE table_name RENAME COLUMM old_column_name
TO new_column_name

追加一个新列

  • 使用 ADD 子句追加一个新列
  • 新列是表中的最后一列
ALTER TABLE dept ADD (
job_id VARCHAR2(9)
);

修改一个列

  • 可以修改列的数据类型, 尺寸和默认值
  • 对默认值的修改只影响今后对表的修改
ALTER TABLE dept80 MODIFY (
last_name VARCHAR2(30)
);
ALTER TABLE dept80 MODIFY (
salary NUMBER(9,2) DEFAULT 1000
);

删除一个列

  • 使用 DROP COLUMN 子句删除不再需要的列.
ALTER TABLE  dept80
DROP COLUMN job_id;

重命名一个列

  • 使用 RENAME COLUMN [table_name] TO子句重命名列
ALTER TABLE  dept80
RENAME COLUMN job_id TO id;

删除表

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

清空表
TRUNCATE TABLE 语句:

  • 删除表中所有的数据
  • 释放表的存储空间
TRUNCATE TABLE detail_dept;
  • TRUNCATE语句不能回滚
  • 可以使用 DELETE 语句删除数据,可以回滚

对比:

  delete from emp2;
select * from emp2;
rollback;
select * from emp2;

改变对象的名称

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

Oracle系列十 创建和管理表的更多相关文章

  1. Oracle 11g之创建和管理表练习

    创建表: SQL> create table name (empno number(4), ename VARCHAR2(10)); 查看表结构: desc name; SQL> desc ...

  2. Oracle02——oracle分页、子查询、集合运算、处理数据、创建和管理表和其他数据库对象

    作者: kent鹏 转载请注明出处: http://www.cnblogs.com/xieyupeng/p/7289451.html --oracle分页(Pageing Query) select ...

  3. Oracle——创建和管理表

    一.常见的数据库对象 对象 描述 表 基本的数据存储集合,由行和列组成 视图 从表中抽出的逻辑上相关的数据集合 序列 提供有规律的数值 索引 提高查询的效率 同以词 给对象起别名 二.Oracle 数 ...

  4. Oracle_创建和管理表

    创建和管理表 常见的数据库对象 Oracle 数据库中的表 查询数据字典 命名规则 CREATE TABLE 语句 数据类型 使用子查询创建表 ALTER TABLE 语句 删除表 清空表 改变对象的 ...

  5. DML语句、创建和管理表

    insert语句基本语法: insert into table(column) values(values); insert into dept (deptno,dname,loc) values(5 ...

  6. oracle中用SQL语句创建和管理表

    表名和列名的命名规则: 必须以字母开头 必须在1-30个字符之间 只能包含A-Z,a-z,0-9,_,$,# 不能与用户定义的其它对象重名 不能使用ORACLE的保留字 创建前具备的条件: CREAT ...

  7. 创建和管理表【weber出品必属精品】

    创建表 必须有 : 1. CREATE TABLE 的权限 SQL> conn /as sysdba 已连接. SQL> create user test default tablespa ...

  8. oracle 10g 学习之创建和管理表(7)

    目标 通过本章学习,您将可以: l  描述主要的数据库对象. l  创建表. l  描述各种数据类型. l  修改表的定义. l  删除,重命名和清空表. 常见的数据库对象 表.视图.序列.索引.同义 ...

  9. Oracle SQL Lesson (10) - 使用DDL语句创建和管理表

    数据库对象TableViewSequenceIndexSynonym 对象名称最长30个字符,不能与当前用户下其他对象重名.create table "select" as sel ...

随机推荐

  1. MySQL Index--BNL/ICP/MRR/BKA

    MySQL关联查询算法: BNL(Block Nested-Loop) ICP(Index Condition Pushdown) MRR(Multi-Range Read) BKA(Batched ...

  2. App抓包代理设置

    1.设置Fiddler 打开Fiddler,Tools  -->  Fiddler Options  -->  HTPS (配置完后记得要重启Fiddler) 选中"Decrpt ...

  3. 19.centos7基础学习与积累-005-命令总结01

    从头开始积累centos7系统运用 大牛博客:https://blog.51cto.com/yangrong/p5 1.查看命令帮助的方法: --help 适用于一般命令,非内置命令 man  适用于 ...

  4. web页面死链测试方法

    一.概述 > 来自百度百科释义 死链:指服务器的地址已经改变了.无法找到当前地址位置,包括协议死链和内容死链两种形式.死链出现的原因有网站服务器设置错误:某文件夹名称修改,路径错误链接变成死链等 ...

  5. Linux TTY介绍

    1. TTY介绍 TTY(TeleType)指Linux中的一类终端(Terminal)设备, 是一种字符设备 在Linux中, tty可分为如下几类- 串行端口终端(serial port term ...

  6. 【Selenium-WebDriver实战篇】java测试使用HttpClient debug日志关闭

    在上一篇设置完Tess4J之后,引用jar包之前,我的日志体系一直是只出现info级别的,但是引用之后出现很多httpClient的请求. 于是网上调查了下,可以通过代码实现,就在入口程序增加该部分代 ...

  7. websocket简单样例

    服务端 var server = require('ws').Server; }); serv.on('connection',function(socket){ socket.send('hello ...

  8. 日期对象|Date构造函数|

    var date = new Date(); console.log(date); //Date {Wed Dec 10 2014 15:59:24 GMT+0800} date.getDay() d ...

  9. 解决最新版fitnesse无法运行测试用例的问题

    用fitnesse-standalone.jar这个jar包时 运行测试用例会报错,显示IOException:can not run program:”c:\program files\java\j ...

  10. Support Vector Machines

    支持向量机SVM. 简介 SVM核函数包括线性核函数.多项式核函数.径向基核函数.高斯核函数.幂指数核函数.拉普拉斯核函数.ANOVA核函数.二次有理核函数.多元二次核函数.逆多元二次核函数以及Sig ...