『壹』 sql中主鍵的使用
其實很簡單,你就知道一下幾點就可以了,在以後的工作中就足夠了。
1,主鍵非空,也就是說被設定為主鍵的列在插入數據的時候就不能為空,如果為空SQL就會報錯。
2,主鍵是唯一的,一個表通過一個主鍵可以確定一條記錄,有一條記錄的主鍵是SF110如果你再向裡面插入SF110的記錄SQL就會報錯。
3,有時可以用兩個欄位來建立主鍵,這叫聯合主鍵。這種情況出現在當一個欄位無法唯一的時候要藉助另一個欄位來確保唯一性的時候。
主鍵一般都是挑選能夠唯一表示一條記錄的欄位來做,你比如說現在有一個「學生表」裡面有「學生編號」「學生姓名」「學生年齡」等
根據原則肯定要以「學生編號」為主鍵。
CREATE TABLE student
(sid char(4) not null PRIMARY KEY,
sname VARCHAR(10),
sage int,
)
sid 就是主鍵 唯一標識每一個學生
『貳』 請高手詳解SQL主鍵
所謂sql主鍵,說簡單點,就是能夠唯一確定一條資料庫記錄信息的一個欄位或單個欄位的組合。其實質,就是唯一性,這樣才能對資料庫信息進行唯一判定。
EMPLOYEE_TBL:name可以相同、phone可以相同、start_date可以相同、address可以相同,如果用它們中的任何一個做主鍵,就不能具體定位到某一個雇員,這樣就可以有多個雇員被查到,無法做到唯一性。而employee_number來說,一般就是每位雇員有一個編號,不會出現兩位雇員的編號一致,如果一致,那就是資料庫設計的不完善了,這樣它就可以做為主鍵,根據它查找的雇員,最終肯定會是一位,這就是唯一性。
同理,INVENTORY_TBL的主鍵是item_number, EQUIPMENT_TBL的主鍵是equipment_number.
大概就是這樣吧,說的不是很專業~~~
『叄』 在SQL 中怎樣在一張表中創建兩個主鍵
ALTER TABLE 選課表 x0dx0a ADD CONSTRAINT pk_選課表 PRIMARY KEY(學號, 課程編號);x0dx0ax0dx0a一個表只能一個主鍵.x0dx0ax0dx0a主鍵可以由2個欄位組成
『肆』 SQL資料庫練習題
1.DISTINCT、top
2.convert
3.查詢、更新、管理
4.主鍵、外鍵
5.ROLLBACK TRAN、COMMIT TRAN
6.sp_renamedb
8.identity
9.插入數據的列數必須和表中列數相等
10.空
12.truncate
14.原子性、一致性、隔離性、永久性
16.count、avg、len、substring
17.cast
18.windows
19.物理數據表
20.<>、!=
『伍』 SQL怎樣用命令設置主鍵
可以參考下面的方法:
建表的時候,可以直接在列名後面增加主鍵約束,比如:
IDchar(5)primarykey。
對已經建表的列增加主鍵約束:
alter table 表名addconstraint約束名 primary key (ID)
(5)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.社團(社團名稱 char(50),成立時間 datetime,社團負責人名 char(10),學號 decimal(10),總人數 number(10)),主鍵:社團名稱,外鍵:學號
2.社團成員(社團名稱 char(50),成員名 char(10),學號 decimal(10),加入時間 datetime,退出時間 datetime,團內職務 char(20)),主鍵:社團名稱+學號,外鍵:社團名稱,學號
3.社團活動申請(社團名稱 char(50),活動內容簡介 char(100),申請時間 datetime,申請地點 char(100),活動經費預算 decimal(10,2),批准情況 char(10),審核人 char(10)),主鍵:社團名稱+申請時間+申請地點,外鍵:社團名稱
4.社團活動(社團名稱 char(50),活動時間 datetime,活動地點 char(100),活動經費 decimal(10,2),活動效果 char(30)),主鍵:社團名稱+活動地點+活動地點,外鍵:社團名稱
5.社團成員活動情況(社團名稱 char(50),成員名 char(10),學號 decimal(10),活動時間 datetime,活動地點 char(100),承擔任務 char(40)),主鍵:社團名稱+學號,外鍵:社團名稱,學號
『柒』 SQL的練習,求答案!!!
/*創建Moonfox_db資料庫*/
use master
if exists(select * from sysdatabases where name='Moonfox_db')
drop database Moonfox_db
create database Moonfox_db
on
(
name='Moonfox_db_data',
filename='D:\Visual Studio 2008 & Sql server 2005\Sql server\Moonfox_db.mdf',
size=10,
filegrowth=2MB
)
log on
(
name='Moonfox_db_log',
filename='D:\Visual Studio 2008 & Sql server 2005\Sql server\Moonfox_db.ldf',
size=5,
filegrowth=20%
)/*創建Department表*/
use Moonfox_db
if exists(select * from sysobjects where name='Department')
drop table Department
create table Department
(
DID int identity (1,1)primary key,--部門編號,主鍵
Dname nvarchar(20),--部門名稱
Address nvarchar(50),--部門地址
Photo decimal(12,0),--電話
)/*創建Employee表*/
use Moonfox_db
if exists(select * from sysobjects where name='Employee')
drop table Employee
create table Employee
(
EID int identity (1,1)primary key,--職工編號,主鍵
Ename varchar(10),--職工名
Gender nchar(2) check(Gender='男' or Gender='女'),--性別,添加限制
Position nvarchar(10) check(Position='員工' or Position='組長' or Position='經理'),--職務,添加限制
Address nvarchar(50),--家庭地址
DID int,--部門編號,外鍵
foreign key(DID) references Department(DID)--外鍵約束
)
/*創建Care表*/
use Moonfox_db
if exists(select * from sysobjects where name='Care')
drop table Care
create table Care
(
CID int identity (1,1)primary key,--保健卡編號,主鍵
EID int,--職工號,外鍵
foreign key(EID) references Employee(EID),--外鍵約束
CheckDate datetime,--檢查身體日期
PhysicalCondition nvarchar(4) check(PhysicalCondition='一般' or PhysicalCondition='差' or PhysicalCondition='好'),--健康狀況
)
/*創建Care表約束*/
alter table Care
add
constraint DF_CheckDate default(getdate()) for CheckDate--預設,默認凈時間為當前計算機時間 路徑自己修改,試圖自己做,選擇語句自己寫。我該睡覺了,抱歉,你試著在sql server中運行下,我等著休息,也不知道寫的有沒有錯誤,沒時間幫你寫省下的了。不急著用的話我明天幫你寫吧。
『捌』 sql如何將不同主鍵的表聯系起來
表中的具體欄位不清呀
create table stu(
sid int primary key ,
sname char(8))
go
create table gro(
gid int primary key,
gname char(8))
go
create table stu_gro(
sgid int primary key not null identity(1,1), --主鍵值從 1 一直加
sid int ,
gid int )
--創建一個存儲過程
create proc insert_SG @sid int,@gid int
as
if(not exists (select sid from ddy where sid=@sid))
begin
insert into ddy(sid,gid) values(@sid,@gid)
print'成功插入'
end
else print'該學生已插入'
--執行存儲過程,@sid 為指定的學生,@gid 為指定的組
exec insert_SG '@sid','@gid'
『玖』 最近在學sql,請問有沒有一些操作的練習呢比如說一些多表查詢啊什麼的 感激不盡喔。。。
網上一般會有一些公用的資料庫可以下載,比如:國家代碼,IP地址庫,等等,你可以下載下來然後自己給自己設置題目來寫SQL語句就可以了。
我每次放URL都回答不了問題,就不放了,如果需要,使用Hi找我吧。