用linux命令创建表主键,Linux系统下SQL Server数据库操作
Linux系統(tǒng)SQL Server數(shù)據(jù)庫操作命令
連接數(shù)據(jù)庫 sqlcmd命令
創(chuàng)建數(shù)據(jù)庫:
查看所有數(shù)據(jù)庫:
創(chuàng)建表
添加主鍵約束
外部關(guān)鍵字
怎么添加唯一約束
怎么添加非空約束
怎么使用默認(rèn)約束
設(shè)置表的屬性值自動增加
連接數(shù)據(jù)庫 sqlcmd命令
SQLServer 提供了 sqlcmd 命令,來讓我們操作 SQLServer 數(shù)據(jù)庫。接下來我們連接它,并在其中創(chuàng)建一個(gè)名為 TestDb 的數(shù)據(jù)庫。
連接 SQLServer :sqlcmd -S localhost -U sa -P '<123123Aa!@>'
如果連接失敗原因是服務(wù)還未開啟,等待幾秒重試即可,上述語句各參數(shù)解釋如下:
sqlcmd 是連接數(shù)據(jù)庫必要的語句, localhost 代表從本地連接,sa 是用戶名, ‘<123123Aa!@>’ 是密碼。
創(chuàng)建數(shù)據(jù)庫:
create database TestDb。
查看所有數(shù)據(jù)庫:
select name from sys.databases。
操作完畢之后退出: exit 。
創(chuàng)建表
我們先來了解一下,在數(shù)據(jù)庫中創(chuàng)建表的規(guī)則:
CREATE TABLE 表名
(
字段名,數(shù)據(jù)類型,
字段名,數(shù)據(jù)類型,
.....
)
例如:
添加了數(shù)據(jù)的表格,示例如下:
首先,創(chuàng)建數(shù)據(jù)庫(在 SQLServer 數(shù)據(jù)庫中是不區(qū)分大小寫的,不過數(shù)據(jù)庫的名字是區(qū)分大小寫的),如下:
CREATE DATABASE MyDb
然后,選擇數(shù)據(jù)庫:
USE MyDb
最后,創(chuàng)建t_user表:
CREATE TABLE t_user
(
id INT,
username VARCHAR(32),
password VARCHAR(32),
phone VARCHAR(11)
)
表創(chuàng)建好之后,可以使用如下語句查看表的基本結(jié)構(gòu),用來驗(yàn)證是否創(chuàng)建成功。
語法如下:
sp_help 表名
添加主鍵約束
有兩種方式可以添加主鍵約束:1.在定義列的同時(shí)指定主鍵,2.在定義完字段之后,再指定主鍵。
(1) 在定義列的同時(shí)指定主鍵:
(2) 在定義完所有列之后,指定主鍵。
多字段聯(lián)合主鍵
在開發(fā)中,還有一種情況很常見,就是將幾個(gè)字段聯(lián)合在一起作為主鍵,那這個(gè)在代碼中怎么實(shí)現(xiàn)呢?
舉個(gè)例子,我們將員工的名字和部門 ID 聯(lián)合起來作為主鍵:
CREATE TABLE t_emp2
(
name VARCHAR(32),
deptId INT,
salary FLOAT,
PRIMARY KEY(name,deptId)
)
語句執(zhí)行后,會將 name 和 deptId 字段組合成為表 t_emp2 的多字段組合主鍵。
外部關(guān)鍵字
外部關(guān)鍵字叫做外鍵,外鍵就是另一張表中的主鍵。
問:外鍵有啥用啊?
答:外鍵的主要作用就是保持?jǐn)?shù)據(jù)的一致性,完整性。
再問:怎么保證的呢?
答:看圖。
如圖有兩張表,classId 是 T_Student 的外鍵,同時(shí)是 T_class 表的主鍵。如果我們要?jiǎng)h除 T_class 表中 classId 為 1 的字段,程序是會報(bào)錯(cuò)的。因?yàn)?T_Student 表中有數(shù)據(jù)和 classId 為 1 的字段關(guān)聯(lián)了,是不能刪除的,這樣子就保證了數(shù)據(jù)的一致性和完整性。
繼續(xù)問:那怎么才能刪除呢?
接著答:需要先刪除 T_Student 表中 classId 為 1 的兩個(gè)字段。
如何給表添加外部關(guān)鍵字
在 SQLServer 中,給表中字段添加外鍵約束的語法規(guī)則如下:
CONSTRAINT 外鍵名 FOREIGN KEY 字段名 REFERENCES 主表名(主鍵名)
舉個(gè)例子:現(xiàn)在有兩張表, t_emp , t_dept 如下:
我們來創(chuàng)建兩張表,并給員工表( 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)
);
實(shí)際操作如圖:
另外一種設(shè)置外鍵的方式:
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)
);
在定義字段的時(shí)候,也可以定義外部關(guān)鍵字,格式: FOREIGN KEY REFERENCES 關(guān)聯(lián)的表名(字段名) ,這種方式比較簡潔,不過這種方式不能指定外鍵名,即外鍵名是隨機(jī)的。
怎么添加唯一約束
唯一約束( Unique Constraint )要求該列唯一,允許為空,但是只能有一個(gè)空值。唯一約束可以確保一列或者幾列不出現(xiàn)重復(fù)值。
定義部門表的部門名稱唯一,使用關(guān)鍵詞 UNIQUE ,SQL 語句如下:
CREATE TABLE t_dept(
id INT PRIMARY KEY,
name VARCHAR(22) UNIQUE,
location VARCHAR(50)
)
怎么添加非空約束
關(guān)鍵詞: NOT NULL 。
例如:
CREATE TABLE t_dept(
id INT PRIMARY KEY,
name VARCHAR(22) NOT NULL,
location VARCHAR(50)
)
怎么使用默認(rèn)約束
默認(rèn)約束:即給字段一個(gè)默認(rèn)值。
關(guān)鍵詞: DEFAULT 。
例如:
CREATE TABLE t_emp(
id INT PRIMARY KEY,
name VARCHAR(22),
sex VARCHAR(2) DEFAULT '男'
)
注意:如果是添加字符串型,認(rèn)值要使用單引號;如果是整型,則不需要加任何符號。
設(shè)置表的屬性值自動增加
在數(shù)據(jù)庫應(yīng)用中,經(jīng)常需要在每次插入新紀(jì)錄時(shí),系統(tǒng)自動生成字段的主鍵值,即:
關(guān)鍵詞: IDENTITY(1,1) 表示自動增長,初始值為 1 ,增量為 1 。
例如:
CREATE TABLE t_tmp
(
id int PRIMARY KEY IDENTITY(1,1),
name VARCHAR(32)
)
總結(jié)
以上是生活随笔為你收集整理的用linux命令创建表主键,Linux系统下SQL Server数据库操作的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微软高管:过去几天已批准大量用户体验新版
- 下一篇: Linux 本地密码正确无法登录,记一次