Oracle 经常使用的改动语句

一、表Table

測试表:MY_TEST_TABLE

-- Create table
create table MY_TEST_TABLE
(
  A VARCHAR2(30),
  B NUMBER(10) default 1,
  C DATE
)
tablespace BOSSWG_CFG
  pctfree 10
  initrans 1
  maxtrans 255
  storage
  (
    initial 64K
    minextents 1
    maxextents unlimited
  );
-- Add comments to the table
comment on table MY_TEST_TABLE
  is 'test';
-- Add comments to the columns
comment on column MY_TEST_TABLE.A
  is 'aaaa';
comment on column MY_TEST_TABLE.B
  is 'bbbb';
comment on column MY_TEST_TABLE.C
  is 'cccc';

0.添加字段

alter table MY_TEST_TABLE add D VARCHAR2(50);

-- Add comments to the columns

comment on column MY_TEST_TABLE.D

is ‘dddddd‘;

1. 改动表字段名

alter table MY_TEST_TABLE rename column A to D;  //将A字段名改成D

2. 改动表字段类型

alter table MY_TEST_TABLE modify B varchar2(10);  //将B字段的number(10)类型改动为varchar2(10)

3. 改动表字段默认值

alter table MY_TEST_TABLE modify B default 2;  //将B字段的默认值1改成2

4. 改动表字段的非空属性

alter table MY_TEST_TABLE modify B not null;  // 将B字段改成非空

5. 改动表字段的备注

comment on column MY_TEST_TABLE.B   // 改动B字段的备注值

is ‘bbbb2‘;

6. 主键操作

alter table MY_TEST_TABLE

add constraint PK_MY_TEST_TABLE primary key (A);  //加入主键

alter table MY_TEST_TABLE

drop constraint PK_MY_TEST_TABLE cascade;  //删除主键

//假设要改动主键的话。即必须先删除主键,再加入主键。

7.check约束操作

alter table MY_TEST_TABLE

add constraint CKC_MY_TEST_TABLE_B           //加入约束

check (B in(1,2,3));

alter table MY_TEST_TABLE

drop constraint CKC_MY_TEST_TABLE_B;     //删除约束

//假设要改动约束。则必须先删除约束,再加入约束。

8. 外键操作

alter table MY_TEST_TABLE

add constraint FK_MY_TEST_DTABLE_A foreign key (A)   //加入外键

references MY_TEST_TABLE2 (A) on delete cascade;

alter table MY_TEST_TABLE

drop constraint FK_MY_TEST_DTABLE_A;           //删除外键

//假设要改动外键。必须先删除外键,再加入外键

二、序列SEQ

測试序列:MY_TEST_SEQ

create sequence MY_TEST_SEQ
minvalue 1
maxvalue 9999999999
start with 1
increment by 1
cache 20;

1. 改动minvalue与maxvalue值:

alter sequence MY_TEST_SEQ

minvalue 20

maxvalue 99999999999;

2. 改动nextvalue值:

alter sequence MY_TEST_SEQ increment by 8 nocache;       //由原来nextvalue值为2。改动为nextvalue值为10

select MY_TEST_SEQ.nextval from dual;

alter sequence MY_TEST_SEQ increment by 1 cache 20;    //这句必须有。不然会重置cache和增长率

alter sequence MY_TEST_SEQ increment by -8 nocache;    //由原来nextvalue值为10,改动为nextvalue值为2

select MY_TEST_SEQ.nextval from dual;

alter sequence MY_TEST_SEQ increment by 1 cache 20;    //这句必须有。不然会重置cache和增长率

时间: 2024-10-17 08:38:14

Oracle 经常使用的改动语句的相关文章

Oracle SQL语言之查询语句_超越OCP精通Oracle视频教程培训29

Oracle SQL语言之查询语句_超越OCP精通Oracle视频教程培训29 本课程介绍: Oracle视频教程,风哥本套oracle教程培训是<<Oracle数据库SQL语言实战培训教程>>的第4/5套:Oracle SQL语言之查询语句.主要学习Oracle数据库SQL查询限制排序.Oracle SQL联接查询.Oracle SQL子查询等. 视频学习地址: http://edu.51cto.com/course/course_id-8047.html Oracle SQL语

