日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

数据库原理与应用(SQL Server)笔记 第一章 数据定义语言和数据操纵语言

發布時間:2024/2/28 数据库 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据库原理与应用(SQL Server)笔记 第一章 数据定义语言和数据操纵语言 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 前言
  • 一、基本介紹
  • 二、在SQL里執行T-SQL語句
  • 三、數據定義語言(DDL)
    • (一)概述
    • (二)數據定義語言用于數據庫
      • 1、創建數據庫
      • 2、修改數據庫
      • 3、使用數據庫
      • 4、刪除數據庫
      • 5、查看數據庫
    • (三)數據定義語言用于表
      • 1、創建數據表
        • (1)使用CREATE TABLE 語句創建數據表
        • (2)使用CREATE TABLE 語句創建臨時數據表和全局臨時表
        • (3)由其他表創建新數據表
      • 2、修改數據表
      • 3、刪除數據表
  • 四、數據操縱語言(DML)
    • (一)概述
    • (二)插入語句
    • (三)修改語句
    • (四)刪除語句
      • 1、DELETE語句
      • 2、TRUNCATE TABLE語句
  • 結語


前言

本教程使用的是SQL Server 2008 R2,如嫌麻煩在網上找下載地址有需要的小伙伴可以直接私信我,我可以把壓縮包以及安裝教程直接發給你。(打開界面如下圖)
本文章的篇幅很長,其中涉及的語句以及代碼較多,建議最好有參考書做參考學習。


一、基本介紹

首先我們要知道所謂的T-SQL 即 Transact-SQL,是 SQL 在 Microsoft SQL Server 上的增強版,它是用來讓應用程序與 SQL Server 溝通的主要語言。T-SQL 提供了標準 SQL 的 DDL 和 DML 功能,加上延伸的函數、系統預存程序以及程式設計結構(例如 IF 和 WHILE)讓程式設計更有彈性。

在T-SQL中,語法規定不區分大小寫,也就是代碼不區分大小寫。

另外我們要知道,使用SQL創建數據庫和創建表有兩種方式,分別是使用SSMS方式創建和使用T-SQL語句創建,這里我們推薦掌握使用T-SQL語句創建這種方式,但也要了解如何使用SSMS方式創建的一些基本操作,畢竟是圖形化操作相較簡單,使用SSMS方式創建數據庫在很多網頁以及參考書書上都能找到,這里就不再累述。所以我們以下的教程僅使用T-SQL語句來介紹T-SQL的一些操作并圍繞語句來講述。

二、在SQL里執行T-SQL語句

進入SQL后,首先我們創建一個數據庫,右鍵“數據庫”,點擊“新建數據庫”,設置好數據庫的名稱以及數據庫文件的一些設置。
創建好后我們點擊左上角的“新建查詢”,這就是寫T-SQL語句的地方。

這里可以選擇在哪個數據庫中進行新建查詢。

三、數據定義語言(DDL)

(一)概述

數據定義語言用于對數據庫和表進行創建、修改和刪除,即DDL包括CREATE、ALTER、DROP等語句。

(二)數據定義語言用于數據庫

1、創建數據庫

(1)創建數據庫的格式:
CREATE DATABASE <數據庫名>

CREATE DATABASE <數據庫名> ON (<數據庫文件和文件組的屬性> ) LOG ON (<日志文件屬性> )

(2)其中數據庫文件和文件組的屬性以及日志文件屬性的格式如下:

{NAME=<邏輯名稱>,FILENAME=<存儲路徑(物理名稱)>,SIZE=<初始大小>,MAXSIZE=<最大容量>,FILEGROWTH=<增量[容量%]>, }

(3)接下來我們通過一個例子來總結剛剛學的東西:

e.g.創建一個數據庫名為MyStore,其中主數據文件為15MB,最大大小為100MB,按2MB增長;還有一個文件組名為mytest,包括文件test_0,文件初始大小為5MB,最大為20MB,按10%增長;另有一個日志文件,大小為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% )

