在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ 數(shù)據(jù)庫(kù)/ SQL Server SQL腳本
SQL Server存儲(chǔ)過(guò)程
SQL Server教程
SQL Server查詢(xún)?cè)O(shè)計(jì)器
SQL Server添加數(shù)據(jù)
SQL Server鏈接服務(wù)器
SQL Server創(chuàng)建表
SQL Server數(shù)據(jù)庫(kù)模式
SQL Server安裝
SQL Server創(chuàng)建數(shù)據(jù)庫(kù)
SQL Server 2014版
關(guān)于Microsoft SQL Server
SQL Server服務(wù)器角色
SQL Server視圖
SQL Server SQL腳本
Windows2012 R2上安裝.NET3.5框架
SQL Server管理套件(SSMS)

SQL Server SQL腳本

在前面的課程,我們使用“編輯前200行”選項(xiàng)添加數(shù)據(jù)到我們的數(shù)據(jù)庫(kù)表。在這一課中,我們將著眼于如何編寫(xiě)SQL腳本來(lái)更新并運(yùn)行對(duì)數(shù)據(jù)庫(kù)進(jìn)行查詢(xún)。

SQL腳本可用于插入數(shù)據(jù),讀取數(shù)據(jù),更新數(shù)據(jù),和刪除數(shù)據(jù)。它們也可以用于創(chuàng)建數(shù)據(jù)庫(kù)對(duì)象,如表,視圖,存儲(chǔ)過(guò)程,他們甚至可以用于創(chuàng)建整個(gè)數(shù)據(jù)庫(kù)本身 - 完整的表,數(shù)據(jù),用戶(hù),等等。

Transact-SQL

SQL Server支持的、Transact-SQL作為腳本語(yǔ)言。 Transact-SQL是基于SQL(結(jié)構(gòu)化查詢(xún)語(yǔ)言),它是用于應(yīng)用程序和它們的數(shù)據(jù)庫(kù)之間的接口的編程語(yǔ)言。Transact-SQL是一個(gè)相對(duì)容易的語(yǔ)言學(xué)習(xí),我強(qiáng)烈建議熟悉它。在這里每當(dāng)指SQL腳本,意思就是一個(gè)Transact-SQL腳本。

SQL語(yǔ)句

SQL腳本通常由一個(gè)或多個(gè)“語(yǔ)句”。每個(gè)語(yǔ)句告訴SQL Server該怎么做。

SQL腳本可以包含許多語(yǔ)句。例如,SQL腳本可以包含一個(gè)語(yǔ)句創(chuàng)建一個(gè)表,另一份聲明將數(shù)據(jù)插入到該表,而另一份語(yǔ)句中,以選擇所有剛剛插入到表中的數(shù)據(jù)。事實(shí)上,SQL有一個(gè)用于那些確切的三項(xiàng)具體語(yǔ)句:CREATE語(yǔ)句,INSERT語(yǔ)句和SELECT語(yǔ)句。

一般來(lái)說(shuō),語(yǔ)句開(kāi)始使用想要執(zhí)行的任務(wù)的指令。如果你想創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)對(duì)象時(shí),聲明開(kāi)始后創(chuàng)建。我說(shuō):“一般來(lái)說(shuō)”,因?yàn)?,還有一些其他的點(diǎn)點(diǎn)滴滴,你可以在拋出一個(gè)SQL語(yǔ)句可能會(huì)及所希望的語(yǔ)句。

SQL語(yǔ)句示例

也許最簡(jiǎn)單的SQL語(yǔ)句是學(xué)習(xí)SELECT語(yǔ)句。下面是在其最簡(jiǎn)單的SELECT語(yǔ)句的一個(gè)例子:

?
SELECT * FROM Tasks

上面的語(yǔ)句從任務(wù)表中的選擇所有列。星號(hào)(*)的意思是“所有列”。上面的語(yǔ)句可以略作修改,只返回一個(gè)特定的列,我們可以添加一個(gè)WHERE子句來(lái)過(guò)濾數(shù)據(jù),只有那些我們感興趣的記錄:

?
SELECT TaskName FROM Tasks
WHERE StatusId = "3"

上述語(yǔ)句選擇從任務(wù)表中的TaskName列,但它只返回那些具有StatusId為3的記錄。值為3可能是“To Do”或“Done”,或不管它是什么,我們只希望它表示具體的意思。在我們的TaskTracker數(shù)據(jù)庫(kù)中,我們將創(chuàng)建一個(gè)新的表稱(chēng)為Status,我們將指定“3”是指什么(“1”和“2”又表示什么)。這些數(shù)字只是在StatusId字段中(我們指定為標(biāo)識(shí)列 - 一個(gè)自動(dòng)編號(hào))的值。每個(gè)這些數(shù)字將在StatusName字段相應(yīng)值將告訴我們實(shí)際上是什么狀態(tài)。

然后,一旦我們已經(jīng)創(chuàng)建了狀態(tài)表中,我們可以修改上面的SQL語(yǔ)句,以包括狀態(tài)表,以便我們可以編寫(xiě)為WHERE StatusName=“To Do”,而不是試圖記住“To Do”數(shù)字是什么。

但是,我們需要首先創(chuàng)建我們的Status表... 

使用SQL腳本創(chuàng)建表

下面是一個(gè)SQL腳本,將在我們的數(shù)據(jù)庫(kù)中另一個(gè)表- 一個(gè)名為Status表。如果不熟悉SQL它可能看起來(lái)有點(diǎn)怪異。 當(dāng)看到列及其相應(yīng)的數(shù)據(jù)類(lèi)型的名稱(chēng)是什么,那么也就對(duì)它有一些了解。在此腳本中,我們并不容許任何NULL字段(因此NOT NULL毗鄰每一列)。我們也創(chuàng)建了主鍵StatusId字段,我們?cè)O(shè)定的默認(rèn)值的dateCreated字段,使用(getdate())。