检查Oracle 中死事务的语句

SQL> SELECT KTUXEUSN, KTUXESLT, KTUXESQN, /* Transaction ID */ 2 KTUXESTA Status, KTUXECFL Flags ,KTUXESIZ 3 FROM x$ktuxe 4 WHERE ktuxesta!='INACTIVE'; KTUXEUSN KTUXESLT KTUXESQN STATUS FLAGS KTUXESIZ ---------- ---------- ---------- ----------------

oracle数据库删除数据Delete语句和Truncate语句的对比

oracle数据库删除数据Delete语句和Truncate语句的对比 当表中的数据不需要时,则应该删除该数据并释放所占用的空间,删除表中的数据可以使用Delete语句或者Truncate语句,下面分别介绍. 一.delete语句 (1)有条件删除    语法格式:delete [from]  table_name  [where condition]; 如:删除users表中的userid为‘001’的数据:delete from users where userid='001'; (2)无条

oracle物理体系相关查询语句

1.查看SGA和PGA 这里看到SGA和PGA大小为0是因为在oracle 11g中,推出了memory_target这个参数,memory_target参数指定的内存会自动分配内存给SGA与PGA: 查看memory_target: sga_max_size=3200M表示当数据库运行是的内存超过sga_target的大小时,操作系统OS能够分配再分配内存给SGA,但大小不能超过3200M: 2.查看共享池与数据缓冲区 共享池与数据缓冲区大小为0是因为oracle设置为SGA自动管理,共享池与

查询Oracle正在执行的sql语句

--查询Oracle正在执行的sql语句及执行该语句的用户 [sql] view plain copy SELECT b.sid oracleID, b.username 登录Oracle用户名, b.serial#, spid 操作系统ID, paddr, sql_text 正在执行的SQL, b.machine 计算机名 FROM v$process a, v$session b, v$sqlarea c WHERE a.addr = b.paddr AND b.sql_hash_value

[转载] ORACLE 多表关联 UPDATE 语句

为了方便起见,建立了以下简单模型,和构造了部分测试数据:在某个业务受理子系统BSS中, SQL 代码 1 --客户资料表 2 create table customers 3 ( 4 customer_id number(8) not null, -- 客户标示 5 city_name varchar2(10) not null, -- 所在城市 6 customer_type char(2) not null, -- 客户类型 7 ... 8 ) 9 create unique index P

在oracle中跟踪会话执行语句的几种方法

生成sql trace可以有以下几种方式: 1.参数设置:非常传统的方法. 系统级别: 参数文件中指定: sql_trace=true 或 SQL> alter system set sql_trace=true; 注意:系统级别启用sql_trace,会产生大量trace文件,很容易耗尽磁盘空间,因此一般设置会话级别,并且及时关闭. 会话级别: SQL> alter session set sql_trace=true; SQL> 执行sql SQL> alter session

ORACLE基本定义、操作语句

ORACLE基本定义.操作语句 一.           表 1.创建表 CREATE TABLE TAB_NAME ( COL_01  VARCHAR2(10) NOT NULL, COL_02  NUMBER(8,2), COL_03  DATE ); 2.添加主键约束 ALTER TABLE TAB_NAME ADD CONSTRAINT PK_COL_01 PRIMARY KEY(COL_01); 3.添加唯一性约束 ALTER TABLE TAB_NAME ADD CONSTRAINT

查询Oracle正在执行的sql语句及执行该语句的用户

查询Oracle正在执行的sql语句及执行该语句的用户SELECT B.SID ORACLEID,B.USERNAME 登录ORACLE用户名,B.SERIAL#,SPID 操作系统ID,PADDR,SQL_TEXT 正在执行的SQL,B.MACHINE 计算机名FROM V$PROCESS A, V$SESSION B, V$SQLAREA CWHERE A.ADDR = B.PADDRAND B.SQL_HASH_VALUE = C.HASH_VALUE; --查看正在执行sql的发起者的发