oracle创建表

Oracle对表的基本操作

送分小仙女□ 提交于 2020-04-06 08:19:51
表名应该以字母开头,可以在表名中包含数字,下划线,#和$等。 一、创建表: 第一种:直接创建 create table 表名 ( field1 type[(size)] [index1], field2 type[(size)] [index2], ......, [[multifieldindex],...] ) 第二种:从其他表中创建表 create table 表名 as select语句.但是这个select语句如果涉及到long数据类型,就不行了。 创建表时,把较小的不为空的字段放在前面。可以给字段加上约束条件。 添加列 alter table 表名 add 列定义 更改列 alter table 表名 modify (列名 新属性, ......); 删除列 alter table 表名 drop column 列名s [ cascade constraint ] alter table 表名 drop unused colunm 未用列 alter table 表名 set unused column 列名 [ cascade constraint ] 更改表名 rename 原来表名 to 新表名 删除表 drop table 表名 [ cascade constraints ] 删除表后,表上的索引,触发器,权限,完整性约束等都会被删除。 二、表的约束条件 1.

Oracle单表备份三种方案

最后都变了- 提交于 2020-03-31 14:49:23
备份方案一: 1. 备份 create table [备份名] as select * from [表名]; 2. 恢复 truncate table org_group; insert into org_group select * from [备份名] ; 3. 说明 此种情况适用于,同一个数据库,需要备份某张表。 备份方案二: 1. 备份 oracle用户终端执行: exp [用户名]/[密码] tables=[表一],[表二] file=/home/oracle/table.dmp 2. 恢复 oracle用户终端执行: imp [用户名]/[密码] grants=y commit=y full=y ignore=y file=/home/oracle/table.dmp 备份方案三: 1. 备份 登录sqlplus: sqlplus / as sysdba 创建directory: create directory dpdata as '/home/oracle/'; 目录创建以后,就可以把读写权限授予特定用户: grant read, write on directory dpdata to [用户名]; oracle用户终端执行: expdp [用户名]/[密码] tables=[表一],[表二] directory=dpdata dumpfile=table.dmp

oracle表按日期分区创建、新增、修改、删除

情到浓时终转凉″ 提交于 2020-03-19 00:34:54
Oracle11G分区表   当表中的数据量不断增大,查询数据的速度就会变慢,应用程序的性能就会下降,这时就应该考虑对表进行分区。表进行分区后,逻辑上表仍然是一张完整的表,只是将表中的数据在物理上存放到多个表空间(物理文件上),这样查询数据时,不至于每次都扫描整张表。 作用:   Oracle的表分区功能通过改善可管理性、性能和可用性,从而为各式应用程序带来了极大的好处。通常,分区可以使某些查询以及维护操作的性能大大提高。此外,分区还可以极大简化常见的管理任务,分区是构建千兆字节数据系统或超高可用性系统的关键工具。   分区功能能够将表、索引或索引组织表进一步细分为段,这些数据库对象的段叫做分区。每个分区有自己的名称,还可以选择自己的存储特性。从数据库管理员的角度来看,一个分区后的对象具有多个段,这些段既可进行集体管理,也可单独管理,这就使数据库管理员在管理分区后的对象时有相当大的灵活性。但是,从应用程序的角度来看,分区后的表与非分区表完全相同,使用 SQL DML 命令访问分区后的表时,无需任何修改。 什么时候用:   1、表的大小超过2GB。   2、表中包含历史数据,新的数据被增加都新的分区中。 优点:   1、改善查询性能:对分区对象的查询可以仅搜索自己关心的分区,提高检索速度。   2、增强可用性:如果表的某个分区出现故障,表在其他分区的数据仍然可用;   3、维护方便

Oracle数据库之创建表结构

对着背影说爱祢 提交于 2020-03-14 04:15:27
Oracle数据库之创建表结构 主键与外键 主键:关系型数据库中的一条记录中有若干个属性,若其中的某一个属性组(可以是一个属性,也可以是多个)能唯一标识一条记录,那么该属性组就是主键。 外键:关系型数据库表中的一列或者某几列的组合,它的值与另外一张表的某一列或者某几列相匹配,且为另一张表的主键(即这张表的某一列或某几列是另外一张表的主键,称这一列或几列为另外一张表的外键)。 注意: 一张表主键只能有一个,可以有多个外键以及唯一索引 Oracle数据库共有5个约束:主键、外键、非空、唯一、条件 非空:这个列的值不能为空(NOT NULL) 唯一:这个列的值在表中是唯一存在的,不能重复,但可以为空值(NULL) 条件:可以对列的值设定在某个范围内,如人的年龄就不能为负数等。 主键和唯一约束的区别:主键是列的值为表中的唯一标识,不能为空值(NULL),而唯一约束是列的值在表中唯一存在,可以为空值(NULL)。 表的创建 语法结构: CREATE TABLE [schema.]table_name (column datatype [constraint-clause][, column datatype [constraint-clause]] … ) [TABLESPACE tablespace] [PCTFREE integer] [PCTUSED integer]

Oracle误删除表数据后的恢复具体解释

流过昼夜 提交于 2020-03-12 04:51:51
Oracle误删除表数据后的恢复具体解释 測试环境: SYSTEM:IBM AIX 5L Oracle Version :10gR2 1. undo_retention參数的查询 与 改动 使 用 show parameter undo 命令查看当 前 的数据库參数 undo_retention 设置。 显演示样例如以下: SQL> show parameter undo NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ undo_management string AUTO undo_retention integer 900 undo_tablespace string UNDOTBS2 undo_retention(保持力), 900 单位是 秒 , 即 15分钟 。 改动默认的undo_retention參数设置: SQL> ALTER SYSTEM SET undo_retention=10800 SCOPE=BOTH; System altered. SQL> show parameter undo NAME TYPE VALUE ------------------------------------ ----------- -

