❶ 為什麼sql里的一個表有兩個主鍵
一個資料庫表只能有一個主鍵,不允許兩個主鍵。但是允許兩個欄位聯合起來設置為主鍵,這叫聯合主鍵。
創建主鍵的方式如下:
ALTERTABLE選課表
ADDCONSTRAINTpk_選課表PRIMARYKEY(學號);
創建聯合主鍵的方式如下:
ALTERTABLE選課表
ADDCONSTRAINTpk_選課表PRIMARYKEY(學號,課程編號);
❷ SQL Server 怎麼建立聯合主鍵
alter
table
表
add
constraint
pk_name
primary
key
(列1,列2,...)
聯合主鍵的好處是不需要因為需要主鍵而增加一個無用的主鍵列
例如如果不用聯合主鍵你必須增加個列ID設置主鍵
但這個ID列無任何作用
至於在什麼情況下使用,就像剛才舉例的,當你這個表的主鍵ID無任何用處,那麼就用聯合主鍵好了,你可以節約一個列的空間,但如果這表的ID列要做為別的表的外鍵的話,就不能用聯合主鍵了。
❸ 在Oracle資料庫中創建一個表,用兩個鍵做聯合主鍵,sql語句該怎麼寫如下圖的問題
createtablestudent_course
(
snochar(8)notnull,
cnochar(10)notnull,
scorenumber,
constraintPK
這個約束句只是一個名稱,表示這張表的主鍵(primary key)名稱。
為了方便明了,以2個單詞的首字母來做前綴:
Primary key: PK_xxx
Foreign key: FK_xxxx
Unique: UC_xxxxx
Index: IC_xxxxxx
等等,這只是一個編寫習慣問題。
具體如下:
1、簡介
Oracle Database,又名Oracle RDBMS,或簡稱Oracle。是甲骨文公司的一款關系資料庫管理系統。它是在資料庫領域一直處於領先地位的產品。可以說Oracle資料庫系統是目前世界上流行的關系資料庫管理系統,系統可移植性好、使用方便、功能強,適用於各類大、中、小、微機環境。它是一種高效率、可靠性好的 適應高吞吐量的資料庫解決方案。
2、介紹
ORACLE資料庫系統是美國ORACLE公司(甲骨文)提供的以分布式資料庫為核心的一組軟體產品,是目前最流行的客戶/伺服器(CLIENT/SERVER)或B/S體系結構的資料庫之一。比如SilverStream就是基於資料庫的一種中間件梁遲塌。ORACLE資料庫是目前世界上使用最為廣泛的資料庫管理系統,作為一個通用的資料庫系統,它具有完整的數據管理功能;作為一個關系資料庫,它是一個完備關系的產品;作為分布式資料庫它實現了分布式處理功能。但它的所有知識,只要在一種機型上學習了ORACLE知識,便能在各種類型的橡圓機器上使用它。
3、支持平台
在2001年發布的Oracle9i之前,甲骨旦棚文公司把他們的資料庫產品廣泛的移植到了不同的平台上。近期,甲骨文公司鞏固了一小部分的操作系統平台。
❹ 1.SQL常用建表語句
--創建自增主鍵表
CREATE TABLE MyTab(
iNo int IDENTITY(1,1) PRIMARY KEY, --數字自增長主鍵
iType int NULL, --整數
sName varchar(50) NOT NULL, --字元 必填
fAmt numeric(18, 5) NULL, --浮點
dBuild datetime NULL, --時間
dEdit datetime NULL,
rv rowversion --時間戳
)
--創建聯合主鍵表
CREATE TABLE MyTab1(
iNo int IDENTITY(1,1), --數字自增長主鍵
iType int Not NULL , --整數 必填
sName varchar(50) NOT NULL Primary Key (iType,sName),
fAmt numeric(18, 5) NULL, --浮點
dBuild datetime NULL, --時間
dEdit datetime NULL,
rv rowversion --時間戳
)
--新建聯合主鍵
ALTER TABLE MyTab1 WITH NOCHECK ADD
CONSTRAINT PK_MyTab1 PRIMARY KEY NONCLUSTERED
(iType,sName)
--創建復合索引
create index ix_dEdit_sName_MyTab on MyTab(dEdit,sName);
❺ SQL2014如何設置聯合主鍵
設置默認值
alter
table
<表名>
add
<列名>
<默認值類型>
default
'<默認值>'
設置主鍵
alter
table
<表名>
add
constraint
<主鍵名>
primary
key(<列名>)
設置聯合主鍵
alter
table
<表名>
add
constraint
<主鍵名>
primary
key(<列名1>,<列名2>,...,<列名n>)
約束
alter
table
<表名>
add
constraint
<約束名>
check
(<約束語句>)
在輸入語句的時候<>是不需要的
❻ sql資料庫中怎麼設置多個列同時作為表的主鍵
可以用如下方法進行設置:
第一,侍襪如果是用SQL語句建表,如下:(假設要讓a和c組合作為主棚談世碼)
create table t1(
a int,
b varchar(20),
c int,
primary key(a,c)
)
第二,如果用圖形化界面做,按住ctrl鍵,然後選擇a和c兩個列,接著右鍵菜單選擇「設置為主鍵」即可。
一個表中最多隻能有一個主鍵,也可以沒有。一個主鍵既可以是單一的欄位構成,也可以是多個欄位聯合構成,如果是單一欄位,只需在該欄位後面標記primary key即可,如果是多個欄位聯合構成,則需要採用最開始介鏈肢紹的那種方式設置。
❼ 資料庫建表時一個表最多可以有幾個主鍵,幾個外鍵
主鍵只有一個,凳腔但是可禪消以設置為多個欄位為主鍵,也即聯合主鍵。外鍵就是自己設置了也即可以有多個,可以設置除主鍵以外的其他欄位全部是外鍵的。
資料庫的每張表只能有一個主鍵,不可能有多個主鍵。所謂的一張表多個主鍵,我們稱之為聯合主鍵。聯合主鍵就是用多個欄位一起作為一張表的主鍵。主鍵的主鍵的作用是保證數據的唯一性和完整性,同時通過主鍵檢索表能夠增加檢索速度。
(7)sql建表聯合主鍵擴展閱讀:
一、資料庫模型:
1、對象模型
2、層次模型(輕量級數據訪問協議)
3、網狀模型(大型數據儲存)
4、關系模型
5、面向對象模型
6、半結構化模型
7、平面模型(表格模型,一般在形式上是一個二維數組。如表格模型數據Excel)
二、資料庫的架構:
資料庫的架構可以大致區分為三個概括層次:內層、概念層和外層。
1、內層:最接近實際存儲體,亦即有關數據的實際存儲方式。
2、外層:最接近用戶,即有關個別用戶觀看數據的方式。賀粗知
3、概念層:介於兩者之間的間接層。
三、資料庫索引:
索引跟欄位有著相應的關系,索引即是由欄位而來,其中欄位有所謂的關鍵欄位(Key Field),該欄位具有唯一性,即其值不可重復,且不可為「空值(null)"。例如:在合並數據時,索引便是扮演欲附加欄位數據之指向性用途的角色。故此索引為不可重復性且不可為空。
❽ SQL Server 中聯合主鍵是這么創建的嗎
創建復合主鍵:
方法一:創建表之後,alter table table_name add primary key(欄位1,蔽拍欄位2)
方法二:拿並前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
❾ 聯合主鍵,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)GOALTER TABLE 表名 WITH NOCHECK ADD CONSTRAINT [PK_表名] PRIMARY KEY NONCLUSTERED([欄位名1],
❿ sql中創建組合主鍵和組合外鍵
聯合主鍵:primary
key(id,name)
外鍵:FOREIGN
KEY
(id,name)
REFERENCES
user(id,name)
註:聯合主鍵的外鍵必須同時引用兩個主鍵無法單個引用