要運(yùn)行此腳本,請(qǐng)執(zhí)行以下操作:

  1. 腳本復(fù)制到剪貼板
  2. 在SQL Server管理套件,單擊工具欄上的新建查詢(xún)按鈕:
  3. 腳本粘貼到查詢(xún)窗口
  4. 點(diǎn)擊!執(zhí)行該工具欄上的按鈕:

一旦腳本運(yùn)行,你應(yīng)該看到一條消息,讀取命令已成功完成。

Screenshot of the New Query button

這里是腳本:

?
CREATE TABLE Status(
	StatusId int IDENTITY(1,1) NOT NULL,
	StatusName varchar(50) NOT NULL,
	DateCreated datetime NOT NULL CONSTRAINT DF_Status_DateCreated  DEFAULT (getdate()),
	CONSTRAINT PK_Status PRIMARY KEY CLUSTERED (StatusId)
)

鍵盤(pán)快捷鍵

注:也可以通過(guò)按F5鍵盤(pán)上運(yùn)行一個(gè)查詢(xún)。

另外,你甚至可以通過(guò)選擇要運(yùn)行的部分,然后按F5運(yùn)行查詢(xún)的一部分。這非常上包含大量的SQL語(yǔ)句的較大的腳本,但是,當(dāng)由于某種原因,只要運(yùn)行的一個(gè)或兩個(gè)(或甚至運(yùn)行所有這些,但只是一次一個(gè))。

通過(guò)SQL腳本添加數(shù)據(jù)

也可以通過(guò)SQL腳本添加數(shù)據(jù)。該腳本將使用INSERT語(yǔ)句將數(shù)據(jù)插入到指定的表。 你可以使用腳本插入數(shù)據(jù)到所有列在表中,或者只是那些指定的表。

下面的腳本將數(shù)據(jù)插入狀態(tài)表,然后選擇該數(shù)據(jù)(所以我們可以看到,它進(jìn)入了)。運(yùn)行此腳本,你做了上述腳本)以同樣的方式:

?
INSERT INTO Status (StatusName) VALUES ('To Do');
INSERT INTO Status (StatusName) VALUES ('In Progress');
INSERT INTO Status (StatusName) VALUES ('Done');

SELECT * FROM Status

這里是這個(gè)樣子的:

Screenshot SQL query results

正如你所看到的,查詢(xún)的結(jié)果顯示在底部窗格中。

交叉參考數(shù)據(jù)

現(xiàn)在,我們已經(jīng)得到了Status表,讓我們一值添加到任務(wù)表的StatusId字段中(還記得我們保留那個(gè)字段為空的所有記錄,因?yàn)槲覀冞€沒(méi)有Status表)。

所以我們?cè)黾又狄蝿?wù)表鏈接到Status表。 在任務(wù)表中的每個(gè)記錄現(xiàn)在將有一個(gè)StatusId,它的值可能是1,2或3(在狀態(tài)表的StatusId字段中匹配的值)。

要做到這一點(diǎn),我們需要使用UPDATE語(yǔ)句(因?yàn)槲覀冋诟掠涗?,而不是插入新的)?/p>

因此,事不宜遲,讓我們運(yùn)行下面的腳本:

?
UPDATE Tasks
SET StatusId='1'
WHERE TaskId='1';

UPDATE Tasks
SET StatusId='1'
WHERE TaskId='2';

UPDATE Tasks
SET StatusId='2'
WHERE TaskId='3';

UPDATE Tasks
SET StatusId='3'
WHERE TaskId='4';

UPDATE Tasks
SET StatusId='3'
WHERE TaskId='5';

UPDATE Tasks
SET StatusId='2'
WHERE TaskId='6';

UPDATE Tasks
SET StatusId='1'
WHERE TaskId='7';

SELECT * FROM Tasks

現(xiàn)在應(yīng)該看到其StatusId字段中填寫(xiě)的所有記錄您的任務(wù)表,完整。應(yīng)該是這樣的:

Screenshot SQL query results

合并腳本

事實(shí)上,我們可能只是很容易地結(jié)合上述所有腳本并運(yùn)行它們?yōu)橐惑w。我只保留了它們,才能分離出來(lái),使其更易于了解哪些部分做什么。

如果您想了解更多關(guān)于創(chuàng)建SQL語(yǔ)句,請(qǐng)看看SQL教程

區(qū)分大小寫(xiě)

SQL不區(qū)分大小寫(xiě)。所以下面的語(yǔ)句都是執(zhí)行同樣的事情:

  • SELECT * FROM TASKS
  • SELECT * FROM Tasks
  • Select * From Tasks
  • select * from tasks

數(shù)據(jù)庫(kù)管理

大多數(shù)的數(shù)據(jù)庫(kù)管理任務(wù)(如創(chuàng)建用戶(hù),備份等),可以在SSMS通過(guò)圖形用戶(hù)界面進(jìn)行編程,可以通過(guò)SQL腳本來(lái)執(zhí)行。本教程集中使用的圖形用戶(hù)界面,主要是因?yàn)樗ǔJ且粋€(gè)更容易為新用戶(hù)得到一個(gè)簡(jiǎn)單的入門(mén)。 當(dāng)你更熟悉SQL Server,就可以使用SQL腳本來(lái)執(zhí)行許多任務(wù),也可通過(guò)圖形用戶(hù)界面做自己的事情。

接下來(lái),我們看一下查詢(xún)?cè)O(shè)計(jì)。