《數(shù)據(jù)庫系統(tǒng)概念》6-數(shù)據(jù)類型俏站、授權(quán)等

?一韭脊、一致性

一致性包括not null、unique塞帐、check

a)Not null

name varchar(20) not null

b)Unique

如果A1, A2...等構(gòu)成了候選鍵拦赠,可以用unique(A1, A2...)來保證其唯一性,但這些字段仍然可為空葵姥,而為空值與任何值都不相等荷鼠。

c)Check

限制semester的值:

check (semester in (’Fall’, ’Winter’, ’Spring’, ’Summer’)

d)Referential Integrity參照完整性

如果course.dept_name作為外鍵引用department表,為了保證course.dept_name的取值都存在于department.dept_name榔幸,添加參照完整性約束為:

e)foreign key (dept name) references department

二颊咬、數(shù)據(jù)類型和Schemas

a)Date和time

SQL標(biāo)準(zhǔn)規(guī)定的time相關(guān)類型有:

date ’2001-04-25’

time ’09:30:00’

timestamp ’2001-04-25 10:29:01.45’

字符串形式的日期可以使用cast e as t的方式來轉(zhuǎn)換务甥;也可以使用extract year/month/day/hour/minute/second from d的方式來單獨提取年月日等數(shù)據(jù);

還有current_day, current_timestamp(包含時區(qū)), localtimestamp(不包含時區(qū)的本地時間)喳篇;

interval類型表示時間的差

b)Default value

create table student

(ID varchar (5),

name varchar (20) not null,

dept name varchar (20),

tot_cred numeric (3,0) default 0,

primary key (ID));

這里設(shè)置了tot_cred的默認(rèn)值為0

c)創(chuàng)建索引

create index studentID index on student(ID)表示創(chuàng)建了名為studentID的索引敞临,有的數(shù)據(jù)庫產(chǎn)品又進(jìn)一步區(qū)分了聚集索引(clustered)與非聚集索引(nonclustered)

d)大對象類型Large-Object Type

如果要存儲聲音、圖像等數(shù)據(jù)麸澜,數(shù)據(jù)量可能為KB甚至MB, GB級別挺尿,為此SQL提供了兩種大對象類型 clob(character large object)和blob(binary...)。不同數(shù)據(jù)庫的具體實現(xiàn)會有區(qū)別炊邦,而且實際使用中不推薦使用這些類型编矾,而往往將數(shù)據(jù)保存在文件系統(tǒng),并在數(shù)據(jù)庫保存其存放位置馁害。

e)用戶自定義類型

允許基于現(xiàn)有的類型來自定義數(shù)據(jù)類型窄俏,比如:

create type Dollars as numeric(12,2);

create type Pounds as numeric(12,2);

自定義類型Dollars和Pounds雖然都是numeric(12,2)類型,但在業(yè)務(wù)上被認(rèn)為是不同的數(shù)據(jù)類型碘菜。

還有一種定義方式為:

create domain DDollars as numeric(12,2) not null;

type和domain的細(xì)微的區(qū)別在于domain可以同時添加約束如not null,凹蜈;而且domain也不是完全的強(qiáng)類型,只要值是兼容的忍啸,就可以賦值給domain定義的類型仰坦,而type卻不行。

e)Create table的擴(kuò)展

create table temp instructor like instructor;創(chuàng)建了一個與sinstructor有相同結(jié)構(gòu)的表

在編寫SQL時计雌,有時會創(chuàng)建臨時表并存入數(shù)據(jù)悄晃,這時可以用簡化寫法:

create table t1 as

(select *

from instructor

where dept name= ’Music’)

with data;

t1表結(jié)構(gòu)與查詢結(jié)果集相同,如果去掉with data凿滤,則只創(chuàng)建schema而不插入數(shù)據(jù)妈橄。

三、授權(quán)

權(quán)限控制可以針對用戶或角色進(jìn)行數(shù)據(jù)操縱翁脆、schema更新等的控制眷蚓。

a)分配、撤銷授權(quán)

