當前位置:首頁 » 編程語言 » sql中外碼有用嗎
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql中外碼有用嗎

發布時間: 2022-05-12 12:45:12

sql中,外碼的問題

你的描述讓人最先想到的是觸發器,但是,因為有外鍵約束,先刪除aclasspm會失敗的。所以最簡單的辦法是寫兩條語句來完成。
delete from admin where adminclass = '值'
delete from aclasspm where adminclass = '值'

㈡ sql 的表中的主碼,外碼,男女check

主碼即主關鍵字。

主關鍵字(primary key)是表中的一個或多個欄位,它的值用於唯一地標識表中的某一條記錄。在兩個表的關系中,主關鍵字用來在一個表中引用來自於另一個表中的特定記錄。主關鍵字是一種唯一關鍵字,表定義的一部分。一個表不能有多個主關鍵字,並且主關鍵字的列不能包含空值。主關鍵字是可選的,並且可在 CREATE TABLE 或 ALTER TABLE 語句中定義。

外碼即外關鍵字。

如果公共關鍵字在一個關系中是主關鍵字,那麼這個公共關鍵字被稱為另一個關系的外鍵。由此可見,外鍵表示了兩個關系之間的相關聯系。以另一個關系的外鍵作主關鍵字的表被稱為主表,具有此外鍵的表被稱為主表的從表。外鍵又稱作外關鍵字。

男女check約束寫法如下:

createtable表名
(idintprimarykey,
sexvarchar(2)check(sexin('男','女')))

㈢ sql server2000裡面主碼和外碼 可不可以形象的解釋一下

主鍵和外鍵最重要的是保證數據的完整性和一致性。主鍵是本表的標識欄位,是唯一非空的,外鍵是描述了與其他表的關聯關系,有了這兩個約束條件可以使得資料庫的表有機的整合起來。主鍵應該比較要理解,可以是組合的也可以是單一欄位的,根據它就能篩選出唯一一條記錄,主鍵一般建議都需要。外鍵可以有也可以沒有,主要根據業務需求而定,如果不建立,對編程一般不會有什麼影響,但相應的錄入數據的時候就不對錄入的數據進行「參照完整性」檢查了。例如:
例如有兩個表
A(a,b) :a為主鍵,b為外鍵(來自於B.b)
B(b,c,d) :b為主鍵
如果我把欄位b的外鍵屬性去掉,對編程沒什麼影響。
如上面,A中的b要麼為空,要麼是在B的b中存在的值,有外鍵的時候,資料庫會自動幫你檢查A的b是否在B的b中存在。
建立外鍵原則:
1、 為關聯欄位創建外鍵。
2、 所有的鍵都必須唯一。
3、避免使用復合鍵。
4、外鍵總是關聯唯一的鍵欄位。

㈣ SQL語言創建表時候怎麼定義主碼和外碼

SQL語言創建表時候用Primary Key(屬性名)定義主碼,用Foreign Key(屬性名)定義外碼。

主碼是一種唯一關鍵字,表定義的一部分。一個表的主碼可以由多個關鍵字共同組成,並且主碼的列不能包含空值。主碼是可選的,並且可在 CREATE TABLE語句中用Primary Key(屬性名)定義。

將一個表的值放入第二個表來表示關聯,所使用的值是第一個表的主鍵值(在必要時可包括復合主鍵值)。此時,第二個表中保存這些值的屬性稱為外鍵,用Foreign Key(屬性名)定義。

如:

CREATE TABLE Customer

(SID integer,

CID integer,

Last_Name varchar(30),

First_Name varchar(30),

PRIMARY KEY (SID),ForeignKey(CID名));

(4)sql中外碼有用嗎擴展閱讀:

主碼不應包含動態變化的數據,如時間戳、創建時間列、修改時間列等。實際上,因為主碼除了唯一地標識一行之外,再沒有其他的用途了,所以也就沒有理由去對它更新。如果主碼需要更新,則說明主碼應對用戶無意義的原則被違反了。

主碼應當由計算機自動生成。如果由人來對主碼的創建進行干預,就會使它帶有除了唯一標識一行以外的意義。一旦越過這個界限,就可能產生人為修改主碼的動機,這樣,這種系統用來鏈接記錄行、管理記錄行的關鍵手段就會落入不了解資料庫設計的人的手中。

