ORACLE表格建立,修改,刪除
ORACLE表格建立,修改,刪除
資料定義語言(DDL),包括create建立命令,alter修改命令,drop刪除命令等。(主要針對表的物件結構)
表的資料型別:
1、字串型別
char --預設一個字元長度
char(10)----該欄位為10個字元長度,分配了10個長度,只用到5個長度的話,剩下的會自動用空格補全
varchar2(50)--分配了50個長度,只用到5個長度的話,剩下的不會佔用
2、數字型別
number --預設38位
number(10) -- 10位整數長度
number(5,2)--總長度為 5 ,小數部分為 2,整數部分 3 (0~999.99)
3、日期型別
date
timestamp
建立表:
CREATE TABLE 表名(欄位名1 欄位型別(長度),
欄位名2 欄位型別(長度),
欄位名3 欄位型別(長度),
...);
建立一個圖書表:
CREATE TABLE BOOK(BNO NUMBER(5),
BNAME VARCHAR(20),
RUDATE DATE,
BPRICE NUMBER(10,2)
);
--複製備份表
CREATE TABLE 表名 AS 查詢的結果集(SELECT);
--備份一份emp表
CREATE TABLE EMP_ZHI AS SELECT * FROM EMP;
--只複製表的結構
CREATE TABLE EMP_SC AS SELECT * FROM EMP WHERE 1=2;
--刪除表(表結構,物件)
DROP TABLE EMP_SC;
--清空表(資料)
TRUNCATE TABLE 表明
TRUNCATE TABLE EMP_ZHI;
--修改表
ALTER 針對表結構的修改
1、修改表的欄位名稱
將EMP_ZHI表的EMPNO欄位改為EMP
ALTER TABLE EMP_ZHI RENAME COLUMN EMPNO TO EMP;
2、欄位型別的修改
ALTER TABLE EMP_ZHI MODIFY EMP VARCHAR(8);--可以改大,也可以改小,但是不能小於當前所存在的最大值長度
ALTER TABLE EMP_ZHI MODIFY EMP NUMBER(20)--當列中有值的時候,只能改大不能改小
3、增加一個欄位
ALTER TABLE 表名 ADD 欄位名 欄位型別;
ALTER TABLE EMP_ZHI ADD RUZI_DATE DATE;
4、刪除一個欄位
ALTER TABLE 表名 DROP COLUMN 欄位名;
ALTER TABLE EMP_ZHI DROP COLUMNRUZI_DATE;
5、修改表明
ALTER TABLE 表名 RENAME TO 新表名
ALTER TABLE EMP_ZHI RENAME TO EMP_SSS;
例題:複製一整自己的emp表
並將EMPNO的欄位長度修改小於原表
--先複製一張表
CREATE TABLE EMP_XB AS SELECT * FROM EMP;
--新增一個新的欄位
ALTER TABLE EMP_XB ADD TEMP NUMBER(10);
--將EMPNO的資料複製到TEMP
UPDATE EMP_XB SET TEMP = EMPNO;
--將EMP_XB表格的EMPNO更新為空
UPDATE EMP_XB SET EMPNO = NULL;
--修改EMPNO的欄位型別(向下)
ALTER TABLE EMP_XB MODIFY EMPNO NUMBER(5);
--將TEMP的資料複製到EMPNO
UPDATE EMP_XB SET EMPNO = TEMP;
--將TEMP欄位刪除
ALTER TABLE EMP_XB DROP COLUMN TEMP;