sql建表主鍵
㈠ 如何定義sql主鍵
在SQL資料庫中,如何定義SQL主鍵是經常要遇到的問題,下面將為您介紹兩種定義SQL主鍵的方法,供您參考,希望對那您有所幫助。
SQL主鍵是資料庫表的一個重要屬性,建立主鍵可以避免表中存在完全相同的記錄,也就是說SQL主鍵在一張表中的記錄值是唯一的。
建立SQL主鍵有兩種方法:一種是在資料庫提供的GUI環境中建立,另一種是通過SQL語句執行建立,下面分別介紹。
1.在資料庫提供的GUI環境中建立(以SQL7為例)。
輸入表信息後按Ctrl鍵同時選中多行,然後點上面的主鍵按鈕就行了。
2.通過SQL語句執行建立。又分兩種,一是在建表語句中直接寫,二是建表之後更改表結構。
在建表語句中直接寫:
Create Table 表名 (欄位名1 Int Not Null,
欄位名2 nvarchar(13) Not Null Primary Key (欄位名1, 欄位名2),
欄位名3…………
欄位名N………… )
建表之後更改表結構:
CREATE TABLE 表名 (欄位名1 Int Not Null,
欄位名2 nvarchar(13) Not Null
欄位名3…………
欄位名N…………)
GO
ALTER TABLE 表名 WITH NOCHECK ADD
CONSTRAINT [PK_表名] PRIMARY KEY NONCLUSTERED
(
[欄位名1],
[欄位名2]
)
GO
【】
2.使用SQL語句創建主鍵約束
使用SQL語句創建主鍵約束可以在創建表(Create Table)或修改表(Alter Table)時進行 創建。
在修改表中創建主鍵約束語法:
ALTER TABLE table_name
ADD
CONSTRAINT constraint_name
PRIMARY KEY [CLUSTERED | NONCLUSTERED]
{(Column[,…n])}
參數說明:
CONSTRAINT:創建約束的關鍵字。
constraint_name:創建約束的名稱。
PRIMARY KEY:表示所創建約束的類型為主鍵約束。
CLUSTERED | NONCLUSTERED:是表示為PRIMARY KEY或UNIQUE約束創建聚集或非聚集索引的關鍵字。PRIMARY KEY約束默認為CLUSTERED,UNIQUE約束默認為 NONCLUSTERED。
下面在指定的資料庫中創建一個名為mytable的數據表,並在該數據表中將「userid」列設置為主鍵。
操作步驟:
(1)在操作系統中選擇「開始」→「所有程序」→「Microsoft SQL Server」→「查詢分析器」命令,打開查詢分析器。
(2)在查詢分析器的工具欄中選擇要連接的資料庫。
(3)在代碼編輯區中編寫如下代碼。
SQL語句如下:
USE 銷售管理系統 --引入資料庫
GO
CREATE TABLE mytable --創建表
(
USERID int CONSTRAINT pk_id PRIMARY KEY, --創建主鍵約束
USERNAME char (20), --數據列
USERPASS char (20), --數據列
USERPHONE char (20), --數據列
USERADDRESS varchar (50), --數據列
USERLEVEL char(2) --
㈡ sql用命令創建主鍵與外鍵,怎麼操作
用命令創建主鍵與外鍵方法如下:
㈢ sql用命令創建主鍵與外鍵。
1、為了方便大家理解,使用一個例子來幫助大家理解。意思大概就是通過引用表二中的欄位完成對表一欄位的約束。方法:
㈣ sql怎麼設置主鍵
1.主鍵語法
①創建時:create table sc (
studentno int,
courseid int,
score int,
primary key (studentno) );
②修改時:ALTER TABLE table_name ADD CONSTRAINT pk_name PRIMARY KEY(列名);
前提是原先沒有設置主鍵。
2.外鍵語法
①創建時:create table sc (
studentno int,
courseid int,
score int,
foreign key (courseid) );
②修改時:
ALTER TABLE news_info[子表名] ADD CONSTRAINT FK_news_info_news_type[約束名] FOREIGN KEY (info_id)[子表列] REFERENCES news_type[主表名] (id)[主表列] ;
3.使用組合主鍵
如果一列不能唯一區分一個表裡的記錄時,可以考慮多個列組合起來達到區分表記錄的唯一性,形式
①創建時:create table sc (
studentno int,
courseid int,
score int,
primary key (studentno,courseid) );
②修改時:alter table tb_name add primary key (欄位1,欄位2,欄位3);
前提是原來表中沒有設置主鍵,若原先已有主鍵則會報錯。
㈤ 怎樣用SQL語句為表創建主鍵並自動創建索引
create
table
(
id
int
identity(1,
1)
not
null
primary
key,
other_column
varchar(50)
)
--
對表設置主鍵的同時,資料庫會自動的創建一個以主鍵作為名稱的唯一索引的。
㈥ sql創建表主鍵
--offices表創建主鍵
IF NOT EXISTS (SELECT * FROM sysobjects WHERE id = OBJECT_ID('PK_offices') AND OBJECTPROPERTY(id, 'IsPrimaryKey') = 1) BEGIN
ALTER TABLE offices WITH NOCHECK ADD CONSTRAINT PK_offices PRIMARY KEY CLUSTERED (officeCode) ON [PRIMARY]
END
GO
--employees表創建主鍵
IF NOT EXISTS (SELECT * FROM sysobjects WHERE id = OBJECT_ID('PK_employees') AND OBJECTPROPERTY(id, 'IsPrimaryKey') = 1) BEGIN
ALTER TABLE employees WITH NOCHECK ADD CONSTRAINT PK_employees PRIMARY KEY CLUSTERED (empNum) ON [PRIMARY]
END
GO
㈦ sql怎麼創建表
1.1 創建表方法
創建表是指在已存在的資料庫中建立新表。這是建立資料庫最重要的一步,是進行其他操作的基礎。
1.1.1 創建表的語法形式
CREATE TABLE 表名 (
屬性名 數據類型 [ 完整性約束條件 ],
屬性名 數據類型 [ 完整性約束條件 ],
......
屬性名 數據類型 [ 完整性約束條件 ],
)[ 表類型 ] [ 表字元集 ];
SQL 是不區分大小寫。下面將會具體介紹SQL,這種創建表是通過什麼方式起來的效果怎麼樣?
命名規范:
1. 命名富有意義 ( 英文或英文組合 )
2. 自定義名稱使用小寫
3. MySQL 語句使用大寫
CREATE TABLE IF NOT EXISTS data_house(
id INT,
name VARCHAR(20);
gender BOOLEAN,
) Engine = MyISAM;
上面 SQL 語句的含義是:如果不存在 text1 表,就創建它,包含 3 個欄位 id 、 name 和 gender ,它們的類型分別是整形、字元型和布爾型,創建的表的類型是 MyISAM 。
完整性約束條件表
PRIMARY KEY 標識該屬性為該表的主鍵,可以唯一的標識對應的元組
FOREIGN KEY 標識該屬性為該表的外鍵,是與之聯系的某表的主鍵
NOT NULL 標識該屬性不能為空
UNIQUE 標識該屬性的值是唯一的
AUTO_INCREMENT 標識該屬性的值自動增加,這是 MySQL 的 SQL 語句的特色 (null,0)
DEFAULT 標識該屬性設置默認值 (not null defualt 0,not null default 0.0,not null default '')
1.1.2 設置表的主鍵
主鍵是表的一個特殊欄位。該欄位能惟一地標識該表中的每條信息。主鍵和記錄的關系,如同身份證和人的關系。主鍵用來標識每個記錄,每個記錄的主鍵值都不同。身份證是用來標明人的身份,每個人都具有惟一的身份證號。設置表的主鍵指在創建表時設置表的某個欄位為該表的主鍵。
主鍵的主要目的是幫組 MySQL 以最快的速度查找到表中的某一條信息。
主鍵必須滿足的條件:
1. 主鍵必須是唯一的,表中任意兩條記錄的主鍵欄位的值不能相同;
2. 主鍵的值是非空值;
3. 主鍵可以是單一的欄位,也可以是多個欄位組合。
1. 單欄位的主鍵:
CREATE TABLE student1 (
stu_id INT PRIMARY KEY ,
stu_name VARCHAR(20) NOT NULL,
stu_gender BOOLEAN
) Engine = InnoDB;
2. 多欄位主鍵 :
CREATE TABLE student2 (
stu_id INT,
course_id INT,
grade FLOAT,
PRIMARY KEY( stu_id, course_id )
)Engine = InnoDB;
1.1.3 設置表的外鍵
外鍵是表的一個特殊欄位。如果欄位 sno 是一個表 A 的屬性,且依賴於表 B 的主鍵。那麼,稱表 B 為父表,表 A 為子表, sno 為表 A 的外鍵。通過 sno 欄位將父表 B 和子表 A 建立關聯關系。設置表的外鍵指在創建表設置某個欄位為外鍵。
設置外鍵的原則:必須依賴於資料庫中已存在的父表的主鍵;外鍵可以為空值。
外鍵的作用 : 是建立該表與其父表的關聯關系。父表中刪除某條信息時,子表中與之對應的信息也必須有相應的改變。例如, stu_id 就 student 表的主鍵, stu_id 是 grade 表的外鍵。當 stu_id 為 '123' 同學退學了,需要從 student 表中刪除該學生的信息。那麼, grade 表中 stu_id 為 '123' 的所有信息也應該同時刪除。
CONSTRAINT 外鍵別名 FOREIGN KEY ( 屬性 1.1, 屬性 1.2... 屬性 1.n);
REFERENCES 表名 ( 屬性 2.1, 屬性 2.2,..., 屬性 2.n)
CREATE TABLE student3 (
id INT PRIMARY KEY,
stu_id INT,
course_id INT,
# 設置外鍵
CONSTRAINT C_fk FOREIGN KEY (stu_id, course_id) REFERENCES student2(stu_id, course_id)
) Engine = InnoDB;
1.1.4 設置表的非空約束
非空性是指欄位的值不能為空值 (NULL) 。非空約束將保證所有記錄中該欄位都有值。如果用戶新插入的記錄中,該欄位為空值,則資料庫系統會報錯。例如,在 id 欄位加上非空約束, id 欄位的值就不能為空。如果插入記錄的 id 欄位的值為空,該記錄將不能插入。設置表的非空約束是指在創建表時為表的某些特殊欄位加上 NOT NULL 約束條件。設置非空約束的基本語法規則如下:
屬性名 數據類型 NOT NULL
㈧ sql資料庫中怎麼設置多個列同時作為表的主鍵
可以用如下方法進行設置:
第一,如果是用SQL語句建表,如下:(假設要讓a和c組合作為主碼)
create table t1(
a int,
b varchar(20),
c int,
primary key(a,c)
)
第二,如果用圖形化界面做,按住ctrl鍵,然後選擇a和c兩個列,接著右鍵菜單選擇「設置為主鍵」即可。
一個表中最多隻能有一個主鍵,也可以沒有。一個主鍵既可以是單一的欄位構成,也可以是多個欄位聯合構成,如果是單一欄位,只需在該欄位後面標記primary key即可,如果是多個欄位聯合構成,則需要採用最開始介紹的那種方式設置。
㈨ SQL怎樣用命令設置主鍵
可以參考下面的方法:
建表的時候,可以直接在列名後面增加主鍵約束,比如:
IDchar(5)primarykey。
對已經建表的列增加主鍵約束:
alter table 表名addconstraint約束名 primary key (ID)
(9)sql建表主鍵擴展閱讀:
sql語句
添加主鍵
Alter table tabname add primary key(col)
刪除主鍵
Alter table tabname drop primary key(col)
創建索引
create [unique] index idxname on tabname(col….)
刪除索引
drop index idxname
㈩ t sql 建好表後如何定義主鍵
tsql建好表後如何定義主鍵的方法。
如下參考:
1、打開管理工具,SQLServerManagementStudio連接到資料庫。