oracle數據庫SQL開發之創建和維護表

一、數據定義語言

–數據定義語言: (Data Definition Language,DDL) 是SQL語言集中負責數據結構定義與數據庫對象定義的語言,由create、alter與drop,rename,truncate語法所組成。

二、數據庫對象

數據庫對象,是數據庫的組成部分,有表、約束、索引、視圖、序列、同義詞、觸發器、存儲過程、函數等
在這裏插入圖片描述
Oracle中數據庫對象命名原則
– 必須由字母開始,長度在 1–30個字符之間。
– 名字中只能包含 A–Z, a–z, 0–9, _ (下劃線),$ 和 #。
– 同一個Oracle服務器用戶所擁有的對象名字不能重複。
– 名字不能爲Oracle的保留字。
– 名字是大小寫不敏感

三、創建表

(一)創建數據表 create table 表名

1.直接創建

CREATE TABLE course(表名)
            (
                                   course_no NUMBER(4),
                                   course_name VARCHAR(20),
                                   tearcher VARCHAR(12),
                                   credit NUMBER(2) DEFAULT 4        --默認值
                )

2…用子查詢語法創建表

CREATE TABLE dept10
                    AS
                           SELECT empno, ename, sal +1000 newSalary
                            FROM emp
                            WHERE deptno = 10;

Select列表中的表達式列需要給定別名,如果沒有別名會產生錯誤

(二)數據類型

字符(串)型
(1)char(size) 固定長度字符型數據,長度的大小以字節爲單位,默認和最小長度爲1;最大長度爲 2000;
(2)varchar2(aize) 可變長度字符數據,最小長度是 1;最大長度是4000
(3)clob 可變長度字符數據,最大可存儲4G數據

數值型
(1)number 數值型:可以表示整數,也可以表示小數,表數範圍- 10的 125次方到10的126次方。
(2)number(n) 整型

(3)number(p,s) 數值型:總長度爲p,小數位最大爲s位 ,整數位最大爲p-s位,p的 範圍從1到38,s的範圍從-84到127

日期型
(1)date 包括年月日時分秒
(2)timestamp 精度比DATE更高一些,可以精確到毫秒

圖片類型
(1)blob 最大可存儲4G二進制的數據,可以存放圖片,聲音 ,文件

四、修改表(列數據) --alter table 表名

1.新增列 alter table…add… --不能指定新添加列的位置,新列會成爲最後一列。
alter table dossier add (sex CHAR(1));
2. 修改列 alter table…modify(列名 …) --列的修改可以修改列名,數據類型,長度,及默認值
8i版本之後,可以修改列名字
alter table 表名 rename column 原有列名 to 新列名 。
把dossier表性別(sex) 列,修改爲長度爲2 ----alter table dossier modify (sex char(2));

  添加默認值               
 -alter table dossier  modify (sex default ‘ 男’);

3.刪除列 alter table…drop…
刪除列原則:
• 列可以有也可以沒有數據。
• 表中至少保留一列。(要有表的樣子)
• 列被刪除後,不能再恢復。
被外鍵引用的列,不能被刪除

五、刪除表 drop table(表名)

– 刪除表權限:
• 只有表的創建者
• 或具有drop any table權限的用戶才能刪除表

– 刪除表原則:
• 表中所有的數據和結構都被刪除
• 任何視圖和同義詞被保留但無效。
• 所有與其相關的約束和索引被刪除
• 任何未完成的事務被提交。

六、重新命名錶

必須是對象的所有者(權限問題)
  **rename 舊錶名 to 新表名;**

七、截斷表 ----truncate table 表名;

• 執行truncate語句的前提,必須是表的所有者
• 或者有delete any table系統權限來截斷表。

truncate 和delete區別:
– truncate是DDL,只能刪除表中所有記錄,釋放存儲空間,使用rollback不可以回滾。
– delete是DML,可以刪除指定記錄,不釋放存儲空間,使用rollback可以回滾。

八、數據字典 ----由Oracle 服務器創建和維護的表

數據字典表的數據是由oracle自動維護的相關數據字典

– 查詢數據字典

select table_name from user_tables

– 查看數據字典結構

 desc user_tables
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章