SQL Server創建數據庫和表


數據庫管理

創建數據庫

  1. Window系統下創建文件夾D:\JXGLSYS\DATA

  2. 打開Microsoft SQL Server Managemant Studio集成環境窗口,單擊“新建查詢”

  3. 輸入命令(以績效管理系統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%  --定義文件增長的遞增方式
    )
    
  4. 運行,彈出窗口,創建成功

image-20210321172925118

數據庫更名

--新建查詢
EXEC sp_renamedb <原有數據庫名>,<修改數據庫名>

刪除數據庫

--新建查詢
DROP DATABASE <數據庫名>

數據表管理

創建表

--新建查詢
USE <數據庫名> --在數據庫中操作
CREATE TABLE <表名>  --創建表
(
<列名1> <數據類型> <列級完整性約束>, 
<列名2> <數據類型> <列級完整性約束>,
.....
)
[ON <filegroup>|<"default">] --指定default或者沒有指定ON,存儲於默認文件夾

列級完整性約束

  1. **默認值約束——DEFAULT 常量表達式 **

    若在表中定義了默認值約束,用戶在插入新的數據行時,如果該行沒有指定數據,那么系統將默認值賦給該列,如果我們不設置默認值,系統默認為NULL。

  2. 非空值約束——NULL/NO NULL

  3. **主鍵約束——PRIMARY KEY **

    主鍵列不能為空

  4. 外鍵約束——FOREIGN KEY REFERENCES <父表名>(主鍵列名)

  5. 唯一性約束——UNIQUE

    唯一約束確保表中的一列數據沒有相同的值。與主鍵約束類似,唯一約束也強制唯一性,但唯一約束用於非主鍵的一列或者多列的組合,且一個表可以定義多個唯一約束。

  6. 檢查約束——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')

image-20210323114726477

建立表的聯系

image-20210325183725747

image-20210321191328838

表中數據的維護

插入新數據

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(生日)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM