⑴ 組合主碼外碼用sql語句怎麼寫
SQL語言創建表時候用Primary Key(屬性名)定義主碼,用Foreign Key(屬性名)定義外碼。
主碼是一種唯一關鍵字,表定義的一部分。一個表的主碼可以由多個關鍵字共同組成,並且主碼的列不能包含空值。主碼是可選的,並且可在 CREATE TABLE語句中用Primary Key(屬性名)定義。
將一個表的值放入第二個表來表示關聯,所使用的值是第一個表的主鍵值(在必要時可包括復合主鍵值)。此時,第二個表中保存這些值的屬性稱為外鍵,用Foreign Key(屬性名)定義。
結構化查詢語言(Structured Query Language)簡稱SQL,結構化查詢語言是一種資料庫查詢和程序設計語言,用於存取數據以及查詢、更新和管理關系資料庫系統。
sql語句就是對資料庫進行操作的一種語言。
總結如下:
主碼不應包含動態變化的數據,如時間戳、創建時間列、修改時間列等。實際上,因為主碼除了唯一地標識一行之外,再沒有其他的用途了,所以也就沒有理由去對它更新。如果主碼需要更新,則說明主碼應對用戶無意義的原則被違反了。
⑵ sql server 2005如何在已經建立的表中把已有的某個屬性設置為主碼
最簡單的方法是直接打開資料庫右擊所在表選擇修改,點選你想設置的屬性,右擊會出現設置為主鍵,點選就可以了
⑶ 怎麼在資料庫裡面不用sql語句把2個屬性設置為主碼
--修改主鍵 ALTER TABLE tablename --修改表
ADD
CONSTRAINT tb_PRIMARY
PRIMARY KEY CLUSTERED (列名) /*將你要設置為主鍵約束的列*/
--修改約束ALTER TABLE 銷售表 --修改表
ADD CONSTRAINT ck_sl --創建檢查約束
CHECK (數量 >= 1 and 數量 <= 10000) --添加約束條件
--修改外鍵alter table 表名
add constraint 外鍵名稱 foreign key (欄位)
references 關系表名 (關系表內欄位)
⑷ 資料庫創建的時候設定兩個屬性為主碼的時候該怎麼做
sql 語句實現用 primary key(一個屬性,第二個屬性) 就ok了
如果用的sqlserver2000 的企業管理器,直接選中一個屬性後,按住 Shift鍵,然後選中另外一個屬性,點擊右鍵,設置主鍵,就ok了
⑸ sql,如何用sql語句對一個已經編輯好的表在設置主碼和外碼
sql中的主碼和外碼,屬於索引,SQL索引有兩種,聚集索引和非聚集索引,索引主要目的是提高了SQLServer系統的性能,加快數據的查詢速度與減少系統的響應時間
創建索引的語法:
CREATE[UNIQUE][CLUSTERED|NONCLUSTERED]INDEXindex_name
ON{table_name|view_name}[WITH[index_property[,....n]]
說明:
UNIQUE:建立唯一索引。
CLUSTERED:建立聚集索引。
NONCLUSTERED:建立非聚集索引。
Index_property:索引屬性。
UNIQUE索引既可以採用聚集索引結構,也可以採用非聚集索引的結構,如果不指明採用的索引結構,則SQLServer系統默認為採用非聚集索引結構。
刪除索引語法:
DROPINDEXtable_name.index_name[,table_name.index_name]
說明:table_name:索引所在的表名稱。
index_name:要刪除的索引名稱。
修改索引的語法:
ALTER INDEX命令在其用來做什麼方面多少有些欺騙性。截止到現在,ALTER命令總是與修改對象的定義有關。例如ALTER表以添加或禁用約束和列。ALTER INDEX是不同的-該命令與維護有關,而與結構完全不相干。如果需修改索引的組成,那麼只能DROP然後CREATE索引,或者用DROP_EXISTING=ON選項CREATE並使用索引。
ALTER INDEX {<name of index> | ALL}
ON<table or view name>
{ REBUILD
[[ WITH (
[PAD_INDEX = {ON | OFF}]
| [[,] FILLFACTOR = <fillfactor>
| [[,] SORT_IN_TEMPDB = { ON | OFF }]
| [[,] IGNORE_DUP_KEY = { ON | OFF }]
| [[,] STATISTICS_NORECOMPUTE = { ON | OFF }]
| [[,] ONLINE = { ON| OFF }]
| [[,] ALLOW_ROW_LOCKS = { ON | OFF }]
| [[,] ALLOW_PAGE_LOCKS = { ON | OFF }]
| [[,] MAXDOP = <max degree of parallelism>
)]
|[ PARTITION = <partition number>
[ WITH (< partition rebuild index option>
[,...N])]]]
| DISABLE
| REORGANIZE
[ PARTITION = <partition number> ]
[ WITH (LOB_COMPACTION = { ON | OFF })]
| SET ([ ALLOW_ROW_LOCKS = { ON | OFF} ]
| [[,] ALLOW_PAGE_LOCKS = { ON | OFF } ]
| [[,] IGNORE_DUP_KEY = { ON | OFF } ]
| [[,] STATISTICS_NORECOMPUTE = { ON | OFF }]
)
}[;]
⑹ sql怎麼設置主碼
alter table 表名 add constraint pk_t primary key(列名)。把表中某個欄位設置為主鍵
⑺ SQL資料庫用代碼創建 怎麼創建
create database 資料庫名稱
on
(
name='aaa',
filename='aaa.dbf',
size=初始大小,
maxsize=存儲上限,
filegrowth=增長增量
)
log on
(
name='b',
filename='b.ldf',
size=初始大小,
maxsize=存儲上限,
filegrowth=增長增量
)
(7)sql資料庫怎麼創建主碼擴展閱讀:
SQL語句創建基本資料庫
SQL語句代碼:CREATE DATABASE 語句。
CREATE DATABASE Epiphany
ON
(
NAME = Epiphany,
FILENAME = 'E:SQL SERVER 2008Epiphany_data.mdf',
SIZE = 5MB,
MAXSIZE = 20,
FILEGROWTH = 20
)
LOG ON
(
NAME = Epiphany,
FILENAME = 'E:SQL SERVER 2008Epiphany_log.ldf',
SIZE = 2MB,
MAXSIZE = 10MB,
FILEGROWTH = 1MB
);
可以用這個模板,例子:
CREATE DATABASE Epiphany
ON
(
NAME = Epiphany,
FILENAME = 'E:SQL SERVER 2008Epiphany_data.mdf',
SIZE = 5MB,
MAXSIZE = 20,
FILEGROWTH = 20
)
LOG ON
(
NAME = Epiphany,
FILENAME = 'E:SQL SERVER 2008Epiphany_log.ldf',
SIZE = 2MB,
MAXSIZE = 10MB,
FILEGROWTH = 1MB
);
完畢!
⑻ sql server 2000 資料庫怎麼自動創建主碼
sql
sever裡面用序列來實現自動增長
create
table
abc(id
int
identity(1,1)
primary
key)
在這里id為int
類型,identity(1,1)就是說從1開始,每次增長1。
具體問題可以HI我
⑼ SQL語言建立表 設置主碼問題
差別不大.
區別在於
第一種情況下,資料庫用系統名定義一個約束,來作為主鍵約束的名字.
第二種情況下,這個約束的名字,由用戶在 SQL 語句中指定了,也就是 C1.
對於某些情況下,需要禁用主鍵約束,然後批量導入數據,然後修改掉重復的約束,最後啟用主鍵約束的時候, 知道約束名字,是比較方便的。
一般來說,自己起個約束的名字,也很麻煩。
表多了,這個約束名字也是要唯一的。