SQL 一個表中可不可以沒有主鍵
主鍵不是非要不可,可以從:
1.是否滿足業務要求
2.數據查詢效率(主鍵可以提高查詢效率,當然合理的索引替代也可以)
這兩個角度權衡是否需要主鍵。
這要看表的功能. 利用來存儲大量數據,並需要經常查詢的,建立主鍵可以加快查詢效率從而降低服務器的負擔. 如無此需求,建立反而多耗用服務器資源.
設置不設置主鍵主要看業務或者需求來說
對多張沒有關聯的表操作的話,不設置也沒有什麽影響
主鍵只是說對一種表和表關系的關聯而已,還有就是在建主鍵的時候會自動添加個索引,某些情況下可以增加查詢速度
原文出自:https://www.cnblogs.com/yangwujun/p/7132623.html
SQL 一個表中可不可以沒有主鍵
相關推薦
SQL 一個表中可不可以沒有主鍵
一個 cnblogs 兩個 簡單的 www. best 主鍵 htm logs 主鍵的作用: 1)保證實體的完整性; 2)加快數據庫的操作速度 3)在表中添加新記錄時,數據庫會自動檢查新記錄的主鍵值,不允許該值與其他記錄的主鍵值重復。 4) 數據庫自動按主鍵值的順序
Oracle中查詢沒有主鍵的表
SELECT * FROM user_tables A WHERE NOT EXISTS ( SELECT * FROM user_constraints b WHERE A .table_name = b.table_name AN
如何獲取數據表中自增主鍵的值
兩個 包含 enc gpo into int acl sql emp 一、MySql數據庫 當向數據庫中插入一條數據的時候,默認是拿不到自增主鍵的值的, 需要設置如下兩個屬性才可以拿到主鍵值! 設置userGeneratedKeys屬性值為true:使用自動增長的主
當資料庫表中不存在主鍵
select @rownum :[email protected] + 1 AS rowNum, a.* from (select @rowNum := 0) r, tableName a order by a.fileName 上面的查詢語句中顯示的內容就是將rowNum作為一個
解決mybatis註解開發時兩表在一個方法裡面新增,一個表自動生成的主鍵作為另一個表的外來鍵新增的問題
1、mapper層裡的方法上添加註解: 實體類屬性:cExperimentaltaskid(id) 表字段:c_experimentaltaskid(主鍵id欄位) @Options(useGeneratedKeys = true, keyProperty = "cExperimentalta
sqlserver中檢視沒有主鍵值但是想進行分組計數查詢時該怎麼處理?
sqlser的view平時用的很多了,但是一直都是當做一個虛擬表格來使用。 最近碰到一個需求,要求把原有的資料進行分組查詢,同時還需要進行計數統計。 原有邏輯就是通過entity和view配合直接顯示在頁面上,在view裡沒有主鍵值,所以顯示新資料時總是達不到要求, 因此將對映表中的ID加入view裡,
sql建立表的時候設定主鍵、標識、欄位欄位額外屬性(如說明)以及預設值
USE [DBName] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[TabStudent]
如何在資料庫表中建立複合主鍵
(即多個欄位同時作為主鍵)主鍵是資料庫表的一個重要屬性,建立主鍵可以避免表中存在完全相同的記錄,也就是說主鍵在一張表中的記錄值是唯一的。 建立主鍵有兩種方法:一種是在資料庫提供的GUI環境中建立,另一種是通過SQL語句執行建立,下面分別介紹。 1.在資料庫提供的GUI環境中建立(以SQL7為例)。 輸
如何在sqlserver資料庫表中建立複合主鍵
主鍵是資料庫表的一個重要屬性,建立主鍵可以避免表中存在完全相同的記錄,也就是說主鍵在一張表中的記錄值是唯一的。 建立主鍵有兩種方法:一種是在資料庫提供的GUI環境中建立,另一種是通過SQL語句執行建立,下面分別介紹。 1.在資料庫提供的GUI環境中建立(以SQL7為例)。
oracle 表結構、表字段、表中資料、主鍵約束的相關操作
1.表字段的的操作1)增加欄位語法:alter table tablename add (column datatype [default value] [null/not null] ….);(比較增加主鍵約束:alter table table_name add cons
sql在沒有主鍵的情況下刪除表中的重複欄位
1.查詢不重複的資料存到臨時表裡,刪除掉原表,然後將臨時表的資料存到原表裡,上程式碼: Select distinct * into Tmp from a Drop table a Select * into a from Tmp Drop table Tmp 2.當原表
SQL - 創建一個學生表,要求有主鍵約束和非空約束
creat red 要求 pri har 學生 not null clas sql CREATE TABLE [dbo].[Student] ( [ID] [int] NOT NULL, [Name] [nchar](10) NOT NULL, [Age] [in
SQL中的每一張表都必須設有主鍵嗎
說明 class 行數 資源 合並 ESS 有意義 主鍵 鏈接 問題描述:公司的數據庫表有時候會看到沒有主鍵的,SQL中的每一張表都必須設有主鍵嗎? 主鍵的作用: 1)保證實體的完整性; 2)加快數據庫的操作速度; 3)在表中添加新記錄時,數據庫ACCESS會自動檢
mysql 查詢所有資料庫中沒有主鍵的表
mysql 查詢所有資料庫中沒有主鍵的表: select table_schema,table_name from information_schema.tables where (table_schema,table_name) not in( select distinct t
數據庫中創建表(包括創建主鍵,外鍵,非空列,唯一)
分享 建立 包括 直接 外鍵約束 多個 rim 但是 spa 創建表(包括創建主鍵,外鍵,非空列,唯一) - PROS - 博客園 http://www.cnblogs.com/CodingArt/articles/1621921.html ***************
SQL查詢一個表中另外一個表不存在的數據-轉
spa 使用 左連接 lec left join count tis 相對 statistic #方法一:使用 not in ,容易理解,效率低 ~執行時間為:1.395秒~SELECT COUNT(1) FROM ecs_goods WHERE ecs_goods.
InnoDB中沒有主鍵是如何運轉的
clas inno without ole tps b- innodb http -a https://blog.jcole.us/2013/05/02/how-does-innodb-behave-without-a-primary-key/InnoDB中沒有主鍵是如何運
SQL Server(MySql)中的聯合主鍵(聯合索引) 索引分析
判斷 reat 系統 lap creat insert 結果 問題 select 最近有人問到這個問題,之前也一直沒有深究聯合索引具體使用邏輯,查閱多篇文章,並經過測試,得出一些結論 測試環境:SQL Server 2008 R2 測試結果與MySql聯合索引查詢機制類似,
sql中一個表的數據插入到另一個表中sql語句怎麽寫?謝謝!
另一個 來電 一個 保留 生日 ongl 讓我 短信 都是 <p> 有了朋友,她不再感到孤獨,不再覺得無,助,不再產生自殘,她笑了,發自內心的真正的笑。她決定把心中的一切毫無保留地向他傾訴,她與他約好了時間。 但他太忙了,太忙了。於是,她在QQ上留言,在手機上
sql之將一個表中的數據註入另一個表中
一個表 .com 分享 兩個 image hbm inf left info sql之將一個表中的數據註入另一個表中 需求:現有兩張表t1,t2,現需要將t2的數據通過XZQHBM相同對應放入t1表中 t1: t2: 思路:left join