一、創建刪除數據數據庫
1、T-SQL語句創建數據庫語法如下:
CREATE DATABASE 數據庫名 ON [PRINARY] ( <文件參數>[,...n] [<文件組參數>] ) [LOG ON] ( {<日志文件參數>}[,...n] )
文件的具體參數語法如下:
( [name=邏輯文件名,] filename=物理文件名 [,size=初始大小]
[,maxsize={最大容量|UNLIMITED}]
[,filegrowth=增長量] )
示例:
需求:創建一個people數據庫,有一個10MB和一個20MB的數據文件people1.mdf,people2.ndf,還有兩個10MB的日志文件。
主文件people1由primary指定,兩個數據文件的最大尺寸為無限大和100MB,增長速度為10%和1MB。日志文件people1_log和
people2_log,物理文件名為people1_log.ldf和people2_log.ldf,最大尺寸均為50MB,文件增長速度均為1MB。
CREATE DATABASE people ON PRIMARY ( NAME='people1', FILENAME='F:\數據庫\練習\people1.mdf', SIZE=10MB, FILEGROWTH=10% ), ( NAME='people2', FILENAME='F:\數據庫\練習\people2.ndf', SIZE=20MB, MAXSIZE=100MB, FILEGROWTH=1MB ) LOG ON ( NAME='people1_log', FILENAME='F:\數據庫\練習\people1_log.ldf', SIZE=10MB, MAXSIZE=50MB, FILEGROWTH=1MB ), ( NAME='people2_log', FILENAME='F:\數據庫\練習\people2_log.ldf', SIZE=10MB, MAXSIZE=50MB, FILEGROWTH=1MB )
2、刪除數據庫語法如下:
DROP DATABASE 數據庫名
使用時需檢查數據庫是否存在
USE master GO
IF EXISTS(SELECT * FROM sysdatabases WHERE name='people') DROP DATABASE people
注:EXISTS(查詢語句)用來檢測某個查詢是否存在。
二、創建和刪除表
1、創建表的語法如下:
CREATE TABLE 表名 ( 字段1 數據類型 列的特征, 字段2 數據類型 列的特征, ... )
示例:
需求:創建學員信息表peoInfo。
USE people GO
CREATE TABLE peoInfo ( peoName VARCHAR(20) NOT NULL, peoNo CHAR(6) NOT NULL, peoAge INT NOT NULL, peoID NUMERIC(18,0), peoSeat SMALLINT IDENTITY (1,1), peoAddress TEXT )
注:列屬性"IDENTITY(起始值,遞增值)"表示"stuSeat"列為自動編號,也稱為標識列。
需求:創建成績表peoMarks
USE people GO
CREATE TABLE peoMarks ( ExamNo CHAR(7) NOT NULL, --考號
peoNO CHAR(6) NOT NULL, --學號
writtenExam INT NOT NULL, --筆試成績
LabEaxm INT NOT NULL --機試成績
)
2、刪除表的語法如下:
DROP TABLE 表名
例如:
DROP TABLE peoInfo
三、使用SQL語句創建和刪除約束
約束的目的是確保表中數據的完整性。
常用的約束類型:
- 主鍵約束(Primary Key constraint):要求主鍵列數據唯一,並且不允許為空。
- 唯一約束(Unique Constraint):要求該列唯一,允許為空,但只能出現一個空值。
- 檢查約束(Check Constraint):某列取值范圍顯示、格式限制等,如有關年齡的約束。
- 默認約束(Default Constraint):某列的默認值,如我們的性別默認為“男”。
- 外鍵約束(Foreign Key Constraint):用於在兩表之間建立關系,需要指定引用主表的那一列。
1、添加約束
添加約束的語法如下:
ALTER TABLE 表名 ADD CONSTRAINT 約束名 約束類型 具體的約束說明
示例:
需求:
為peoNo字段添加主鍵約束,約束名取名為"PK_peoNo",
為peoID字段添加唯一約束,約束名取名為"UQ_peoID",
為peoAddress字段添加默認約束,約束名取名為"DF_peoAddress",
為peoAge字段添加檢查約束,約束名取名為"CK_peoAge",
為peoMarks字段添加外鍵約束,約束名取名為"FK_peoNO",
/*--添加主鍵約束--*/
ALTER TABLE peoInfo ADD CONSTRAINT PK_peoNo PRIMARY KEY (peoNo) /*--添加唯一約束--*/
ALTER TABLE peoInfo ADD CONSTRAINT UQ_peoID UNIQUE (peoID) /*--添加默認約束--*/
ALTER TABLE peoInfo ADD CONSTRAINT DF_peoAddress DEFAULT ('地址不詳') FOR peoAddress /*--添加檢查約束--*/
ALTER TABLE peoInfo ADD CONSTRAINT CK_stuAge CHECK(peoAge BETWEEN 15 AND 40) /*--添加外鍵約束--*/
ALTER TABLE peoMarks ADD CONSTRAINT FK_peoNo FOREIGN KEY(peoNo) REFERENCES peoInfo(peoNo)
2、刪除約束
刪除約束的語法如下:
ALTER TABLE 表名 DROP CONSTRAINT 約束名
示例:
/*--刪除peoInfo表中地址默認約束的語句--*/
ALTER TABLE peoInfo DROP CONSTRAINT DF_peoAddress