SQL語言
8.3資料庫定義
8.3.1 基本域類型
- char(n):固定長度字元串
- varchar(n):可變長度字元串,表示最多可以有n個字元的字元串
- int:整型,也可以用integer
- smallint:短整型
- numeric(p,d):定點數p為整數位,d為小數位
- real:浮點型
- double precision:雙精度浮點型
- float(n):n浮點型
- boolean:布爾型
- date:日期型
- time:時間型
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiMGc902byZ2PkRWZ2UDNyQGM2YTMiVDNhZGOwQDOyIGOlhDNjlzN3Y2LcBza5QTcsJja2FXLp1ibj1ycvR3Lc5Wanlmcv9CXt92YucWbp9WYpRXdvRnL2A3Lc9CX6MHc0RHaiojIsJye.jpg)
8.3.2建立表
create table<表名>(<列名><資料類型><列級完整性限制條件><表級完整性限制條件>)
列級完整性限制條件:有NULL(空)not NULL(不為空)和unique(取值唯一);
例子:create table sc(Sno char(5),Cno char(5),grade smallint()
primary key (Sno,Cno) 主鍵(主碼)
foreign key (Sno) references S(Sno)外碼
foreign key (Cno) references C(Cno)
)
8.3.3 修改表和删除表
alter table<表名>(ADD<列名><資料類型><完整性限制條件>)
(modify<列名><資料類型>)
(drop<列名>或<資料類型>
drop table 删除表
8.3.4 建立和删除索引
- 索引是表中一列或者若幹列值的集合和相應的指向表中實體辨別這些值的資料頁的邏輯指針清單
索引的作用
- 通過索引建立唯一索引,保證資料記錄的唯一性
- 大大加快資料檢索速度
- 加速表與表之間的連接配接
- 在使用order by 和 group by字句中進行檢索資料,減少查詢時間
- 使用索引,提供系統性能
索引的分類
- 聚集索引:指索引表中索引項的順序與表中記錄的實體順序一緻的索引
- 非聚集索引
建立索引
create 【unique】【cluster】index 索引名 on 表名 列名 ASC(升序)/DESC(降序),預設ASC
unique:表明索引的每一個索引值隻對應唯一的資料記錄
cluster:表明建立聚族索引
例子:create unique index Sno-Cno on sc (Sno asc , Cno desc)
删除索引
drop index 索引名
8.3.5 視圖建立和删除
1、視圖的作用
- 視圖不是真實存在的基本表是虛拟表
- (1)集中資料、簡化、和定制使用者對資料庫的不同資料要求
- (2)視圖可以屏蔽資料的複雜性,友善使用者使用和管理資料
- (3)視圖使用使用者關心他特定的資料和任務
- (4)視圖大大簡化使用者對資料的操作
- (5)視圖讓使用者不同的方式看到不同或相同的資料
- (6)友善應用程式使用
- (3)視圖提供簡單而有效的安全機制
2、視圖的建立
create view 視圖名 (清單名)
as select 查詢子句
【with check option】
例子:create view cs-student
as select Sno ,Sname ,Sage ,Sex from student with check option
視圖必須遵循的規定
- 1、子查詢可以是任意複雜的select語句,但不允許含有order by字句和distinct短語
- 2、with check option表示對update、inster、delete操作時保證更新、插入或删除的行滿足視圖定義中的謂詞條件
- 3、組成視圖的屬性列名或者全部省略或者全部指定
3、視圖的删除
drop view 視圖名