国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
新手必讀:Oracle數(shù)據(jù)庫操作全接觸

十二、改變表和約束條件
1. 改變表的幾種情況

(1) 運行時會加表級鎖
改變表的名稱
SQL> RENAME 表名1 TO 表名2; SQL> ALTER TABLE 表名1 RENAME TO 表名2;
在表的后面增加一個字段
SQL> ALTER TABLE 表名 ADD 字段名 字段名描述 [ DEFAULT expr ][ NOT NULL ][ ,字段名2 ……];
修改表里字段的定義描述
SQL> ALTER TABLE 表名 MODIFY 字段名1 字段名1描述 [ DEFAULT expr ][ NOT NULL ][ ,字段名2 ……]; 記錄為空時,可以減少字段長度,改變字段類型修改DEFAULT值只作用于修改后的INSERT和UPDATE的記錄修改NOT NULL約束只對現(xiàn)存含非空記錄的字段起作用

(2) 運行時會加表級鎖
刪除表里的某個字段
SQL> ALTER TABLE 表名 DROP 字段名;
給表里的字段加上/禁止/啟用約束條件
SQL> ALTER TABLE 表名 ADD | DISABLE | ENABLE CONSTRAINT 約束名 PRIMARY KEY (字段名1[,字段名2 ……]);
SQL> ALTER TABLE 表名 ADD | DISABLE | ENABLE CONSTRAINT 約束名 UNIQUE (字段名1[,字段名2 ……]);
加唯一關(guān)鍵字或者唯一約束條件時自動建立索引
說明:禁止唯一關(guān)鍵字和唯一約束時索引仍然存在,可以被使用.

(3) 運行時會加表級鎖
刪除表里的約束條件
SQL> ALTER TABLE 表名 DROP CONSTRAINTS 約束名 [CASCADE];
會把約束相關(guān)的索引一起刪除. CASCADE能同時刪去外鍵的約束條件.
把表放在或取出數(shù)據(jù)庫的內(nèi)存區(qū)
SQL> ALTER TABLE 表名 CACHE;
SQL> ALTER TABLE 表名 NOCACHE;
改變表存儲的表空間
SQL> ALTER TABLE 表名 MOVE TABLESPACE 表空間名 ;
注意: 如果被轉(zhuǎn)移表空間的表含有索引, 表轉(zhuǎn)移后索引變得不可用.
我們要刪除舊索引,建立新索引

2. 刪除表及表里的數(shù)據(jù)
刪除表
SQL> DROP TABLE 表名 [CASCADE CONSTRAINTS];
清空表里的記錄
SQL> TRUNCATE TABLE 表名;
按時間清空日志表里的記錄,使用重新命名的方法(應(yīng)用程序可能有短暫出錯, 可以選擇在不繁忙的時間執(zhí)行)
按原來表A的建表語句創(chuàng)建新表A1,
把表A重命名為A2(如果表A上有較頻繁的DML操作,會對表加上行級鎖,重命名過程用遞歸的方式循環(huán)做,直到DML操作結(jié)束,命名成功).
把創(chuàng)建新表A1重命名為A
歷史記錄表A2備份或刪除

3. 刪除表后應(yīng)該注意的問題
刪除表后把表里的索引一起刪去.
刪除表后會結(jié)束基于它的懸而未決的事物
刪除表后根據(jù)表創(chuàng)建的views,synonym,stored procedure,stored function依然存在,但views,synonym變成非法的. 需要手工找出它們并刪除.
如果用了CASCADE CONSTRAINTS會把與它相關(guān)的約束一起刪除
此操作不可回退

4. 給表加注釋
加注釋的語法
SQL> COMMENT ON TABLE 表名 | COLUMN表名.字段名 IS ‘text‘
加注釋的例子
SQL> comment on table s_emp is ‘Enployee information‘;
SQL> comment on column s_emp.last_name is ‘‘;
關(guān)于注釋的數(shù)據(jù)庫字典
ALL_COL_COMMENTS
USER_COL_COMMENTS
ALL_TAB_COMMENTS
USER_TAB_COMMENTS

十三、創(chuàng)建序列號
1. 創(chuàng)建序列號里各參數(shù)的解釋

SQL> CREATE SEQUENCE name [INCREMENT BY n]
[START WITH n] [{MAXVALUE n | NOMAXVALUE}]
[{MINVALUE n | NOMINVALUE}] [{CYCLE | NOCYCLE}]
[{CACHE n | NOCACHE}]
INCREMENT BY n 一次增長n 個數(shù)字
NOMAXVALUE 缺省值10E+27
NOMINVALUE 缺省值1
NOCYCLE 不循環(huán), 常用于唯一關(guān)鍵字
CACHE n 在內(nèi)存里緩存n個序列,出錯回退時會丟失
oracle8i里默認(rèn)的n是20

序列號的名稱一般可以采用“表名_字段名”的命名規(guī)則

2. 插入自動增長序列號字段的方法
INSERT時如果要用到從1開始自動增長的數(shù)字做唯一關(guān)鍵字, 應(yīng)該先建立一個序列號.
CREATE SEQUENCE 序列號的名稱 (最好是表名+序列號標(biāo)記) INCREMENT BY 1 START WITH 1 MAXVALUE 99999 NOCYCLE NOCACHE;
其中最大的值按字段的長度來定,比如定義的自動增長的序列NUMBER(6) , 最大值為999999
INSERT 語句插入這個字段值為: 序列號的名稱.NEXTVAL
例子: SQL> insert into s_dept(id, name, region_id) values (s_dept_id.nextval, 'finance', 2);
1 row created.
只有運行了序列號的名稱. nextval后序列號的名稱. currval 才有效才有值.

2. 查詢序列號的情況
SQL> select sequence_name, min_value, max_value, increment_by, last_number from user_sequences;
其中l(wèi)ast_number指的是序列號的下一個值.

3. 改變序列號
SQL> ALTER SEQUENCE sequence [INCREMENT BY n] [{MAXVALUE n | NOMAXVALUE}]
[{MINVALUE n | NOMINVALUE}]
[{CYCLE | NOCYCLE}] [{CACHE n | NOCACHE}];
注意: 不能改變它的起始值
如果要改變序列的起始值, 先把序列號刪除掉, 再新建一個.

4. 刪除序列號
SQL>DROP SEQUENCE sequence;

5. 不能用序列號的nextval和currval的地方

視圖的查詢
有distinct的查詢
有g(shù)roup by,having,order by的查詢
有子查詢的查詢
表里的缺省值

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
ORACLE 常用的SQL語法和數(shù)據(jù)對象
oracle移植到mysql注意事項
MYSQL和ORACLE的一些操作區(qū)別
oracle查詢前幾條
oracle 自動生成編號(實現(xiàn)sqlserver自增長字段)
oracle基礎(chǔ)sql語句
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服