常见的数据库对象

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. Linux SSH 服务

    本篇写一些关于Linux网络中SSH服务的相关知识. 测试环境 名称 IP地址 host01 192.168.28.128 host02 192.168.28.129 host03 192.168.2 ...

  2. H3C IEEE 802.11无线局域网工作组

  3. 【HICP Gauss】数据库 数据库管理(数据库对象 表空间 索引 序列 分区 视图)-8

    什么是数据库对象 数据库对象包括 表 索引 分区 视图 序列 同义词 数据库支持对象存储过程 自定义函数 触发器 表空间 高级包 表 数据库中的数据结构 存储数据以及描述数据间的关系 表由行和列组成 ...

  4. MySQL/MariaDB数据库的Galera高可用性集群实战

      MySQL/MariaDB数据库的Galera高可用性集群实战 作者:尹正杰  版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Galera Cluster概述 1>.什么是Gale ...

  5. 两个好的k8s周边项目,mark

    这段时间没有应用, 但应该过段时间就可以派上用场了. 1,像写shell脚本一样写一个operator. https://github.com/flant/shell-operator 2,多集群的k ...

  6. springboot,eclipse打包出错处理

    打jar包报错 [WARNING] The POM for org.apache.maven.plugins:maven-clean-plugin:jar:3.1.0 is invalid, tran ...

  7. Sql操作时间

    --. 当前系统日期.时间 -- ::27.277 --.时间操作 dateadd 在向指定日期加上一段时间的基础上,返回新的 datetime 值 dateadd(datepart,number,d ...

  8. CSE301 – Bio-Computation

    CSE301 – Bio-Computation Assessment 3Contribution to overall module assessment 10%Submission deadlin ...

  9. LeetCode(数据库)部门最高工资

    ), Salary int, DepartmentId int) )) Truncate table Employee ') ') ') ') Truncate table Department ', ...

  10. jupyter Notebook 设置密码

    由于服务器关闭了图形界面 所以在服务器上安装Jupyter Notebook 随后本机web访问,利用本机的显卡可以执行plt相关图形命令 本次介绍如何设置Jupyter Notebook的密码设定 ...