建立與管理表
資料庫中物件:有表、檢視、索引、序列、同義詞等。
表:基本的資料儲存的集合,
由行與列組成
檢視:從表中抽出的邏輯上相關的資料集合。
序列:
提供有規律的數值
索引:提高查詢效率
同義詞:給物件起的別名。 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
表新增新的列
型別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...