數據庫管理
創建數據庫
-
Window系統下創建文件夾D:\JXGLSYS\DATA
-
打開Microsoft SQL Server Managemant Studio集成環境窗口,單擊“新建查詢”
-
輸入命令(以績效管理系統JXGL舉例)
CREATE DATABASE JXGL --創建數據庫JXGL ON ( NAME = JXGL, --用來定義數據庫的邏輯名稱,可用於T-SQL代碼中引用數據庫 FILENAME = 'D:\JXGLSYS\DATA\JXGL.mdf', --用於定義數據庫文件在硬盤上的存放路徑與文件名稱 SIZE = 5, --定義數據文件的初始大小 FILEGROWTH = 1 --定義文件增長的遞增量 ) LOG ON ( NAME = JXGL_log, FILENAME = 'D:\JXGLSYS\DATA\JXGL_log.ldf', SIZE = 2, MAXSIZE = 20, --用於設置數據庫允許達到的最大長度 FILEGROWTH = 10% --定義文件增長的遞增方式 )
-
運行,彈出窗口,創建成功
數據庫更名
--新建查詢
EXEC sp_renamedb <原有數據庫名>,<修改數據庫名>
刪除數據庫
--新建查詢
DROP DATABASE <數據庫名>
數據表管理
創建表
--新建查詢
USE <數據庫名> --在數據庫中操作
CREATE TABLE <表名> --創建表
(
<列名1> <數據類型> <列級完整性約束>,
<列名2> <數據類型> <列級完整性約束>,
.....
)
[ON <filegroup>|<"default">] --指定default或者沒有指定ON,存儲於默認文件夾
列級完整性約束
-
**默認值約束——DEFAULT 常量表達式 **
若在表中定義了默認值約束,用戶在插入新的數據行時,如果該行沒有指定數據,那么系統將默認值賦給該列,如果我們不設置默認值,系統默認為NULL。
-
非空值約束——NULL/NO NULL
-
**主鍵約束——PRIMARY KEY **
主鍵列不能為空
-
外鍵約束——FOREIGN KEY REFERENCES <父表名>(主鍵列名)
-
唯一性約束——UNIQUE
唯一約束確保表中的一列數據沒有相同的值。與主鍵約束類似,唯一約束也強制唯一性,但唯一約束用於非主鍵的一列或者多列的組合,且一個表可以定義多個唯一約束。
-
檢查約束——CHECK (<邏輯表達式>)
Check約束通過邏輯表達式來判斷數據的有效性,用來限制輸入一列或多列的值的范圍。在列中更新數據時,所要輸入的內容必須滿足Check約束的條件,否則將無法正確輸入。
例子
USE JXGL --在JXGL數據庫中操作
CREATE TABLE 學生 --創建表學生
(
學號 varchar(20) PRIMARY KEY, --設置主鍵
姓名 varchar(8) NOT NULL, --設置非空
性別 char(2) NOT NULL,
生日 date,
系編號 varchar(10) DEFAULT '001' --設置默認值001
)
CREATE TABLE 教師
(
教師編號 varchar(20) PRIMARY KEY,
姓名 varchar(8) NOT NULL,
職稱 varchar(10) NOT NULL,
性別 char(2) NOT NULL
CHECK(性別 in('男','女')), --CHECK約束
系編號 varchar(10) NOT NULL
)
CREATE TABLE 課程
(
課程號 varchar(10) PRIMARY KEY,
課程名 varchar(20) NOT NULL,
學分 float NOT NULL,
先修課 varchar(20)
)
CREATE TABLE 選修
(
學號 varchar(20) FOREIGN KEY REFERENCES 學生(學號),
課程號 varchar(10) FOREIGN KEY REFERENCES 課程(課程號),
成績 float NOT NULL,
)
刪除表
USE <數據庫名>
DROP TABLE <表名>
修改表結構
增加列
ALTER TABLE <表名>
ADD <列名1> <數據類型> <約束>,
ADD <列名2> <數據類型> <約束>
刪除列
ALTER TABLE <表名>
DROP COLUMN <列名>
修改列
ALTER TABLE <表名>
ALTER COLUMN <列名> <數據結構> <約束>
增加約束
ALTER TABLE <表名>
ADD CONSTRANT <約束名> <約束>
刪除約束
ALTER TABLE <表名>
DROP CONSTRAINT <約束名>
例子:增加列
USE JXGL
ALTER TABLE 課程
ADD 類別 varchar(10) NOT NULL,
例子:增加約束
USE JXGL
ALTER TABLE 學生
ADD CONSTRAINT CK_學生 check(性別 in('男','女'))
測試:
USE JXGL --測試,數據后面補齊
INSERT INTO 學生
VALUES('456','朱小七','鬼','2021-03-21','2021')
建立表的聯系
表中數據的維護
插入新數據
INSERT INTO <表名>(<列名1>,<列名2>) VALUES(列名1數據,列名數據)
例子
USE JXGL
INSERT INTO 學生(學號,姓名,性別,生日)
VALUES('001','朱小七','男','2021-3-21')
刪除數據
DELETE FROM <表名>
[WHERE <邏輯表達式>] --滿足條件都會被刪除
修改數據
UPDATE <表名>
SET <列名>=<表達式>
[WHERE <邏輯表達式>]
例子:在學生表中新增一列‘年齡’
增加列名
ALTER TABLE 學生
ADD 年齡 INT
為年齡增加數據
UPDATE 學生
SET 年齡 = YEAR(GETDATE())-YEAR(生日)