① sql我想定義一個 id 的欄位 讓他 非空 和 唯一 怎麼寫
一種是主鍵 建表的時候加上primary key 就滿足,另一種不是主鍵但是需要唯一,創建唯一索引alter table 表名 add constraint UQ_UNIQUE(id)
② mysql在建表時,如何能保證除了主鍵以外的某個鍵值是唯一的
create table tablename(
id not null primary key auto_increment,
這樣定義的就是唯一的!!
③ SQL中如何設置唯一性約束
alter table [protectionZone]add constraint cons_02 unique (zoneName)。
約束用於限制加入表的數據的類型。可以在創建表時規定約束(通過 CREATE TABLE 語句),或者在表創建之後也可以(通過 ALTER TABLE 語句)。
(3)sql唯一id除了主鍵擴展閱讀:
SQL具有數據定義、數據操縱和數據控制。
1、SQL數據定義功能:能夠定義資料庫的三級模式結構,即外模式、全局模式和內模式結構。在SQL中,外模式有叫做視圖(View),全局模式簡稱模式( Schema),內模式由系統根據資料庫模式自動實現,一般無需用戶過問。
2、SQL數據操縱功能:包括對基本表和視圖的數據插入、刪除和修改,特別是具有很強的數據查詢功能。
3、SQL的數據控制功能:主要是對用戶的訪問許可權加以控制,以保證系統的安全性。
④ SQL表內除了主鍵其他數據重復的如何刪除只保留一條
delete from table where exists (select 1 from table where tr_date=table.tr_date and tr_num=table.tr_num and tr_id=table.tr_id and tr_note=table.tr_note group by tr_date,tr_num,tr_id,tr_note having count(*)>1)
and id not in (select max(id) from table group by tr_date,tr_num,tr_id,tr_note having count(*)>1)
⑤ SQL中什麼叫主鍵,什麼是外鍵,有啥關系
說簡單點就是,主鍵就是唯一標識一列的約束,外鍵就是數據引用主鍵的一個約束兩者的關系就是,主鍵值必須是唯一的,也就是不能重復,外鍵引用了主鍵,那麼它的值就只能是主鍵中出現過的值,不能是主鍵未出現的值
⑥ sql復制一條記錄,除了主鍵
假設你的表名為A,主鍵為ID,要復制ID為1的記錄,新紀錄ID為999,要復制的記錄有多少個欄位都不用關心
select*into#tmpfromAwhereID=1
update#tmpsetID=999
insertintoAselect*from#tmp
⑦ 在sql中如何提高除主鍵外其他列的查詢效率
1.select 語句 只返回需要欄位,盡量不用要select * from table
2. where 條件先優先使用索引欄位, 非必要時不要使用非索引欄位
3 避免使用臨時表(#temp),如需要,可考慮使用變數表(@table),使用臨時表時,最後要刪除掉(drop table #temp)。
4 避免使用游標(Cursors), 如需要,可考慮使用while 循環.
5 避免使用if else 來分隔大查詢。
6 避免大查詢嵌套大查詢( in (select ….))
7.避免where 條件欄位使用函數 ,如 convert(varchar(10), charge_date, 121) = '2010-10-10' 可以修改為 charge_date between '2010-10-10 00:00:00' and '2010-10-10 23:59:59'
8 .避免where 條件使用charindex, 可以使用in 或 <> (不等於)替換。
9.避免Where 條件使用charindex; or 等
10. 可以用 = (等於)的不要使用 like
11.Like 可以左模糊或右模糊的,不要使用同時左右模糊.
12.In 和 exists 使用 子查詢數量級比主查詢小時,使用in 反之使用 exists
13.盡量避免使用case when then end; group by; distinct; order by ; sum; max; min 等函數。
14.可用Union all 時不要使用 union
⑧ mysql資料庫怎麼讓id自動增長,但ID不是主鍵。難道只有ID為主鍵時,才可以自增的么
從零蛋娃娃的回復中得到啟示,解決問題。
重新表述需求: id自增長,同時需要一個鍵uniquekey是唯一鍵。
解決方法就是:
把id在索引中設置索引類型為任意一個類型,比如normal,然後unique就可以設置為主鍵了。
或者反過來,id自增長,同時作為主鍵。 uniquekey在索引中索引類型設置為unique即可。
補充:考慮到主鍵能設置成外鍵,所以建議用以上第一種方式。
⑨ 資料庫設計中,如果一個表中除了唯一的主鍵外,沒有其他欄位,是保留這個表,還是把它作為其他表的屬性
主鍵是惟一的,但是主鍵可以是個集合,比如 學生表(學號,姓名,性別,班級) 其中每個學生的學號是唯一的,學號就是一個主鍵 課程表(課程編號,課程名,學分) 其中課程編號是唯一的,課程編號就是一個主鍵