Linux系統下SQL Server數據庫操作

連接數據庫 sqlcmd命令

SQLServer 提供了 sqlcmd 命令,來讓我們操作 SQLServer 數據庫。接下來我們連接它,並在其中創建一個名爲 TestDb 的數據庫。

連接 SQLServer :sqlcmd -S localhost -U sa -P '<123123Aa!@>'
在這裏插入圖片描述
如果連接失敗原因是服務還未開啓,等待幾秒重試即可,上述語句各參數解釋如下:
在這裏插入圖片描述
sqlcmd 是連接數據庫必要的語句, localhost 代表從本地連接,sa 是用戶名, ‘<123123Aa!@>’ 是密碼。

創建數據庫:

create database TestDb
在這裏插入圖片描述

查看所有數據庫:

select name from sys.databases。
在這裏插入圖片描述
操作完畢之後退出: exit 。

創建表

我們先來了解一下,在數據庫中創建表的規則:

CREATE TABLE 表名
(
    字段名,數據類型,
    字段名,數據類型,
    .....
)

例如:
在這裏插入圖片描述
添加了數據的表格,示例如下:
在這裏插入圖片描述
首先,創建數據庫(在 SQLServer 數據庫中是不區分大小寫的,不過數據庫的名字是區分大小寫的),如下:

CREATE DATABASE MyDb

然後,選擇數據庫:

USE MyDb

最後,創建t_user表:

CREATE TABLE t_user
(
    id INT,
    username VARCHAR(32),
    password VARCHAR(32),
    phone VARCHAR(11)
)

表創建好之後,可以使用如下語句查看錶的基本結構,用來驗證是否創建成功。

語法如下:

sp_help 表名

添加主鍵約束

有兩種方式可以添加主鍵約束:1.在定義列的同時指定主鍵,2.在定義完字段之後,再指定主鍵。

(1) 在定義列的同時指定主鍵:
在這裏插入圖片描述
(2) 在定義完所有列之後,指定主鍵。
在這裏插入圖片描述
多字段聯合主鍵

在開發中,還有一種情況很常見,就是將幾個字段聯合在一起作爲主鍵,那這個在代碼中怎麼實現呢?
舉個例子,我們將員工的名字和部門 ID 聯合起來作爲主鍵:

CREATE TABLE t_emp2
(
    name VARCHAR(32),
    deptId INT,
    salary FLOAT,
    PRIMARY KEY(name,deptId)
)

語句執行後,會將 name 和 deptId 字段組合成爲表 t_emp2 的多字段組合主鍵。

外部關鍵字

外部關鍵字叫做外鍵,外鍵就是另一張表中的主鍵。

:外鍵有啥用啊?
:外鍵的主要作用就是保持數據的一致性,完整性。

再問:怎麼保證的呢?
:看圖。
在這裏插入圖片描述
如圖有兩張表,classId 是 T_Student 的外鍵,同時是 T_class 表的主鍵。如果我們要刪除 T_class 表中 classId 爲 1 的字段,程序是會報錯的。因爲 T_Student 表中有數據和 classId 爲 1 的字段關聯了,是不能刪除的,這樣子就保證了數據的一致性和完整性。

繼續問:那怎麼才能刪除呢?
接着答:需要先刪除 T_Student 表中 classId 爲 1 的兩個字段。

如何給表添加外部關鍵字
在 SQLServer 中,給表中字段添加外鍵約束的語法規則如下:

CONSTRAINT 外鍵名 FOREIGN KEY 字段名 REFERENCES 主表名(主鍵名)

舉個例子:現在有兩張表, t_emp , t_dept 如下:
在這裏插入圖片描述
我們來創建兩張表,並給員工表( t_emp )添加外鍵:

CREATE TABLE t_dept
(
    deptId INT PRIMARY KEY,
    name VARCHAR(22),
    location VARCHAR(50)
);
CREATE TABLE t_emp
(
    id INT PRIMARY KEY,
    name VARCHAR(22),
    deptId INT,
    CONSTRAINT fk_emp_dept1 FOREIGN KEY(deptId) REFERENCES t_dept(deptId)
);

實際操作如圖:
在這裏插入圖片描述
另外一種設置外鍵的方式:

CREATE TABLE t_dept
(
    deptId INT PRIMARY KEY,
    name VARCHAR(22),
    location VARCHAR(50)
);
CREATE TABLE t_emp
(
    id INT PRIMARY KEY,
    name VARCHAR(22),
    deptId INT  FOREIGN KEY REFERENCES t_dept(deptId)
);

在定義字段的時候,也可以定義外部關鍵字,格式: FOREIGN KEY REFERENCES 關聯的表名(字段名) ,這種方式比較簡潔,不過這種方式不能指定外鍵名,即外鍵名是隨機的。

怎麼添加唯一約束

唯一約束( Unique Constraint )要求該列唯一,允許爲空,但是隻能有一個空值。唯一約束可以確保一列或者幾列不出現重複值。

定義部門表的部門名稱唯一,使用關鍵詞 UNIQUE ,SQL 語句如下:

CREATE TABLE t_dept(
    id INT PRIMARY KEY,
    name VARCHAR(22) UNIQUE,
    location VARCHAR(50)
)

怎麼添加非空約束

關鍵詞: NOT NULL 。

例如:

CREATE TABLE t_dept(
    id INT PRIMARY KEY,
    name VARCHAR(22) NOT NULL,
    location VARCHAR(50)
)

怎麼使用默認約束

默認約束:即給字段一個默認值。
關鍵詞: DEFAULT 。

例如:

CREATE TABLE t_emp(
    id INT PRIMARY KEY,
    name VARCHAR(22),
    sex VARCHAR(2) DEFAULT '男'
)

注意:如果是添加字符串型,認值要使用單引號;如果是整型,則不需要加任何符號。

設置表的屬性值自動增加

在數據庫應用中,經常需要在每次插入新紀錄時,系統自動生成字段的主鍵值,即:
在這裏插入圖片描述
關鍵詞: IDENTITY(1,1) 表示自動增長,初始值爲 1 ,增量爲 1 。
例如:

CREATE TABLE t_tmp
(
    id int PRIMARY KEY IDENTITY(1,1),
    name VARCHAR(32)
)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章