日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > linux >内容正文

linux

用linux命令创建表主键,Linux系统下SQL Server数据库操作

發(fā)布時(shí)間:2023/12/15 linux 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 用linux命令创建表主键,Linux系统下SQL Server数据库操作 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

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)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。