1. 程式人生 > >DDL(數據定義語言)

DDL(數據定義語言)

lec where子句 ora start 註意 覆蓋 creat from mar

1.Oracle中常見的數據類型分類:(A)

1.number(x,y) 數字類型,x表示最大長度,y表示精度
對應java中除char外所有基本數據類型(byte、short、int、long、float、double、boolean)
2.varchar2(x) 可變字符串,x表示最大長度。對應java中String
3.char(x) 定長字符串,x表示最大長度。 對應java中String
4.long 長字符串,最大2G。對應java中String
5.Date,日期(年月日時分秒)對應java.sql.Date和java.sql.Time
6.TIMESTAMP 時間戳,精確到微秒 對應javal.sql.Timestamp

2.DDL的概念:(C)

數據定義語言DDL( Data definition language ):是SQL語言的一個分類,用於對數據庫對象(表、視圖、序列等)進行創建、修改、刪除等操作。
通過以下幾個關鍵字實現:
CREATE(新建)、 ALTER(修改) DROP(刪除) RENAME(重命名) TRUNCATE(截斷)

3.create關鍵字:(A)

3.1 作用:

用於創建數據庫對象(表、視圖、序列等)。

3.2 語法:

語法1:create table 表名(列1 數據類型, 列2 數據類型,...,列N 數據類型)
例:

--直接創建一張新的表
create
table t_user (id number,username varchar2(30),password varchar2(30));

    

語法2:create table 表名 as 子查詢
例:

--創建一個表查詢結果的復制表
--因為where條件1=2始終不成立,所以只復制表結構
create table t_emp as (select * from emp where 1=2);
--如需復制整張表不寫where子句即可

4.alter 關鍵字:(A)

4.1 作用:

用於修改數據庫對象(表、視圖、序列等)。

4.2 語法:

alter table 表名 [modify/add/drop] (列 數據類型)

modify:修改/add:增加/drop:刪除
例:

--modif 一般用於修改列的數據類型或長度
alter table t_emp modify (ename varchar2(10));

--add 用於添加列
alter table t_emp add(phone varchar2(11));

--drop 用於刪除列,因為刪除不用管數據類型,所以不用指定數據類型
alter table t_emp drop(phone);

5.drop 關鍵字

5.1作用:

用來刪除數據庫的對象(表,視圖,序列,索引等)

5.2語法:

drop table 表名
例:

drop table t_emp;

6.視圖:(B)

6.1 概念:

視圖(view),也稱虛表, 不占用物理空間,這個也是相對概念,因為視圖本
身的定義語句還是要存儲在數據字典裏的。視圖只有邏輯定義。每次使用
的時候, 重新執行調用視圖定義語句中的SQL語句。

6.2 作用:

將一些查詢復雜的SQL語句變為視圖,便於查詢。

6.3 語法:

create [or replace] view v$_name
as 子查詢
[with read only]

or replace:覆蓋原有視圖,一般不添加
with read only:只讀,一般建議添加

6.4需要註意的點:

1.視圖也可以從視圖中產生
2.我們把用於產生視圖的表稱之為基表
3.我們對視圖進行數據修改就是對基表進行數據修改,反之亦然
4.不能對多張表的數據,通過視圖進行修改。

7.序列(B)

7.1 概念:

序列是oracle中專有的對象,它用來產生一個自動遞增的數列。

7.2創建序列的語法:

create sequence 序列名
increment by n --每次遞增n
start with m --從m開始
例:

--從1開始每次遞增1
create sequence seq_emp_temp
increment by 1
start with 1

7.3 使用序列:

序列名.nextval :下一個值
序列名.currval : 當前值
例:

insert into emp_temp(empno) values(seq_emp_temp.nextval)

DDL(數據定義語言)