Drop & Alter
Drop,撤銷操作爱只;Alter,更新操作招刹。
在PowerBI中恬试,如果我們針對(duì)某些數(shù)據(jù)清洗操作進(jìn)行修改的話,只需要打開高級(jí)編輯器查看M語言疯暑,對(duì)特定的語句進(jìn)行修改刪除就可以了训柴。
但是在數(shù)據(jù)庫倉(cāng)庫中,我們往往需要借助Drop和Alter或者其他語句才能對(duì)數(shù)據(jù)倉(cāng)庫進(jìn)行修改妇拯。
為什么在數(shù)據(jù)倉(cāng)庫中我們不能像在PowerQuery中進(jìn)行同樣的操作呢幻馁?
其實(shí)這個(gè)和二者的定位有關(guān)洗鸵。
PowerQuery的定位,是針對(duì)PowerView進(jìn)行服務(wù)的仗嗦,雖然PowerQuery自成體系膘滨,可以稱之為一個(gè)微型的數(shù)據(jù)倉(cāng)庫,但是一般情況下稀拐,我們從標(biāo)準(zhǔn)數(shù)據(jù)倉(cāng)庫拿到的數(shù)據(jù)都是比較干凈的數(shù)據(jù)火邓。
SQL Servers的定位,屬于國(guó)際通用的基礎(chǔ)數(shù)據(jù)庫語言之一德撬,本身的定位就是大型的數(shù)據(jù)倉(cāng)庫铲咨。在數(shù)據(jù)治理的規(guī)范化標(biāo)準(zhǔn)中,其中就要求數(shù)據(jù)倉(cāng)庫必須能夠穩(wěn)定蜓洪、持續(xù)的提供數(shù)據(jù)源纤勒。
因此,為了數(shù)據(jù)庫穩(wěn)定性而言隆檀,我們?nèi)绻枰獙?duì)數(shù)據(jù)倉(cāng)庫進(jìn)行邏輯的修改以及調(diào)整摇天,則必須有一套規(guī)范化的操作流程以及專業(yè)化的邏輯修改語句。
語法
Drop語法:
1.刪除索引:
DROP INDEX 索引名稱 ON 表名稱
2.刪除表:
DROP TABLE 表名稱
注:此操作恐仑,會(huì)刪除表的結(jié)構(gòu)闸翅、屬性以及索引!
3.刪除數(shù)據(jù)庫:
DROP DATABASE 數(shù)據(jù)庫名稱
4.保留表結(jié)構(gòu)菊霜,只刪除數(shù)據(jù):
TRUNCATE TABLE 表名稱
Alter語法:
1.對(duì)表中添加列:
ALTER TABLE 表名稱
ADD 列名稱 數(shù)據(jù)類型
2.對(duì)表中列進(jìn)行刪除:
ALTER TABLE 表名稱
DROP COLUMN 列名稱
3.改變表中列的數(shù)據(jù)類型:
ALTER TABLE 表名稱
ALTER COLUMN 列名稱 數(shù)據(jù)類型
Constraints補(bǔ)充
之前白茶分享過關(guān)于約束的幾種類型坚冀,其實(shí)當(dāng)時(shí)還有額外的Drop和Alter操作的,考量到分類問題鉴逞,白茶決定放在本期去說记某。
下面的所有語法,都是在表已經(jīng)建立好的情況下构捡,我們需要對(duì)約束進(jìn)行更改液南。
- UNIQUE(唯一)更新:新增唯一約束:
ALTER TABLE 表名稱
ADD UNIQUE (列名稱)
新增多個(gè)列唯一約束:
ALTER TABLE 表名稱
ADD CONSTRAINT uc_約束名 UNIQUE (列名稱,列名稱...)
撤銷唯一約束:
ALTER TABLE 表名稱
DROP CONSTRAINT uc_約束名
- PRIMARY KEY(主鍵)更新:
新增主鍵約束:
ALTER TABLE 表名稱
ADD PRIMARY KEY (列名稱)
新增多個(gè)列主鍵約束:
ALTER TABLE 表名稱
ADD CONSTRAINT pk_約束名 PRIMARY KEY (列名稱,列名稱...)
撤銷主鍵約束:
ALTER TABLE 表名稱
DROP CONSTRAINT pk_約束名
- FOREIGN KEY(外鍵)更新:
新增外鍵約束:
ALTER TABLE 表名稱
ADD FOREIGN KEY (列名稱)
REFERENCES 主鍵表(列名稱)
新增多個(gè)列外鍵約束:
ALTER TABLE 表名稱
ADD CONSTRAINT fk_約束名
FOREIGN KEY (列名稱)
REFERENCES 主鍵表(列名稱)
撤銷外鍵約束:
ALTER TABLE 表名稱
DROP CONSTRAINT fk_約束名
- CHECK(檢查)更新:
新增檢查約束:
ALTER TABLE 表名稱
ADD CHECK (列名稱 比較符 "條件")
新增多列檢查約束:
ALTER TABLE 表名稱
ADD CONSTRAINT chk_約束名 CHECK (列名稱 比較符 "條件" AND 列名稱 比較符 "條件" ......)
撤銷檢查約束:
ALTER TABLE 表名稱
DROP CONSTRAINT chk_約束名
- DEFAULT(默認(rèn)值)更新:
新增默認(rèn)值約束:
ALTER TABLE 表名稱
ALTER COLUMN 列名稱 SET DEFAULT '默認(rèn)值'
撤銷默認(rèn)值約束:
ALTER TABLE 表名稱
ALTER COLUMN 列名稱 DROP DEFAULT
本期到這里就結(jié)束了,沒有使用的案例勾徽,因?yàn)槲覀冏鯞I前端使用這類操作的情況其實(shí)并不多見滑凉,我們更多就是單純的使用查詢聚合語句。
當(dāng)然喘帚,對(duì)ETL和數(shù)據(jù)倉(cāng)庫感興趣的小伙伴可以動(dòng)手嘗試一下畅姊。
這里是白茶,一個(gè)PowerBI的初學(xué)者吹由。