㈤ sql,如何用sql語句對一個已經編輯好的表在設置主碼和外碼

  1. sql中的主碼和外碼,屬於索引,SQL索引有兩種,聚集索引和非聚集索引,索引主要目的是提高了SQLServer系統的性能,加快數據的查詢速度與減少系統的響應時間

  2. 創建索引的語法:

    CREATE[UNIQUE][CLUSTERED|NONCLUSTERED]INDEXindex_name

    ON{table_name|view_name}[WITH[index_property[,....n]]

    說明:

    UNIQUE:建立唯一索引。

    CLUSTERED:建立聚集索引。

    NONCLUSTERED:建立非聚集索引。

    Index_property:索引屬性。

    UNIQUE索引既可以採用聚集索引結構,也可以採用非聚集索引的結構,如果不指明採用的索引結構,則SQLServer系統默認為採用非聚集索引結構。

  3. 刪除索引語法:

    DROPINDEXtable_name.index_name[,table_name.index_name]

    說明:table_name:索引所在的表名稱。

    index_name:要刪除的索引名稱。

  4. 修改索引的語法:

  5. ALTER INDEX命令在其用來做什麼方面多少有些欺騙性。截止到現在,ALTER命令總是與修改對象的定義有關。例如ALTER表以添加或禁用約束和列。ALTER INDEX是不同的-該命令與維護有關,而與結構完全不相干。如果需修改索引的組成,那麼只能DROP然後CREATE索引,或者用DROP_EXISTING=ON選項CREATE並使用索引。

  6. 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 }]
    )
    }[;]

㈥ 主碼和外碼各有什麼作用

1、主碼:保證實體的完整性;加快資料庫的操作速度;在表中添加新記錄時,ACCESS會自動檢查新記錄的主鍵值,不允許該值與其他記錄的主鍵值重復;ACCESS自動按主鍵值的順序顯示表中的記錄。如果沒有定義主鍵,則按輸入記錄的順序顯示表中的記錄。

2、外碼:主碼和外部碼提供了一種表示不同關系之間相互關聯的手段。如關系模式供應商和供應之間的關系就是通過供應商名稱來體現的。



建立主碼應該遵循的原則

1、主鍵應當是對用戶沒有意義的。如果用戶看到了一個表示多對多關系的連接表中的數據,並抱怨它沒有什麼用處,那就證明它的主鍵設計地很好。

2、永遠也不要更新主鍵。實際上,因為主鍵除了唯一地標識一行之外,再沒有其他的用途了,所以也就沒有理由去對它更新。如果主鍵需要更新,則說明主鍵應對用戶無意義的原則被違反了。

註:這項原則對於那些經常需要在數據轉換或多資料庫合並時進行數據整理的數據並不適用。

3、主鍵不應包含動態變化的數據,如時間戳、創建時間列、修改時間列等。

4、主鍵應當由計算機自動生成。如果由人來對主鍵的創建進行干預,就會使它帶有除了唯一標識一行以外的意義。一旦越過這個界限,就可能產生人為修改主鍵的動機,這樣,這種系統用來鏈接記錄行、管理記錄行的關鍵手段就會落入不了解資料庫設計的人的手中。

以上內容參考:網路-主關鍵字、網路-外部碼

㈦ sql 主碼和外碼

表外建主鍵:alter table 課程表add constraint major_id_pk primary key(課程號);表外建外碼:alter table 成績表add constraint major_id_fk foreign key
(課程號) references 課程表(課程號);成績表外碼 課程號 參照課程表 課程號

㈧ 在sql中 關系模式中我外碼的例子 誰幫我舉一個例子 比如什麼時候永外嗎 什麼時候不永外嗎 thank you

關系模式:實體自己的每個屬性值都來自本身,就不用外碼,比如 關系模式 學生(學號,姓名,性別),模式中實體學生的每個列的值都不依賴於其他表,就不需要用外碼(鍵)。
而關系模式 課程(課號,課名,先修課號) 課程實體里的先修課也是課程,所以這列的取值就要來自該表的主鍵課號,所以課號就做了主碼,先修課就是外碼。
還有關系模式 選課(學號,課號,成績) 你自己分析下這個模式…

㈨ 在SQL SERVER中,外碼是怎麼建立的有什麼作用

外碼就是其他欄位的主碼,外碼的取值只能是主碼。如果取其他的值就會報錯。建立的時候指定是哪個表中的哪個欄位的外碼就行