分配權(quán)限的語法為:

grant

on

to ;

privilege list包括select, insert, update, delete

對于update鹃祖,可以設(shè)定允許更新某些屬性:

grant update (budget) on department to Amit, Satoshi;

類似地溪椎,撤銷授權(quán)語法為:

revoke

on

to ;

b)角色

基于角色的權(quán)限控制不是SQL的專利,很多共享型應(yīng)用都采用這種授權(quán)方式恬口。

create role instructor;

grant select on takes to instructor;

grant dean to Amit;

前面的語句創(chuàng)建了角色instructor校读,為期分配select from takes權(quán)限,然后將Amit歸入instructor角色祖能。在Amit執(zhí)行查詢前歉秫,SQL根據(jù)它所屬角色具有的權(quán)限來做控制。

c)關(guān)于schema的授權(quán)

因為外鍵會影響后續(xù)的更新养铸、刪除等操作雁芙,所以有必要為外鍵的創(chuàng)建做權(quán)限控制:

grant references (dept name) on department to Mariano;

學(xué)習(xí)資料:Database System Concepts, by Abraham Silberschatz, Henry F.Korth, S.Sudarshan

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末轧膘,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子兔甘,更是在濱河造成了極大的恐慌谎碍,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,509評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件洞焙,死亡現(xiàn)場離奇詭異蟆淀,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)澡匪,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評論 3 394
  • 文/潘曉璐 我一進(jìn)店門熔任,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人唁情,你說我怎么就攤上這事疑苔。” “怎么了甸鸟?”我有些...
    開封第一講書人閱讀 163,875評論 0 354
  • 文/不壞的土叔 我叫張陵惦费,是天一觀的道長。 經(jīng)常有香客問我哀墓,道長趁餐,這世上最難降的妖魔是什么喷兼? 我笑而不...
    開封第一講書人閱讀 58,441評論 1 293
  • 正文 為了忘掉前任篮绰,我火速辦了婚禮,結(jié)果婚禮上季惯,老公的妹妹穿的比我還像新娘吠各。我一直安慰自己,他們只是感情好勉抓,可當(dāng)我...
    茶點故事閱讀 67,488評論 6 392
  • 文/花漫 我一把揭開白布贾漏。 她就那樣靜靜地躺著,像睡著了一般藕筋。 火紅的嫁衣襯著肌膚如雪纵散。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,365評論 1 302
  • 那天隐圾,我揣著相機(jī)與錄音伍掀,去河邊找鬼。 笑死暇藏,一個胖子當(dāng)著我的面吹牛蜜笤,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播盐碱,決...
    沈念sama閱讀 40,190評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼把兔,長吁一口氣:“原來是場噩夢啊……” “哼沪伙!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起县好,我...
    開封第一講書人閱讀 39,062評論 0 276
  • 序言:老撾萬榮一對情侶失蹤围橡,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后缕贡,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體某饰,經(jīng)...
    沈念sama閱讀 45,500評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,706評論 3 335
  • 正文 我和宋清朗相戀三年善绎,在試婚紗的時候發(fā)現(xiàn)自己被綠了黔漂。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,834評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡禀酱,死狀恐怖炬守,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情剂跟,我是刑警寧澤减途,帶...
    沈念sama閱讀 35,559評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站曹洽,受9級特大地震影響鳍置,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜送淆,卻給世界環(huán)境...
    茶點故事閱讀 41,167評論 3 328
  • 文/蒙蒙 一税产、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧偷崩,春花似錦辟拷、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至谒出,卻和暖如春隅俘,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背笤喳。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評論 1 269
  • 我被黑心中介騙來泰國打工为居, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人莉测。 一個月前我還...
    沈念sama閱讀 47,958評論 2 370
  • 正文 我出身青樓颜骤,卻偏偏與公主長得像,于是被迫代替她去往敵國和親捣卤。 傳聞我的和親對象是個殘疾皇子忍抽,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,779評論 2 354

推薦閱讀更多精彩內(nèi)容