㈠ 如何定義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用命令創建主鍵與外鍵。
1、為了方便大家理解,使用一個例子來幫助大家理解。意思大概就是通過引用表二中的欄位完成對表一欄位的約束。方法:
㈢ sql中為一個工作表創建邏輯欄位
用外鍵關聯。
用外鍵關聯,主鍵唯一標識一條記錄,比如一個人的身份證。外鍵則是在其他表中引用另一個表的主鍵的欄位叫外鍵。如人的銀行卡記錄可能有多條,每條都會有你的身份證號碼、銀行帳號。身份證號碼就可以作為個人信息表的外鍵,主鍵和外鍵的建立可以通過企業管理器,在表上右鍵「設計」,摸索一下就知道了。
sql邏輯表、庫:可以理解為資料庫中的視圖,是一張虛擬表。可以映射到一張物理表,也可以由多張物理表組成,這些物理表可以來自於不同的數據源。對於mysql, Hbase和ES,要組成一張邏輯表,只需要他們有相同含義的key即可。這個key在mysql中是主鍵,Hbase中是生成rowkey用的值,是ES中的key。
㈣ SQL怎樣用命令設置主鍵
可以參考下面的方法:
建表的時候,可以直接在列名後面增加主鍵約束,比如:
IDchar(5)primarykey。
對已經建表的列增加主鍵約束:
alter table 表名addconstraint約束名 primary key (ID)
(4)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
㈤ 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中設置主鍵的作用
聯合主鍵就是用2個或2個以上的欄位組成主鍵。用這個主鍵包含的欄位作為主鍵,這個組合在數據表中是唯一,且加了主鍵索引。
可以這么理解,比如,你的訂單表裡有很多欄位,一般情況只要有個訂單號bill_no做主鍵就可以了,但是,現在要求可能會有補充訂單,使用相同的訂單號,那麼這時單獨使用訂單號就不可以了,因為會有重復。那麼你可以再使用個訂單序列號bill_seq來作為區別。把bill_no和bill_seq設成聯合主鍵。即使bill_no相同,bill_seq不同也是可以的。
㈦ 如何用sql 添加主鍵
操作步驟如下:
1、首先我們在這個StudentNo列上用你的滑鼠右擊,然後選擇裡面的修改,進行點擊,彈出
界面。
㈧ 在sql中怎樣設置主鍵語法
創建表
--------------------------------------------------------------------------------
CREATE TABLE TABLE_NAME(
column1 DATATYPE [NOT NULL] [PRIMARY KEY],
column2 DATATYPE [NOT NULL],
...
[constraint <約束名> 約束類型 (要約束的欄位名)... ]
);
說明:
TABLE_NAME --表名.
column1,column2 --列的名稱 不能取關鍵字
DATATYPE --是Oracle的數據類型,可以查看附錄.
NOT NULL /NULL --不可以/可以允許資料有空的.NULL一般省略.
PRIMARY KEY --是本表的主鍵。
CONSTRAINT --是對表裡的欄位添加約束.(約束類型有 Check,Unique,Primary key,not null,Foreign key)。
示例:
CREATE TABLE student(
s_id number(8) PRIMARY KEY,
s_name varchar2(20) NOT NULL,
s_sex varchar2(8) ,
clsid number(8) ,
CONSTRAINT u_1 UNIQUE(s_name),
CONSTRAINT c_1 CHECK (s_sex in ('MALE','FEMALE'))
);
表級約束
如 設置 兩列不能同時為空
ALTER TABLE tablename ADD CONSTRAINT check_name CHECK (col1 is not null or col2 is not null) ;
復製表
--------------------------------------------------------------------------------
CREATE TABLE TABLE as <SELECT 語句>
(需注意的是復製表不能復製表的約束);
示例:
CREATE TABLE test AS SELECT * FROM emp;
會將表emp的數據一並復制到test中,但約束沒有復制.
如果只復製表的結構不復製表的數據則:
CREATE TABLE test as (SELECT * FROM emp WHERE 1=2);
或者
CREATE TABLE test as (SELECT * FROM emp WHERE FALSE);