【百日精通JAVA | SQL篇 | 第四篇】約束

SQL這一塊沒什么難度,主要是一個熟練度,稍微上點難度的地方,其實在于查,比較復雜,涉及到很多問題。

指定列插入

??????? 使用指定列插入的時候,未被指定的列使用默認值進行存儲,默認值為空。

默認值設置

??????? default關鍵字,在設置字段時,可以對其默認值進行修改

Primary Key 主鍵

??????? 主鍵約束,主鍵就是一條數據-身份標識

??????? 通過這個約束,來指定某個列作為主鍵

??????? 1)非空

??????? 2)不能重復

???????? 一個表,只能有一個主鍵,但是一個主鍵可以對應多個列,我們稱之為聯合主鍵。

Primary Key auto_increment 自增主鍵

??????? 主鍵,往往是一個整數類型的id,要求不能重復。允許客戶端,在插入數據時候,不手動指定主鍵的值,而是交給MYSQL自行分配,確保分配出來的這個主鍵的值,是和之前不重復的。

??????? primary key auto_increment 自增主鍵 意味著數據庫自行分配一個鍵值.

??????? 那如果再次插入數據的時候,id自動分配的是4還是11?

??????? 數據庫記錄了,當前表中id最大值,此時id自動分配的是11.

??????? 前面的4 5 6 7... 浪費了也無所謂,空間非常大,即便我們浪費幾千、幾萬個也無所謂

??????? 一共可以表示幾十億個數據。

??????? mysql服務器會維護這樣的最大值

??????? 如果mysql是一個單個節點的系統,按照上述自增主鍵的策略,是沒問題的

??????? 如果mysql是一個分布式系統,搞了好幾個主機,每個主機都有mysql,讓他們相互配合,此時,自增主鍵,就無法保證唯一性了。

??????? 注意:每個主機存儲時都只會存儲最大數值的id,那么此時就會出現重復

FOREIGN KEY: 外鍵約束

????????當前這個表的哪一類要受到約束

??????? 在這個代碼中,需要明確交代,哪個表的那一列要受到哪一個表的那一列的約束

create table student(
studentId int primary key auto_increment,
name varchar(20),
classId int,
foreign key (classId) references class(classId));

插入或者修改子表受約束的這一列數據,就需要保證插入/修改后的結果,得在父表中存在!!

刪除/修改 父表中的記錄,就需要看看這個記錄是否在子表中被使用了,如果被使用了,則不能進行修改或者刪除。約束是雙向的

索引

設置外鍵的時候,就會導致在操作子表的時候,頻繁訪問父表

這一個查詢操作,是很耗時間的,為了加快查詢速度,如果父表的ID這一列帶有索引的話,就很好了

索引:相當于頁碼,我們提前知道這個id在書上第幾頁,直接翻到即可,primary key和unique都帶有索引,自動創建索引,因此沒有索引無法創建外鍵

????????

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/76954.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/76954.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/76954.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

http協議版本的區別 -- 2和3

目錄 http2和http3的區別 傳輸層協議 QUIC協議 介紹 連接建立與握手 建立安全連接的過程 RTT 建連為什么需要兩個過程 原因 解決 QUIC協議的1-RTT 建連 必要性 連接過程 第一次握手(Client Hello) 版本號 key_share 其他 第二次握手 介紹 Server Hello 身…

21 天 Python 計劃:MySQL 庫相關操作

文章目錄 前言一、系統數據庫1. information_schema2. performance_schema3. mysql4. test 二、創建數據庫1. 語法2. 數據庫命名規則 三、數據庫相關操作1. 查看數據庫2. 選擇數據庫3. 刪除數據庫4. 修改數據庫 總結 前言 Python是一種強大且易于學習的編程語言。通過這個21天的…

手撕LLM(二):從源碼出發,探索LoRA加載、推理全流程

接上回接著說,前面我們通過分析源碼,了解了大模型推理的詳細流程,包括提示詞從輸入,到對話模版包裝,到tokenID轉換,到Embedding詞向量轉換;通過大模型推理,再將大模型輸出進行最后一…

WPS宏開發手冊——常見問題

目錄 系列文章6、常見問題 系列文章 使用、工程、模塊介紹 JSA語法 JSA語法練習題 Excel常用Api Excel實戰 常見問題 附錄 6、常見問題 6.1、編輯完宏后會自動保存,下次打開文件會提醒是否啟用宏,點擊啟用會自動加載上次編輯的…

【Android安卓移動計算】實現項目一[模擬器啟動項目]

文章目錄 新建項目項目結構介紹說明程序自動生成:圖片和樣式文件夾:Training1\app\src\main\res\drawable布局文件文件夾:Training1\app\src\main\res\layoutJava文件夾:Training1\app\src\main\java\com\example\training1Androi…

快 速 冪

暴力肯定會超時 3^10 9^5 9*9^4 9*81^2 9*18^2^1 先對b判斷奇偶 偶數:對b/2,對a平方 奇數:先*a,再對a平方,b/2 取余注意:(3^10)%k( 9 * 18^2^1)%k(( 9%k )%k * (18^2^1)%k)%k

網絡釣魚攻擊的威脅和執法部門的作用(第二部分)