分析:
點“執行”按鈕后,下方顯示完成,這時候我們可能在左邊的對象資源管理器中并未看到剛剛創建的數據庫,別著急,刷新一下管理器如果還沒出現可能是因為版本的問題。這時我們退出保存好剛剛創建的庫,此時桌面出現了我們創建的衍生文件,然后重新進入SQL Server,這時候就出來了MyStore我們所創建的數據庫,創建完成。

2、修改數據庫

(1)修改數據庫的格式:
ALTER DATABASE <數據庫名>

ALTER DATABASE <數據庫名> (<增加(ADD),刪除(REMOVE),更改(MDOIFY)> )

(2)其中增加,刪除,更改的格式如下:

{ADD FILE <文件>[,...n][TO FILEGROUP 文件組],ADD LOG FILE <日志文件>[,...n],ADD FILEGROUP <文件組>,REMOVE FILE <文件>,REMOVE FILEGROUP <文件組>,MDOIFY FILE <文件>,MDOIFY NAME= <新數據庫名>,MDOIFY FILEGROUP <文件組>, }

(3)然后進行操作跟前面的一樣,類似NAME、SIZE、FILEGROWTH等等。

e.g.我們來看一個例子,例如要在數據庫Store0中,增加一個數據文件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、使用數據庫

當我們要使用數據庫時,我們調用USE語句,
語句格式如下:
USE <數據庫名>

注:這里我們要注意,USE語句只用在第一次打開數據庫時使用,后續操作都是作用于該數據庫中。如果我們要另外使用其它數據庫,則需重新使用USE語句來使用另一個數據庫。具體USE語句的使用我們在之后的創建表中介紹到。

4、刪除數據庫

當我們不需要數據庫時,調用DROP語句,
語句格式如下:
DROP DATABASE <數據庫名>

5、查看數據庫

當我們要查看一個所創建的數據庫時,調用系統存儲過程SP_HELPDP即可查看數據庫信息,語句格式如下:
SP_HELPDP <數據庫名>

例如我們查看“1.創建數據庫(3)”例子當中的數據庫MyStore,點擊新建查詢,輸入框輸入SP_HELPDP MyStore,即可查到該數據庫的相關信息:

(三)數據定義語言用于表

1、創建數據表

(1)使用CREATE TABLE 語句創建數據表

①創建數據庫的格式:
CREATE TABLE <數據表名>

CREATE TABLE <數據表名> (<列定義> )

②其中列定義的格式如下:

{列名 數據類型 NULL/NOT NULL (AS 計算字段的字段值表達式)[,...n]<表約束> }

③現在我們通過一個簡單的例子來總結剛剛所講到的:

e.g.下圖給出一個表,使用sql語句創建該數據表:

在SQL Server查詢分析器中輸入以下語句:

CREATE TABLE OrderDetail(OrderID int NOT NULL,ProductID char(6) NOT NULL,Quantity int NULL,PRIMARY KEY(OrderID,ProductID) )

(2)使用CREATE TABLE 語句創建臨時數據表和全局臨時表

①臨時表的創建在CREATE TABLE語句后面加上#savg ,即表示創建了一個穩定臨時表,此表只能由創建者使用。
格式如下:
CREATE TABLE #savg

②若在CREATE TABLE 語句后面再加上兩個’#’,此時表示的是創建了一個全局臨時表,它可以由所有用戶使用。
格式如下:
CREATE TABLE ##savg

注:臨時表在斷開與數據庫連接時會被服務器刪除。

(3)由其他表創建新數據表

由其他表創建新數據表即使用 SELECT INTO 語句創建一個新數據表,并用SELECT 的結果填充該表。
語句格式:
SELECT <列名> INTO <數據表1> FROM <數據表2>

即使用數據表2的列名來創建新的數據表1。

e.g.在數據庫Test_0中,使用SQL語句由student1表創建student2表,其中student2表包括列名student2ID、student2Name、student2Class:

USE Test_0 SELECT student2ID,student2Name,student2Class INTO student2 FROM student1

2、修改數據表

當我們要修改數據表時,我們使用ALTER TABLE語句,
語句格式如下:
ALTER TABLE <數據表名>

