Oracle常见的数据库对象

- 表 基本的数据存储集合,行与列组成

- 视图 抽取的逻辑集合

- 序列 提供规律性的数值

- 索引 提高查询效率

- 同义词 对象别名


TABLE 表

用户定义的表:

- 用户自己创建

- 包含了用户所需的信息

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)
);

查看表的结构

DESCRIBE dept

使用子查询创建表

使用 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 语句追加, 修改, 或删除列的语法.

语法公式:

ADD添加

ALTER TABLE table
ADD (column datatype [DEFAULT expr]
[, column datatype]...);

MODIFY修改

ALTER TABLE table
MODIFY (column datatype [DEFAULT expr]
[, column datatype]...);

DROP删除

ALTER TABLE table
DROP COLUMN column_name;

RENAME重命名

ALTER TABLE table_name RENAME COLUMM old_column_name
TO new_column_name

案例:

新列是表中的最后一列

ALTER TABLE dept80
ADD (job_id VARCHAR2(9));
Table altered.

修改列的数据类型, 尺寸和默认值

ALTER TABLE    dept80
MODIFY (last_name VARCHAR2(30));
Table altered.

对默认值的修改只影响今后对表的修改【即不影响原有的记录】

ALTER TABLE    dept80
MODIFY (salary number(9,2) default 1000);
Table altered.

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

ALTER TABLE  dept80
DROP COLUMN job_id;
Table altered.

表的删除和清空

删除表

- 数据和结构都被删除

- 所有正在运行的相关事务被提交

- 所有相关索引被删除

- DROP TABLE 语句不能回滚

DROP TABLE dept80;

清空表

- 删除表中所有的数据

- 释放表的存储空间

- TRUNCATE语句不能回滚

【可以使用 DELETE 语句删除数据,可以回滚】

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

改变对象的名称

执行RENAME语句改变表, 视图, 序列, 或同义词的名称

RENAME dept TO detail_dept;

【必须是对象的拥有者才能改变】


CRAETE TABLE

TRUNCATE TABLE

ALTER TABLE

REANME...TO

DROP TABLE

上述操作完以后,自动commit;
所以,rollback对其操作,没有效果

创建表

直接创建

   create table emp1(
name varchar2(20),
salary number(8,2)default 1000,
id number(4),
hire_date date
);

子查询创建

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

子查询创建2

create table emp2
as
select last_name name,employee_id id,hire_date
from employees
where department_id = 80;/where 1=2;

修改表

1)增加新的列

    alter table emp1
add(birthday date)

2)修改现有的列

    alter table emp1
modify(name varchar2(25) default 'abc')

3)重命名现有的列

    alter table emp1
rename column salary to sal;

4)删除现有的列

    alter table emp1
drop column birthday;

清空表中的数据(与delete from table_name区分开)

 truncate table emp2;

重命名表

   rename emp2 to emp3;

删除表

   drop table emp3;

【OracleDB】 09 创建和管理表的更多相关文章

  1. Oracle_创建和管理表

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

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

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

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

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

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

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

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

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

  6. Oracle——创建和管理表

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

  7. Oracle系列十 创建和管理表

    常见的数据库对象 Oracle 数据库中的表 用户定义的表: 用户自己创建并维护的一组表 包含了用户所需的信息 如:SELECT * FROM user_tables;查看用户创建的表 数据字典: 由 ...

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

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

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

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

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

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

随机推荐

  1. vue导航固定 吸顶效果

    吸顶效果 如何得到滚动条滚动的距离,document.documentElement.scrollTop 通过onscroll事件来完成滚动事件监听,达到吸顶值后,进行样式更换

  2. 对pta的总结_1

    前言 这三次pta难度在不断上升的同时,要求我们线上慕课+自主学习来了解更多的java中的各种方法,如:正则表达式 List Map等.与此同时要求我们展开尝试并熟练类的构造,类的引用,链表的基本运用 ...

  3. 别想宰我,怎么查看云厂商是否超卖?详解 cpu steal time

    据说有些云厂商会超卖,宿主有 96 个核心,结果卖出去 100 多个 vCPU,如果这些虚机负载都不高,大家相安无事,如果这些虚机同时运行一些高负载的任务,相互之间就会抢占 CPU,对应用程序有较大影 ...

  4. Feign的客户端注解@EnableFeignClients,解决No qualifying bean of type 'xx.xx.类' available注入报错

    //如果使用Feign的客户端,请放开下列注释@EnableFeignClientsNo qualifying bean of type 'xx.xx.类' available //需要添加扫描的路径 ...

  5. golang 所有关键字的列表及释义归类

    golang 所有关键字的列表及释义归类,截至1.18版本. [控制结构] if  : 条件语句,基于布尔表达式的值决定是否执行特定的代码块. else. else if     : 用在 if 语句 ...

  6. uniapp windows 上架 apple store

    香蕉云 蒲公英 ios上架助手iOS Development 开发!先用上架助手在certificates里面生成一个p12文件在profiles里面生成mobileprovision文件就欧克了 需 ...

  7. 开源一个反sql注入的asp.net core中间件

    现在公安有一个专门负责信息安全的部门,前几天公司就收到了一个整改通知,防sql注入的整改. 我们公司开始对网站进行了简单的测试,普通的sql都能检测出来. 但还是被发了整改通知,肯定有些sql注入的方 ...

  8. 获取ImageView的触摸点所对应的UIImage的坐标

    获取ImageView的触摸点所对应的UIImage的坐标 功能描述 实现前分析 注意事项 代码 求打赏 功能描述 在imageview上触摸图片,求对应UIImage的触摸点. 实现前分析 从ima ...

  9. python重拾第十天-协程、异步IO

    本节内容 Gevent协程 Select\Poll\Epoll异步IO与事件驱动 引子 到目前为止,我们已经学了网络并发编程的2个套路, 多进程,多线程,这哥俩的优势和劣势都非常的明显,我们一起来回顾 ...

  10. QT学习:03 信号与槽

    --- title: framework-cpp-qt-03-信号与槽 EntryName: framework-cpp-qt-03-signal-slot date: 2020-04-09 13:5 ...