執法部門在打擊網絡釣魚中的作用 雖然網絡釣魚可能始于一封欺騙性的電子郵件或短信,但其后果可能遠遠超出個人收件箱的范圍,影響企業、經濟甚至國家安全。隨著網絡釣魚攻擊的規模和復雜性不斷增加,執法機構站在前線,努力預防、調…

Data_Socket和UDP_Socket

Data_Socket 和 UDP_Socket 是兩種不同類型的網絡套接字,它們用于不同的協議和應用場景。以下是它們的主要區別: 協議類型: UDP_Socket:使用的是 UDP(User Datagram Protocol) 協議,這是一種無連…

2025高頻面試算法總結篇【排序】

文章目錄 直接刷題鏈接直達把數組排成最小的數刪除有序數組中的重復項求兩個排序數組的中位數求一個循環遞增數組的最小值數組中的逆序對如何找到一個無序數組的中位數鏈表排序從一大段文本中找出TOP K 的高頻詞匯 直接刷題鏈接直達 把一個數組排成最大的數 劍指 Offer 45. 把…

模型壓縮技術從零到一

模型壓縮是深度學習中的重要技術,旨在減小模型尺寸和計算需求,特別適合在移動設備或嵌入式系統上部署。 要點 模型壓縮技術可以顯著減小模型尺寸和計算需求,適合資源受限設備。主要技術包括剪枝、量化、知識蒸餾、低秩分解和輕量級模型設計…

浮點數精度問題

目錄 ieee754標準解決方法 和c語言一樣,所有以ieee754標準的語言都有浮點數精度問題,js也有浮點數精度問題,并且因為是弱類型語言這個問題更嚴重,js的Number類型的數據都被視為浮點數 ieee754標準 js的數字類型就相當于c語言doub…

超大規模數據場景(思路)——面試高頻算法題目

目錄 用4KB內存尋找重復元素 從40個億中產生不存在的整數【位】 如果只讓用10MB空間存儲? 初次遍歷 二次遍歷 用2GB內存在20億個整數中查找出現次數最多的數【分塊】 從億萬個URL中查找問題【分塊 堆】 40億個非負整數中找出現兩次的數【位 不過多個位哈】 …

開源身份和訪問管理方案之keycloak(三)keycloak健康檢查(k8s)

文章目錄 開源身份和訪問管理方案之keycloak(三)keycloak健康檢查啟用運行狀況檢查 健康檢查使用Kubernetes下健康檢查Dockerfile 中 HEALTHCHECK 指令 健康檢查Docker HEALTHCHECK 和 Kubernetes 探針 開源身份和訪問管理方案之keycloak(三&…

FATFS備忘

概述 FATFS文件系統可以掛載SD卡也可以掛載FLASH eMMC等設備 SD卡需要格式化為FAT32模式 塊大小默認即可 移植 SD卡 SD卡扇區大小是 512B SD卡 SDIO模式 可以直接在cubeMX里一鍵設置 先設置好SD卡的設置 這個是選擇支持中文 其余是默認 這個是檢測引腳可以留空 當SD卡插入拔出…

唯美社區源碼AM社區同款源碼

源碼介紹 唯美社區源碼AM社區同款源碼 后端修改application.properties文件內容為你的數據庫 前端修改/config/config.js文件內容為你的后端地址 這兩個文件里要修改的地方我已經用中文標注出來了 截圖 源碼免費下載 唯美社區源碼AM社區同款源碼

現代Web應用的多標簽選擇組件:設計哲學與工程實踐

引言:標簽選擇的重要性與挑戰 在信息爆炸時代,標簽系統已成為內容組織的核心基礎設施。研究表明: 使用標簽系統的平臺用戶留存率提高35% 良好的標簽選擇體驗可提升內容發現效率58% 80%的用戶更傾向于使用提供可視化標簽選擇的應用 本文將…

P3799 小 Y 拼木棒

題目背景 上道題中,小 Y 斬了一地的木棒,現在她想要將木棒拼起來。 題目描述 有 n 根木棒,現在從中選 4 根,想要組成一個正三角形,問有幾種選法? 答案對 1097 取模。 輸入格式 第一行一個整數 n。 第…

Perl 條件語句

Perl 條件語句 引言 在編程中,條件語句是執行分支邏輯的關鍵部分。Perl 作為一種強大的腳本語言,提供了豐富的條件語句,使得開發者能夠根據不同的條件執行不同的代碼塊。本文將深入探討 Perl 中的條件語句,包括 if、unless、els…

流量特征分析-蟻劍流量分析

任務: 木馬的連接密碼是多少 這是分析蟻劍流量,可能是網站的,wireshark過濾http 追蹤流http得到 1就是連接密碼 flag{1}黑客執行的第一個命令是什么 取最后的執行命令。base64解密得 除了id不是蟻劍自帶的命令,其他的都是&…

問題1:Sinal 4在開啟PAC檢查的設備崩潰

? 問題信息 硬件不支持PAC(Pointer Authentication),此類錯誤就是signal 11的錯誤,崩潰信息如下: Build fingerprint: google/sdk_gphone64_arm64/emu64a:16/BP22.250221.010/13193326:userdebug/dev-keys Revision: 0 ABI: arm64 Timestamp: 2025-04-06 11:33:13.923…