【OracleDB】 09 创建和管理表
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 创建和管理表的更多相关文章
- Oracle_创建和管理表
创建和管理表 常见的数据库对象 Oracle 数据库中的表 查询数据字典 命名规则 CREATE TABLE 语句 数据类型 使用子查询创建表 ALTER TABLE 语句 删除表 清空表 改变对象的 ...
- Oracle02——oracle分页、子查询、集合运算、处理数据、创建和管理表和其他数据库对象
作者: kent鹏 转载请注明出处: http://www.cnblogs.com/xieyupeng/p/7289451.html --oracle分页(Pageing Query) select ...
- 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——创建和管理表
一.常见的数据库对象 对象 描述 表 基本的数据存储集合,由行和列组成 视图 从表中抽出的逻辑上相关的数据集合 序列 提供有规律的数值 索引 提高查询的效率 同以词 给对象起别名 二.Oracle 数 ...
- Oracle系列十 创建和管理表
常见的数据库对象 Oracle 数据库中的表 用户定义的表: 用户自己创建并维护的一组表 包含了用户所需的信息 如:SELECT * FROM user_tables;查看用户创建的表 数据字典: 由 ...
- oracle 10g 学习之创建和管理表(7)
目标 通过本章学习,您将可以: l 描述主要的数据库对象. l 创建表. l 描述各种数据类型. l 修改表的定义. l 删除,重命名和清空表. 常见的数据库对象 表.视图.序列.索引.同义 ...
- Oracle 11g之创建和管理表练习
创建表: SQL> create table name (empno number(4), ename VARCHAR2(10)); 查看表结构: desc name; SQL> desc ...
- Oracle SQL Lesson (10) - 使用DDL语句创建和管理表
数据库对象TableViewSequenceIndexSynonym 对象名称最长30个字符,不能与当前用户下其他对象重名.create table "select" as sel ...
随机推荐
- js浮点数类型
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8 ...
- Nodejs 创建web服务 静态资源服务器 get数据获取 post数据获取
NodeJs是通过官方提供的http模块来创建 web服务器的模块.通过几行简单的代码,就能轻松的手写一个web服务,从而对外提供 web 服务. ² 创建web服务基本步骤 ①.导入http模块 c ...
- The solution of P3012
problem & blog 很明显是个 DP. 于是我们定义 \(dp_{i,j,k}\) 为末尾的字符的 ASCII 码为 \(i\),有 \(j\) 个大写字母,\(k\) 个小写字母. ...
- 铭瑄 USB 供电不足
铭瑄 USB 供电不足 可能是USB固件开了节能,节能状态和某些设备会不兼容,更新固件试试固件链接:链接:https://pan.baidu.com/s/1RxHEddYe6TWMDlMJ3PQB1Q ...
- 腾讯视频遇到“前设备播放4K可能引发卡顿等异常,建议降低清晰度”
腾讯视频遇到"前设备播放4K可能引发卡顿等异常,建议降低清晰度". 解决方法: 在菜单-设置-播放设置-勾选"开启硬件加速"-应用,然后退出腾讯视频,重新打开腾 ...
- vmware 和 hyper-v不兼容,此主机不支持64位客户机操作系统
在控制面板中关闭hyper-v功能后,仍然提示此主机不支持64位客户机操作系统. 解决方法: 需要在开始按钮 - 右键 -打开Windows PowerShell(管理员). 输入: bcdedit ...
- k8s数据持久化
前面的学习,我们已经基本完成了在k8s中部署一个web服务,运行pod.创建service.创建ingress对外提供域名的七层代理. 下一个环境就得去关注应用部署后的数据存储问题,容器化如何管理,k ...
- __int1024!
使用说明: 数据范围约为\(-2^{1024}\le N \le2^{1024}\),反映到十进制约为\(-10^{309}\le N \le10^{309}\),但不保证完全如此. 输入输出使用自带 ...
- svn服务端安装和使用
首先去官网下载安装包 点我下载 下载完了以后选择安装路径然后一直next就可以了 安装完了以后在开始菜单里面找到svn 打开 如何使用? 这里是创建代码管理的存储库 点击 repositories ...
- JSON文件存储
JSON 文件存储 JSON,全称为 JavaScript Object Notation, 也就是 JavaScript 对象标记,通过对象和数组的组合来表示数据,构造简洁但是结构化程度非常高,是一 ...