㈠ 資料庫表的主鍵列用什麼類型合適varchar、long還是integer
這要看你的需要了,就性能而言,還是整形值的效率會高些(很有限),如果記錄多就用long,否則用int,如果有特殊需要用varchar也沒什麼,在性能上的表現是不明顯的。整形值比字元形的另一個優點就是可以通過資料庫實現自增加列,減少編程的復雜性。
㈡ 資料庫中什麼欄位可設為主鍵
只要是唯一不重復的都可以當主鍵,不過如果你你找不到,就加一個主鍵欄位,純數字的,好控制
㈢ 資料庫表中的主鍵和外鍵
主外鍵的存在是依託兩個實體之間的關系而存在的;
比如班級與學生的關系:
一個班級可以有多個學生,並且一個學生只能屬於一個班級,這就是一對多的關系;
那麼設計資料庫的時候就應該在學生表內存放班級的ID作為外鍵,為什麼不在班級表內放學生呢?
因為,你想一想班級表內如果放學生那麼記錄可能就是這樣:
1班ID 1班 xx同學id
1班ID 1班 xx同學id
..
這是不允許的,班級表內班級為主鍵,是唯一的不允許相同記錄的;
下面簡單給你講下大概建成的表結構
--建班級表
create table class(
classid int primary key,--定義班級ID為主鍵
classname varchar(15)
)
--建學生表
create table students(
studentid int primary key,--定義學生ID為主鍵
classid int ,--外鍵值,跟班級表classid 屬性類型相同
stuname varchar(20),--學生姓名
---定義外鍵
foreign key(classid) references class(classid) --本表classid是基於class表classid的外鍵
)
---------
如上定義了主外鍵後,兩個表間的關系就是一對多的關系了,並且學生表內的classid必須依託班級表的classid存在,也就是說外鍵必須要主鍵存在的時候才能創建,例如:
--在班級表為空的情況往學生表插入一條記錄是不允許的:
insert into students(studentid,classid,stuname)values(1,1,'小明')
系統會拋出異常提示主鍵表班級表內班級ID不存在這樣是不允許插入的;
必須要先往班級表內插入一條記錄:
insert into class(classid,classname)values(1,'一班')
後才能執行插入前面一條往學生表插入信息的語句..
--------------可了解一些了?真累啊.
㈣ 資料庫主鍵可以為String類型嗎
主鍵可以用String類型,但是有兩點不好的地方。其一:不能自增。其二:使用查詢時,String會比Int慢的多。
㈤ 資料庫題 主鍵有哪幾種類型
主返碰或鍵有
「吵芹自動編號」主鍵
單欄位主鍵
多欄位漏伍主鍵
這三種