数据库原理与应用(SQL Server)笔记 第一章 数据定义语言和数据操纵语言
文章目錄
- 前言
- 一、基本介紹
- 二、在SQL里執(zhí)行T-SQL語句
- 三、數(shù)據(jù)定義語言(DDL)
- (一)概述
- (二)數(shù)據(jù)定義語言用于數(shù)據(jù)庫
- 1、創(chuàng)建數(shù)據(jù)庫
- 2、修改數(shù)據(jù)庫
- 3、使用數(shù)據(jù)庫
- 4、刪除數(shù)據(jù)庫
- 5、查看數(shù)據(jù)庫
- (三)數(shù)據(jù)定義語言用于表
- 1、創(chuàng)建數(shù)據(jù)表
- (1)使用CREATE TABLE 語句創(chuàng)建數(shù)據(jù)表
- (2)使用CREATE TABLE 語句創(chuàng)建臨時(shí)數(shù)據(jù)表和全局臨時(shí)表
- (3)由其他表創(chuàng)建新數(shù)據(jù)表
- 2、修改數(shù)據(jù)表
- 3、刪除數(shù)據(jù)表
- 四、數(shù)據(jù)操縱語言(DML)
- (一)概述
- (二)插入語句
- (三)修改語句
- (四)刪除語句
- 1、DELETE語句
- 2、TRUNCATE TABLE語句
- 結(jié)語
前言
本教程使用的是SQL Server 2008 R2,如嫌麻煩在網(wǎng)上找下載地址有需要的小伙伴可以直接私信我,我可以把壓縮包以及安裝教程直接發(fā)給你。(打開界面如下圖)
本文章的篇幅很長,其中涉及的語句以及代碼較多,建議最好有參考書做參考學(xué)習(xí)。
一、基本介紹
首先我們要知道所謂的T-SQL 即 Transact-SQL,是 SQL 在 Microsoft SQL Server 上的增強(qiáng)版,它是用來讓應(yīng)用程序與 SQL Server 溝通的主要語言。T-SQL 提供了標(biāo)準(zhǔn) SQL 的 DDL 和 DML 功能,加上延伸的函數(shù)、系統(tǒng)預(yù)存程序以及程式設(shè)計(jì)結(jié)構(gòu)(例如 IF 和 WHILE)讓程式設(shè)計(jì)更有彈性。
在T-SQL中,語法規(guī)定不區(qū)分大小寫,也就是代碼不區(qū)分大小寫。
另外我們要知道,使用SQL創(chuàng)建數(shù)據(jù)庫和創(chuàng)建表有兩種方式,分別是使用SSMS方式創(chuàng)建和使用T-SQL語句創(chuàng)建,這里我們推薦掌握使用T-SQL語句創(chuàng)建這種方式,但也要了解如何使用SSMS方式創(chuàng)建的一些基本操作,畢竟是圖形化操作相較簡單,使用SSMS方式創(chuàng)建數(shù)據(jù)庫在很多網(wǎng)頁以及參考書書上都能找到,這里就不再累述。所以我們以下的教程僅使用T-SQL語句來介紹T-SQL的一些操作并圍繞語句來講述。
二、在SQL里執(zhí)行T-SQL語句
進(jìn)入SQL后,首先我們創(chuàng)建一個(gè)數(shù)據(jù)庫,右鍵“數(shù)據(jù)庫”,點(diǎn)擊“新建數(shù)據(jù)庫”,設(shè)置好數(shù)據(jù)庫的名稱以及數(shù)據(jù)庫文件的一些設(shè)置。
創(chuàng)建好后我們點(diǎn)擊左上角的“新建查詢”,這就是寫T-SQL語句的地方。
這里可以選擇在哪個(gè)數(shù)據(jù)庫中進(jìn)行新建查詢。
三、數(shù)據(jù)定義語言(DDL)
(一)概述
數(shù)據(jù)定義語言用于對數(shù)據(jù)庫和表進(jìn)行創(chuàng)建、修改和刪除,即DDL包括CREATE、ALTER、DROP等語句。
(二)數(shù)據(jù)定義語言用于數(shù)據(jù)庫
1、創(chuàng)建數(shù)據(jù)庫
(1)創(chuàng)建數(shù)據(jù)庫的格式:
CREATE DATABASE <數(shù)據(jù)庫名>
(2)其中數(shù)據(jù)庫文件和文件組的屬性以及日志文件屬性的格式如下:
{NAME=<邏輯名稱>,FILENAME=<存儲路徑(物理名稱)>,SIZE=<初始大小>,MAXSIZE=<最大容量>,FILEGROWTH=<增量[容量%]>, }(3)接下來我們通過一個(gè)例子來總結(jié)剛剛學(xué)的東西:
e.g.創(chuàng)建一個(gè)數(shù)據(jù)庫名為MyStore,其中主數(shù)據(jù)文件為15MB,最大大小為100MB,按2MB增長;還有一個(gè)文件組名為mytest,包括文件test_0,文件初始大小為5MB,最大為20MB,按10%增長;另有一個(gè)日志文件,大小為2MB,最大大小為10MB,按5%增長。
在SQL Server查詢分析器中輸入以下語句:
CREATE DATABASE MyStore ON PRIMARY (NAME='MyStore',FILENAME='C:\Users\myj\Desktop\MyStore.mdf',SIZE=15MB,MAXSIZE=20MB,FILEGROWTH=2MB ), FILEGROUP mytest (NAME='MyStore_test0',FILENAME='C:\Users\myj\Desktop\MyStore_test0.ndf',SIZE=5MB,MAXSIZE=20MB,FILEGROWTH=10% ) LOG ON (NAME='MyStore_log',FILENAME='C:\Users\myj\Desktop\MyStore_log.ldf',SIZE=2MB,MAXSIZE=10MB,FILEGROWTH=5% )分析:
點(diǎn)“執(zhí)行”按鈕后,下方顯示完成,這時(shí)候我們可能在左邊的對象資源管理器中并未看到剛剛創(chuàng)建的數(shù)據(jù)庫,別著急,刷新一下管理器如果還沒出現(xiàn)可能是因?yàn)榘姹镜膯栴}。這時(shí)我們退出保存好剛剛創(chuàng)建的庫,此時(shí)桌面出現(xiàn)了我們創(chuàng)建的衍生文件,然后重新進(jìn)入SQL Server,這時(shí)候就出來了MyStore我們所創(chuàng)建的數(shù)據(jù)庫,創(chuàng)建完成。
2、修改數(shù)據(jù)庫
(1)修改數(shù)據(jù)庫的格式:
ALTER DATABASE <數(shù)據(jù)庫名>
(2)其中增加,刪除,更改的格式如下:
{ADD FILE <文件>[,...n][TO FILEGROUP 文件組],ADD LOG FILE <日志文件>[,...n],ADD FILEGROUP <文件組>,REMOVE FILE <文件>,REMOVE FILEGROUP <文件組>,MDOIFY FILE <文件>,MDOIFY NAME= <新數(shù)據(jù)庫名>,MDOIFY FILEGROUP <文件組>, }(3)然后進(jìn)行操作跟前面的一樣,類似NAME、SIZE、FILEGROWTH等等。
e.g.我們來看一個(gè)例子,例如要在數(shù)據(jù)庫Store0中,增加一個(gè)數(shù)據(jù)文件Store_data,大小為10MB,最大為50MB,按5MB增長。
在SQL Server查詢分析器中輸入以下語句:
ALTER DATABASE Store0 ADD FILE (NAME=Store_data',FILENAME='C:\Users\myj\Desktop\Store_data.ndf',SIZE=10MB,MAXSIZE=50MB,FILEGROWTH=5MB )3、使用數(shù)據(jù)庫
當(dāng)我們要使用數(shù)據(jù)庫時(shí),我們調(diào)用USE語句,
語句格式如下:
USE <數(shù)據(jù)庫名>
注:這里我們要注意,USE語句只用在第一次打開數(shù)據(jù)庫時(shí)使用,后續(xù)操作都是作用于該數(shù)據(jù)庫中。如果我們要另外使用其它數(shù)據(jù)庫,則需重新使用USE語句來使用另一個(gè)數(shù)據(jù)庫。具體USE語句的使用我們在之后的創(chuàng)建表中介紹到。
4、刪除數(shù)據(jù)庫
當(dāng)我們不需要數(shù)據(jù)庫時(shí),調(diào)用DROP語句,
語句格式如下:
DROP DATABASE <數(shù)據(jù)庫名>
5、查看數(shù)據(jù)庫
當(dāng)我們要查看一個(gè)所創(chuàng)建的數(shù)據(jù)庫時(shí),調(diào)用系統(tǒng)存儲過程SP_HELPDP即可查看數(shù)據(jù)庫信息,語句格式如下:
SP_HELPDP <數(shù)據(jù)庫名>
例如我們查看“1.創(chuàng)建數(shù)據(jù)庫(3)”例子當(dāng)中的數(shù)據(jù)庫MyStore,點(diǎn)擊新建查詢,輸入框輸入SP_HELPDP MyStore,即可查到該數(shù)據(jù)庫的相關(guān)信息:
(三)數(shù)據(jù)定義語言用于表
1、創(chuàng)建數(shù)據(jù)表
(1)使用CREATE TABLE 語句創(chuàng)建數(shù)據(jù)表
①創(chuàng)建數(shù)據(jù)庫的格式:
CREATE TABLE <數(shù)據(jù)表名>
②其中列定義的格式如下:
{列名 數(shù)據(jù)類型 NULL/NOT NULL (AS 計(jì)算字段的字段值表達(dá)式)[,...n]<表約束> }③現(xiàn)在我們通過一個(gè)簡單的例子來總結(jié)剛剛所講到的:
e.g.下圖給出一個(gè)表,使用sql語句創(chuàng)建該數(shù)據(jù)表:
在SQL Server查詢分析器中輸入以下語句:
(2)使用CREATE TABLE 語句創(chuàng)建臨時(shí)數(shù)據(jù)表和全局臨時(shí)表
①臨時(shí)表的創(chuàng)建在CREATE TABLE語句后面加上#savg ,即表示創(chuàng)建了一個(gè)穩(wěn)定臨時(shí)表,此表只能由創(chuàng)建者使用。
格式如下:
CREATE TABLE #savg
②若在CREATE TABLE 語句后面再加上兩個(gè)’#’,此時(shí)表示的是創(chuàng)建了一個(gè)全局臨時(shí)表,它可以由所有用戶使用。
格式如下:
CREATE TABLE ##savg
注:臨時(shí)表在斷開與數(shù)據(jù)庫連接時(shí)會被服務(wù)器刪除。
(3)由其他表創(chuàng)建新數(shù)據(jù)表
由其他表創(chuàng)建新數(shù)據(jù)表即使用 SELECT INTO 語句創(chuàng)建一個(gè)新數(shù)據(jù)表,并用SELECT 的結(jié)果填充該表。
語句格式:
SELECT <列名> INTO <數(shù)據(jù)表1> FROM <數(shù)據(jù)表2>
即使用數(shù)據(jù)表2的列名來創(chuàng)建新的數(shù)據(jù)表1。
e.g.在數(shù)據(jù)庫Test_0中,使用SQL語句由student1表創(chuàng)建student2表,其中student2表包括列名student2ID、student2Name、student2Class:
USE Test_0 SELECT student2ID,student2Name,student2Class INTO student2 FROM student12、修改數(shù)據(jù)表
當(dāng)我們要修改數(shù)據(jù)表時(shí),我們使用ALTER TABLE語句,
語句格式如下:
ALTER TABLE <數(shù)據(jù)表名>
注意:在使用ALTER TABLE語句中,一次只能包含ALTER COLUMN、ADD、DROP子句中的一項(xiàng)。
e.g.在數(shù)據(jù)庫Test_0中,使用SQL語句,在student新增加一列tel char(15):
USE Test_0 ALTER TABLE studentADD tel char(15)3、刪除數(shù)據(jù)表
當(dāng)我們要?jiǎng)h除數(shù)據(jù)表時(shí),我們使用DROP TABLE語句,
語句格式如下:
DROP TABLE <數(shù)據(jù)表名>
e.g.已知數(shù)據(jù)庫School,刪除該數(shù)據(jù)庫中的數(shù)據(jù)表class。
USE School DROP TABLE class四、數(shù)據(jù)操縱語言(DML)
(一)概述
數(shù)據(jù)操縱語句是用于向表中插入記錄、修改記錄以及刪除記錄的語句,即數(shù)據(jù)操作語句DML包括INSERT、UPDATE、DELETE等語句。
(二)插入語句
INSERT語句用于向向數(shù)據(jù)表或視圖中插入指定的各列值的行。
語句格式:
INSERT [ INTO ] <數(shù)據(jù)表名> [(字段列表)] VALUES (數(shù)據(jù)列表) [,…n]
注:如果插入的數(shù)據(jù)按照表中各列的列名順序列出這些值,那就可以省略列名;VALUES子句后接多行的值用逗號隔開。
e.g.已知數(shù)據(jù)庫School,使用INSERT語句向student表中插入一個(gè)學(xué)生記錄:“studentID:001、name:yyy、sex:男、address:小區(qū)25號”。
USE School INSERT INTO student(studentID,name,sex,address) VALUES(001,'yyy','男','小區(qū)25號')顯式指定列名表:顯示列名表可用于插入值少于列的個(gè)數(shù)或列的順序不同的數(shù)據(jù),即我們可以這樣添加,不用加上列表名,但要注意順序:
USE School INSERT INTO student VALUES(001,'yyy','男','小區(qū)25號')(三)修改語句
UPDATE語句用于修改數(shù)據(jù)表或視圖中特定記錄或列的數(shù)據(jù),即將表中滿足查詢條件的記錄中由SET指定的各列的列值設(shè)置為SET指定的新值進(jìn)行修改,然而WHERE可無,即不使用WHERE子句時(shí)更新所有記錄的指定列值。
語句格式:
UPDATE < 數(shù)據(jù)表名 >
SET { 列名 = 表達(dá)式 [,…n] }
(WHERE < 查詢條件 >)
e.g.已知數(shù)據(jù)庫School,使用UPDATE語句修改在student_1表中,studentID為202119001的學(xué)生A的地址address改為“學(xué)區(qū)01棟”,并將其課程號為“002”的課程的ctype值改為“必修”以及他的學(xué)分ccredit加1。
USE School UPDATE student_1 SET address='學(xué)區(qū)01棟',ctype='必修',ccredit=ccredit+1 WHERE studentID=202119001(四)刪除語句
1、DELETE語句
DELETE語句用于刪除數(shù)據(jù)表或視圖中的一行或多行記錄,即將指定數(shù)據(jù)表或者視圖中刪除滿足查詢條件的行,若省略WHERE子句,即刪除所有行。
語句格式:
DELETE < 數(shù)據(jù)表名 >
(WHERE < 查詢條件> )
e.g.已知數(shù)據(jù)庫School,使用DELETE語句向student表中學(xué)號studentID為001以及ctype值為NULL的學(xué)生記錄。
USE School DELETE student WHERE studentID=001 WHERE ctype IS NULL2、TRUNCATE TABLE語句
TRUNCATE TABLE語句與剛剛的DELETE語句有點(diǎn)像,這里我們先比較DELETE語句和TRUNCATE TABLE語句的區(qū)別。首先DELETE語句是一次刪除一條記錄,其每次操作都記錄在事務(wù)日志中,速度慢;而TRUNCATE TABLE語句一次刪除所有記錄,并不計(jì)入事務(wù)日志,相較于DELETE語句更快。
語句格式:
TRUNCATE TABLE <數(shù)據(jù)表名>
e.g.已知數(shù)據(jù)庫School,刪除當(dāng)前數(shù)據(jù)庫中表room_01和表room_02中的所有記錄。
TRUNCATE TABLE School SELECT * FROM room_01 SELECT * FROM room_02結(jié)語
以上就是本次數(shù)據(jù)庫原理與應(yīng)用(SQL Server)教程的全部內(nèi)容,感謝您的閱讀和支持,篇幅較長,若有表述或者代碼中的不當(dāng)之處,望指出!您的指出和建議能給作者帶來很大的動力!!!
總結(jié)
以上是生活随笔為你收集整理的数据库原理与应用(SQL Server)笔记 第一章 数据定义语言和数据操纵语言的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据库原理与应用(SQL Server)
- 下一篇: C++编程练习:设计一个银行账户类,包含