oracle總結之八 DDL語句

2021-05-26 00:58:03 字數 4715 閱讀 2655

建立與管理表

資料庫中物件:有表、檢視、索引、序列、同義詞等。

表:基本的資料儲存的集合,

由行與列組成

檢視:從表中抽出的邏輯上相關的資料集合。

序列: 

提供有規律的數值

索引:提高查詢效率

同義詞:給物件起的別名。 o

racle資料庫中的表

1、 使用者自定義表

表名和列名的命名規範:

l 必須以字母開頭

l 必須在 

1–30 

個字元之間

l 必須只能包含 

a–z, a–z, 0–9, _, $, 和 #

l 必須不能和使用者定義的其他物件重名

l 必須不能是

oracle 

的保留字

建立表必須具備:

必須具備

:create table

許可權和 

儲存空間

必須指定:

表名,列名

, 資料型別

, 尺寸

建立表的語法

create table [

schema

.]table

(column

datatype

[default 

expr

][, ...]);

資料型別如下:

資料型別描述

varchar2(

size

)可變長字元資料

char(

size

)  定長字元資料

number(p,

s)可變長數值資料

date 

日期型資料

long 

可變長字元資料,最大可達到2g

clob

字元資料,最大可達到4g

raw (long raw) 

原始的二進位制資料

blob

二進位制資料,最大可達到

4g 

bfile

儲存外部檔案的二進位制資料,最大可達到

4g 

rowid

行位址

建立表的分析:

在資料庫中必須遵循一定的規範 這些規範稱為正規化.

目前關聯式資料庫有

6種方式

,資料庫只需要滿足

3nf即可

,需要使用正規化對資料庫中表進行處理.

下面我以學生資訊為例分析:

學號,學生姓名

,出生日期

,學生性別

,所屬班級

,所屬院系

,系主任姓名

,課程編號,成績

分析:學號:sid          

資料型別 varchar2

學生姓名:sname

出生日期:sbirth    date

學生性別:s***       

所屬班級:sclass

所屬院系:sdep

系主任姓名:dname

課程編號:cid

成績 grade         number(5,2)

建立學生資訊表

根據如上資訊可以建立儲存的表 學生資訊表  包含以上的全部資訊,

但非規範。

分析設計過程:

必須滿足3nf

正規化 但前提必須滿足1,

2nf

1、 屬性不可再分(1nf) ==

è一對多關係

學生資訊表:

sid,

sname,sbirth,s***,sclass,sdep,dname

成績表: sid cid grade

2、 (前提必須滿足

1nf )

表中的所有非主屬性都完全依賴於任一候選鍵。 s

id->

sname

sid->sbirth

sid->s***

sid->sclass 

sdep->dname

--à其他普通屬性不應當存在部分依賴於主要屬性->

此普通屬性應當被分離到新的表中去

s(sid,sname,sbirth,s***,sclass,sdep)

d(sdep,dname)

g(sid,cid,grade)

3、 (前提滿足2nf

)表中的每乙個非主屬性都不傳遞依賴於任何候選鍵。

s(sid,sname,sbirth,s***,sclass,sdep)

d(sdep,dname)

g(sid,cid,grade)

在滿足2nf

後 分析: s

id->sclass  s

class->sdep  s

id->sdep

s(sid,sname,sbirth,s***,sclass)

cd(sclass,sdep)

d(sdep,dname)

g(sid,cid,grade)

2、 oracle資料字典

2.1查詢使用者自定義表 /

/查詢使用者定義的表的名稱

sql> select table_name from user_tables;

//查詢使用者自定表的詳細特徵

sql> select * from user_tables

//等效於

sql> select * from tabs;

2.2查詢使用者定義的各種資料庫物件

sql> select distinct object_type from user_objects; 

2.3 檢視使用者定義的表、檢視、序列和同義詞

sql> select * from user_catalog;

使用者自定表

使用 alter table 

語句可以:

l 追加新的列

l 修改現有的列

l 為新追加的列定義預設值

l 刪除乙個列

使用 alter table 

語句追加

, 修改

, 或刪除列的語法.

追加 alter table 

table

add(column datatype 

[default 

expr

][, 

column datatype

]...);

修改alter table 

table

modify

(column datatype 

[default 

expr

][, 

column datatype

]...);

刪除alter table 

table

drop

column

(column

_name);

修改列的名稱

alter table 

table_name

rename column old_column_name 

to new_column_name 

案例://採用子查詢建立

customer

表 表的結構域

users

表完全一致

sql> create table customer as select * from users; 

//為customer

表新增新的列 

email 

型別varchar2(20)

sql> alter table customer add email varchar2(20);

//修改某個欄位的型別

sql> alter table customer modify email number(4);

//刪除某個字段

sql> alter table customer drop column email;

//修改表的某個欄位的名稱

sql> alter table customer rename column address to addr;

刪除表l 

資料和結構都被刪除

l 所有正在執行的相關事物被提交

l 所有相關索引被刪除

l drop table 語句不能回滾

修改物件的名稱

l 執行rename語句改變表, 檢視, 序列, 或同義詞的名稱

l 必須是物件的擁有者

//修改物件的名稱操作

sql> rename customer to customers;

清空表l 

truncate table

語句:

• 刪除表中所有的資料

• 釋放表的儲存空間

l truncate語句

不能回滾

l 可以使用 delete 語句刪除資料

//清空表的操作

sql> truncate table customers;

總結:您已經學會如何使用ddl語句建立, 修改, 刪除, 和重新命名表.

語句描述

create table 

建立表

alter table 

修改表結構 

drop table 

刪除表

rename 

重新命名表

truncate   

刪除表中的所有資料,並釋放儲存空間

oracle總結之八 DDL

建立與管理表 資料庫中物件 有表 檢視 索引 序列 同義詞等。表 基本的資料儲存的集合,由行與列組成 序列 提供有規律的數值 索引 提高查詢效率 同義詞 給物件起的別名。oracle資料庫中的表 使用者自定義表 表名和列名的命名規範 必須以字母開頭 必須在 1 30 個字元之間 必須只能包含 a z...

DDL語句總結

ddl 資料庫定義語言 由create,alter,truncate,drop 組成。1.create 建立表 create table 表名 屬性名 屬性型別 約束條件 2.alter 修改表結構 1.新增新的列 alter table 表名 add 列名 型別 default 2.改變列的順序 ...

八 mysql語句的DDL語句

ddl語句 資料定義語言 建立乙個不存在的資料庫 create database school create schema sch 檢視支援的字符集 show charset 檢視支援的校對規則 show collation 完整建立乙個不存在的資料庫,建議的操作 create database t...