ALTER TABLE <數據表名> (ALTER COLUMN<列名> <數據類型>.../*修改表中指定列的屬性*/ADD<列名> <數據類型>.../*增加表中的列*/DROP<列名> <數據類型>.../*刪除表中的列或者約束*/ )

注意:在使用ALTER TABLE語句中,一次只能包含ALTER COLUMN、ADD、DROP子句中的一項。

e.g.在數據庫Test_0中,使用SQL語句,在student新增加一列tel char(15):

USE Test_0 ALTER TABLE studentADD tel char(15)

3、刪除數據表

當我們要刪除數據表時,我們使用DROP TABLE語句,
語句格式如下:
DROP TABLE <數據表名>

e.g.已知數據庫School,刪除該數據庫中的數據表class。

USE School DROP TABLE class

四、數據操縱語言(DML)

(一)概述

數據操縱語句是用于向表中插入記錄、修改記錄以及刪除記錄的語句,即數據操作語句DML包括INSERT、UPDATE、DELETE等語句。

(二)插入語句

INSERT語句用于向向數據表或視圖中插入指定的各列值的行。
語句格式:
INSERT [ INTO ] <數據表名> [(字段列表)] VALUES (數據列表) [,…n]
注:如果插入的數據按照表中各列的列名順序列出這些值,那就可以省略列名;VALUES子句后接多行的值用逗號隔開。

e.g.已知數據庫School,使用INSERT語句向student表中插入一個學生記錄:“studentID:001、name:yyy、sex:男、address:小區25號”。

USE School INSERT INTO student(studentID,name,sex,address) VALUES(001,'yyy','男','小區25號'

顯式指定列名表:顯示列名表可用于插入值少于列的個數或列的順序不同的數據,即我們可以這樣添加,不用加上列表名,但要注意順序:

USE School INSERT INTO student VALUES001,'yyy','男','小區25號'

(三)修改語句

UPDATE語句用于修改數據表或視圖中特定記錄或列的數據,即將表中滿足查詢條件的記錄中由SET指定的各列的列值設置為SET指定的新值進行修改,然而WHERE可無,即不使用WHERE子句時更新所有記錄的指定列值。
語句格式:
UPDATE < 數據表名 >
SET { 列名 = 表達式 [,…n] }
(WHERE < 查詢條件 >)

e.g.已知數據庫School,使用UPDATE語句修改在student_1表中,studentID為202119001的學生A的地址address改為“學區01棟”,并將其課程號為“002”的課程的ctype值改為“必修”以及他的學分ccredit加1。

USE School UPDATE student_1 SET address='學區01棟',ctype='必修',ccredit=ccredit+1 WHERE studentID=202119001

(四)刪除語句

1、DELETE語句

DELETE語句用于刪除數據表或視圖中的一行或多行記錄,即將指定數據表或者視圖中刪除滿足查詢條件的行,若省略WHERE子句,即刪除所有行。
語句格式:
DELETE < 數據表名 >
(WHERE < 查詢條件> )

e.g.已知數據庫School,使用DELETE語句向student表中學號studentID為001以及ctype值為NULL的學生記錄。

USE School DELETE student WHERE studentID=001 WHERE ctype IS NULL

2、TRUNCATE TABLE語句

TRUNCATE TABLE語句與剛剛的DELETE語句有點像,這里我們先比較DELETE語句和TRUNCATE TABLE語句的區別。首先DELETE語句是一次刪除一條記錄,其每次操作都記錄在事務日志中,速度慢;而TRUNCATE TABLE語句一次刪除所有記錄,并不計入事務日志,相較于DELETE語句更快。

語句格式:
TRUNCATE TABLE <數據表名>

e.g.已知數據庫School,刪除當前數據庫中表room_01和表room_02中的所有記錄。

TRUNCATE TABLE School SELECT * FROM room_01 SELECT * FROM room_02

結語

以上就是本次數據庫原理與應用(SQL Server)教程的全部內容,感謝您的閱讀和支持,篇幅較長,若有表述或者代碼中的不當之處,望指出!您的指出和建議能給作者帶來很大的動力!!!

總結

以上是生活随笔為你收集整理的数据库原理与应用(SQL Server)笔记 第一章 数据定义语言和数据操纵语言的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。