【學習】SQL基礎-013-DDL
1、資料庫物件
表
檢視:儲存在資料字典中的一條 select 語句
序列
同義詞
索引
2、保留字
select * from v$reserved_words where reserved='Y';
3、建立表
前提:
有CREATE TABLE許可權,有空間,一個表最多1000個列
臨時表級別 GLOBAL TEMPORARY:
事務級 ON COMMIT DELETE ROWS
會話級 ON COMMIT PRESERVE ROWS
語法
CREATE GLOBAL TEMPORARY TABLE ....
(...
)
ON COMMIT PRESERVE ROWS;
語法:
create table dept01
( deptno number(2),
dname varchar2(14)
);
default值:create table test (col1 number,col2 date default sysdate);
資料型別:字元、數字、日期、大物件等
資料字典
user_tables
user_objects:物件的名字、ID和型別
user_catalog:檢視使用者擁有的表、檢視、同義詞、序列
使用CAST的方式建立新表
源表上列上的 not null(非空)約束也將應用於新表,但 primary key(主鍵)、 unique(唯一)、 foreigne key(外來鍵)約束 以及 隱式的 not null(主鍵列)約束都不會被繼承;
只建立表結構的空表 create table test as select * from emp where 1=2;
4、修改表
add增加一列 alter table dept30 add (job varchar2(9));
modify更改一列 alter table dept30 modify (ename varchar2(15));
drop丟棄一列
alter table dept30 drop column job;
刪除有約束的列加cascade constraint alter table ... drop column ...cascade constraint
rename重新命名列 alter table dept30 rename column empno to id;
set unused 標記不可用列
alter table xxx set unused (col1,col2);
與drop列配合使用,在業務高峰期先標記不可用,然後在業務低谷drop列 alter table xxx drop unused columns;
不能還原
select * from user_unused_col_tabs;
5、重新命名錶
rename dept30 to department30;
6、截斷表
truncate table department;
只刪除資料,保留了表結構
truncate與delete的區別:
a) delete 是 DML 語句,會產生很多 undo 資料,用於回滾( rollback),速度慢。
delete 不會降低高水位線。 delete 可以刪除表中部分資料。
b) truncate 是 DDL 語句,幾乎不產生 undo 資料,不能回滾。速度快。
truncate 會降低高水位線。 truncate 會刪除表中所有資料。
7、刪除表
drop table dept30;
無法回滾
drop table purge //刪除的表不會放到回收站
刪除有約束的表 drop table dept02 cascade constraint;
8、增加註釋
表級別 comment on table emp is 'Employee Information'; user_tab_comments 資料字典
列級別 comment on column emp.deptno is 'Department Number'; user_col_comments 資料字典
表
檢視:儲存在資料字典中的一條 select 語句
序列
同義詞
索引
2、保留字
select * from v$reserved_words where reserved='Y';
3、建立表
前提:
有CREATE TABLE許可權,有空間,一個表最多1000個列
臨時表級別 GLOBAL TEMPORARY:
事務級 ON COMMIT DELETE ROWS
會話級 ON COMMIT PRESERVE ROWS
語法
CREATE GLOBAL TEMPORARY TABLE ....
(...
)
ON COMMIT PRESERVE ROWS;
語法:
create table dept01
( deptno number(2),
dname varchar2(14)
);
default值:create table test (col1 number,col2 date default sysdate);
資料型別:字元、數字、日期、大物件等
資料字典
user_tables
user_objects:物件的名字、ID和型別
user_catalog:檢視使用者擁有的表、檢視、同義詞、序列
使用CAST的方式建立新表
源表上列上的 not null(非空)約束也將應用於新表,但 primary key(主鍵)、 unique(唯一)、 foreigne key(外來鍵)約束 以及 隱式的 not null(主鍵列)約束都不會被繼承;
只建立表結構的空表 create table test as select * from emp where 1=2;
4、修改表
add增加一列 alter table dept30 add (job varchar2(9));
modify更改一列 alter table dept30 modify (ename varchar2(15));
drop丟棄一列
alter table dept30 drop column job;
刪除有約束的列加cascade constraint alter table ... drop column ...cascade constraint
rename重新命名列 alter table dept30 rename column empno to id;
set unused 標記不可用列
alter table xxx set unused (col1,col2);
與drop列配合使用,在業務高峰期先標記不可用,然後在業務低谷drop列 alter table xxx drop unused columns;
不能還原
select * from user_unused_col_tabs;
5、重新命名錶
rename dept30 to department30;
6、截斷表
truncate table department;
只刪除資料,保留了表結構
truncate與delete的區別:
a) delete 是 DML 語句,會產生很多 undo 資料,用於回滾( rollback),速度慢。
delete 不會降低高水位線。 delete 可以刪除表中部分資料。
b) truncate 是 DDL 語句,幾乎不產生 undo 資料,不能回滾。速度快。
truncate 會降低高水位線。 truncate 會刪除表中所有資料。
7、刪除表
drop table dept30;
無法回滾
drop table purge //刪除的表不會放到回收站
刪除有約束的表 drop table dept02 cascade constraint;
8、增加註釋
表級別 comment on table emp is 'Employee Information'; user_tab_comments 資料字典
列級別 comment on column emp.deptno is 'Department Number'; user_col_comments 資料字典
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31476473/viewspace-2152709/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SQL學習___01:基礎SQL
- Oracle之PL/SQL基礎學習OracleSQL
- MySQL學習(三) SQL基礎查詢MySql
- 【學習】SQL基礎-005-group by子句SQL
- 【學習】SQL基礎-004-函式SQL函式
- SQL語句基礎學習之TRIMSQL
- 【學習】SQL基礎-011-TCLSQL
- 【學習】SQL基礎-010-DMLSQL
- 【學習】SQL基礎-003-過濾排序SQL排序
- 【學習】SQL基礎-002-SELECTSQL
- 【學習】SQL基礎-018-索引SQL索引
- 【學習】SQL基礎-016-序列SQL
- Oracle之PL/SQL基礎學習之二OracleSQL
- 【學習】SQL基礎-001-前期準備SQL
- 【學習】SQL基礎-012-鎖定SQL
- 【學習】SQL基礎-008-集合運算子SQL
- 【學習】SQL基礎-007-子查詢SQL
- 【學習】SQL基礎-017-同義詞SQL
- 【學習】SQL基礎-015-檢視SQL
- 【學習】SQL基礎-014-約束SQL
- 免殺學習-基礎學習
- Docker 基礎學習Docker
- Flume基礎學習
- Redis 基礎學習Redis
- Pandas基礎學習
- Scala基礎學習
- 【Vue學習】基礎Vue
- jQuery基礎學習jQuery
- HTML基礎學習HTML
- Java基礎學習Java
- JVM基礎學習JVM
- Hashtable基礎學習
- Zookeeper 基礎學習
- kafka基礎學習Kafka
- 深度學習基礎深度學習
- 【學習】SQL基礎-009-sqlplus環境SQL
- 【學習】SQL基礎-006-多表連線查詢SQL
- Linux基礎學習——檔案基礎Linux