Oracle系列十 创建和管理表
常见的数据库对象
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系列十 创建和管理表的更多相关文章
- Oracle 11g之创建和管理表练习
创建表: SQL> create table name (empno number(4), ename VARCHAR2(10)); 查看表结构: desc name; SQL> desc ...
- Oracle02——oracle分页、子查询、集合运算、处理数据、创建和管理表和其他数据库对象
作者: kent鹏 转载请注明出处: http://www.cnblogs.com/xieyupeng/p/7289451.html --oracle分页(Pageing Query) select ...
- Oracle——创建和管理表
一.常见的数据库对象 对象 描述 表 基本的数据存储集合,由行和列组成 视图 从表中抽出的逻辑上相关的数据集合 序列 提供有规律的数值 索引 提高查询的效率 同以词 给对象起别名 二.Oracle 数 ...
- Oracle_创建和管理表
创建和管理表 常见的数据库对象 Oracle 数据库中的表 查询数据字典 命名规则 CREATE TABLE 语句 数据类型 使用子查询创建表 ALTER TABLE 语句 删除表 清空表 改变对象的 ...
- DML语句、创建和管理表
insert语句基本语法: insert into table(column) values(values); insert into dept (deptno,dname,loc) values(5 ...
- oracle中用SQL语句创建和管理表
表名和列名的命名规则: 必须以字母开头 必须在1-30个字符之间 只能包含A-Z,a-z,0-9,_,$,# 不能与用户定义的其它对象重名 不能使用ORACLE的保留字 创建前具备的条件: CREAT ...
- 创建和管理表【weber出品必属精品】
创建表 必须有 : 1. CREATE TABLE 的权限 SQL> conn /as sysdba 已连接. SQL> create user test default tablespa ...
- oracle 10g 学习之创建和管理表(7)
目标 通过本章学习,您将可以: l 描述主要的数据库对象. l 创建表. l 描述各种数据类型. l 修改表的定义. l 删除,重命名和清空表. 常见的数据库对象 表.视图.序列.索引.同义 ...
- Oracle SQL Lesson (10) - 使用DDL语句创建和管理表
数据库对象TableViewSequenceIndexSynonym 对象名称最长30个字符,不能与当前用户下其他对象重名.create table "select" as sel ...
随机推荐
- Linux chown命令详解使用格式和方法
指令名称 : chown 使用权限 : root(一般来说,这个指令只有是由系统管理者(root)所使用,一般使用者没有权限可以改变别人的文件拥有者,也没有权限可以自己的文件拥有者改设为别人.只有系统 ...
- 电脑 DNS纪要
电脑 DNS说明 1.电脑的DNS必须设置成114.114.114.114才能上网? 电脑的DNS不是必须设置成114.114.114.114才能上网,而只是DNS设置为这个地址刚好能够上网.设置合适 ...
- rancheros在vm主机部署
问题描述: 容器化,越来越重要.在云服务中很大比例的服务都跑在容器中,今天介绍rancheros基于容器的os. 特点: 启动快,比较小系统服务也是基于容器化 使用最新的docker release ...
- 编译安装 keepalived-2.0.16.tar.gz
一.下载安装包 wget https://www.keepalived.org/software/keepalived-2.0.16.tar.gz 安装相关依赖 把所有的rpm包放在一个目录下. rp ...
- centos 宝塔 使用命令行快速导入数据库sql
先将sql文件上传到服务器,例如上传到www文件夹 然后打开命令行工具 输入 mysql -u 数据库用户名 -p 然后复制密码进去 然后输入 use 数据库名 回车 然后输入 source /www ...
- QtCreator设置野火iMx6开发板提供的qt交叉编译套件
在Ubuntu18 QtCreator上添加野火iMx6开发板的Qt交叉编译环境PC:Ubuntu18.04QtCreator: 4.8.2交叉编译环境:野火提供的 5-编译工具链->qt交叉编 ...
- python函数调用时参数传递方式
python函数调用时参数传递方式 C/C++参数传递方式 对于C程序员来说,我们都知道C在函数调用时,采用的是值传递,即形参和实参分配不同的内存地址,在调用时将实参的值传给实参,在这种情况下,在函数 ...
- Kotlin反射操纵构造方法与伴生对象
反射操纵伴生对象: 先定义一个伴生对象: 然后咱们通过反射来调用一下它: 比较简单. 反射操纵构造方法: 先来定义一个类: 然后咱们通过反射来调用一个其中的方法,之前当然就得先来调用构造方法,由于我们 ...
- SSH——ssh_exchange_identification: read: Connection reset by peer
前言 ssh远程连接出错 步骤 查看ssh的详细信息 [root@pre-nginx02 ~]# ssh -v 192.168.1.164 OpenSSH_6.6.1, OpenSSL 1.0.1e- ...
- HDU - 5513 Efficient Tree(轮廓线DP)
前言 最近学了基于连通性的状压DP,也就是插头DP,写了几道题,发现这DP实质上就是状压+分类讨论,轮廓线什么的也特别的神奇.下面这题把我WA到死- HDU-5531 Efficient Tree 给 ...