Oracle误删除表数据后的恢复具体解释

梦想的初衷 提交于 2020-03-05 17:24:57
Oracle误删除表数据后的恢复具体解释 測试环境: SYSTEM:IBM AIX 5L Oracle Version :10gR2 1. undo_retention參数的查询 与 改动 使 用 show parameter undo 命令查看当 前 的数据库參数 undo_retention 设置。 显演示样例如以下: SQL> show parameter undo NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ undo_management string AUTO undo_retention integer 900 undo_tablespace string UNDOTBS2 undo_retention(保持力), 900 单位是 秒 , 即 15分钟 。 改动默认的undo_retention參数设置: SQL> ALTER SYSTEM SET undo_retention=10800 SCOPE=BOTH; System altered. SQL> show parameter undo NAME TYPE VALUE ------------------------------------ ----------- -

Oracle 存储过程创建表

耗尽温柔 提交于 2020-02-27 04:39:46
用存储过程创建数据表: 创建时注意必须添加authid current_user ,如果创建的表已存在,存储过程继续执行,但如不不加此关键语句,存储过程将出现异常, 这个语句相当于赋权限。 创建语句如下: create or replace procedure sp_create_mnl(i_id varchar2) authid current_user as /********************************* 名称:sp_create_mnl 功能描述:创建模拟量历史数据存储表 修订记录: 版本号 编辑时间 编辑人 修改描述 1.0.0 2012-9-20 wylaok 1.创建此存储过程 1.0.1 2012-9-21 wylaok 2.修改表名称及变量名称,增加必要注释 入参出参描述: i_id 测点编号 **********************************/ v_tablename varchar2(30);--表名 v_flag number(10,0); v_sqlfalg varchar(200); begin v_flag:=0; v_tablename:=CONCAT('MNL', UPPER(i_id)); v_sqlfalg:='select count(*) from user_TABLES where table

oracle表的管理和单行函数以及多行函数

只愿长相守 提交于 2020-02-21 18:43:46
1.创建表空间   表空间? ORACLE数据库的逻辑单元。 数据库---表空间 一个表空间可以与多个数据文件(物理结构)关联   一个数据库下可以建立多个表空间,一个表空间可以建立多个用户、一个用户下可以建立多个表。 create tablespace fan datafile 'D:\oracle\tablespace\fan.dbf' size 100m autoextend on next 10m   fan 为表空间名称   datafile 指定表空间对应的数据文件   size 定义的是表空间的初始大小   autoextend on 自动增长 ,当表空间存储都占满时,自动增长   next 后指定的是一次自动增长的大小。 -- 删除表空间 drop tablespace fan; 2.用户   创建用户: -- 创建用户 create user zhangsan identified by aaa default tablespace fan     identified by 后边是用户的密码     default tablespace 后边是表空间名称   oracle 数据库与其它数据库产品的区别在于,表和其它的数据库对象都是存储在用户下的。   用户赋权限:     新创建的用户没有任何权限,登陆后会提示          Oracle

oracle——修改表结构&约束

社会主义新天地 提交于 2020-02-15 09:43:46
修改表结构 1.创建表 2.#为member表增加字段 如果增加的数据列没有默认值,则所有已有的数据的列的内容都是null, 而如果增加的列指定了DEFAULT默认值的话,则所有已有的数据列都是设置的默认值。 3.#将name字段的默认值定义为“xixi” 4.#修改字段名(无数据) ALTER TABLE 表名称 RENAME COLUMN 原列名称 TO 新列名称 5.#删除表中字段的默认值 6.删除列 alter table member drop column age ; 约束 一.非空约束 当数据表中的某个字段上的内容不希望设置为null的话,则可以使用NOT NULL进行指定。 1.#定义一张数据表 2插入两组数据; #正确的数据: #错误的数据: 二.唯一约束/UNIQUE/UK 唯一约束指的是某一个列上的数据是不允许重复的,如邮件地址 1.#定义一张数据表 2. #插入正确的数据: #插入错误的数据: 三.主键约束/PRIMARY KEY/PK 主键约束=非空约束+唯一约束。 1.#建立主键约束 2.#插入正确数据 3.#插入重复数据 == 出现以下错误提示,可以看到错误提示很明显。 ORA-00001: unique constraint (SCOTT.PK_MID) violated== 四.检查约束/CHECK/C K 检查约束指为表中的数据增加一些过滤条件

重命名表

五迷三道 提交于 2020-02-03 12:22:21
重命名表 DDL属于数据对象定义语言,主要的功能是创建对象,但是这些对象被谁记录着呢? 当用户进行对象操作的时候,Oracle中提供有一个数据字典,用于记录所有的对象状态。每当用户创建表之后,那么会自动在数据字典里面增加一行信息,表示表创建了,表删除了也会在数据字典里面执行删除操作,但是,整个过程是由Oracle自己维护的,用户不能够直接操作数据字典的CRUD.只能够通过命令完成。 ​ 数据字典用户常用主要分为三类: USER_*:用户的数据字典信息; DBA_*:管理员的数据字典 ALL_*:所有人都可以看的数据字典。 之前使用过这样的语句 SELECT * FROM tab; 严格来讲此时可以使用数据字典完成,既然是用户的查询,那么可以使用“user_tables” SELECT * FROM user_tables; 这个数据字典之中记录了保存数据的存储情况、占用的资源情况。 实际上表的重命名就属于更新数据字典的过程 语法:RENAME 旧的表名称 TO 新的表名称 范例:将member表更名为person表 SELECT * FROM member; 来源: CSDN 作者: 东京银座的妈妈桑 链接: https://blog.csdn.net/zby2018/article/details/104150766