MySQL增刪查改進階

  • 數據庫約束
  • 表的關系
  • 增刪查改

目錄

一.數據庫約束類型

NOT NULL約束類型

UNIQUE 唯一約束

DEFAULT 默認值約束

PRIMARY KEY:主鍵約束

FOREIGN KEY :W外鍵約束

二,查詢

count()兩種用法

sum,avg,max,min用法

?編輯

GROUP BY 子句

HAVING 條件

三,聯合查詢

內連接

外聯結

自連接

子查詢

合并查詢


一.數據庫約束類型
  • NOT NULL --只是表的某一列不能儲存NULL值
  • UNIQUE --保證某列的每行必須有為一值
  • DEFAULT -- 規定沒有給列賦值時的默認值
  • PRIMARY KEY -- 是NOT NULL 與 UNIQUE 的結合。確保某列有唯一標識,有助于快速特定尋找表中一個特定記錄
  • RFOREIGN KEY --保證一個表中的數據匹配到另一個表中的值的參照完整性
  • CHECK --保證列中的值符合特定的條件。

NOT NULL約束類型

創建表時可指定,某列不為空

可以看到報錯顯示,id這一列不能為空,因為被NOT NULL修飾


UNIQUE 唯一約束

指定某一列的值唯一不可重復

創建stu表,指定name這一列被UNIQUE修飾,表中插入兩個‘張三’,所以報錯,插入失敗。


DEFAULT 默認值約束

最初的默認值為NULL。插入數據時,如果某一列值為空,可以為其設定默認值

通過desc 表名 查看設置成功后的默認值

在未設置默認值前查看初始默認值

設置默認之后查看默認值


PRIMARY KEY:主鍵約束

指定某一列為主鍵,主鍵同時具有NOT NOLL 和UNIQUE的性質

主鍵通常搭配自增長auto_increment來使用。對于插入的數據對應的字段不給值時,使用最大值加一。

id這一列就是主鍵

自增長auto_increment什么意思?插入數據時可以不插入主鍵的值,讓數據庫自己分配,按照

1,2,3,4.....等順序的模式,也可以手動指定其他數值,

這幅圖中,在順序插入前四個數據時,在自增主鍵的作用下再次插入數據是從4開始,還是從101開始嘞?答案是101,自增主鍵如果不指定數據,則默認從最大的值加一開始插入。

主鍵通常是某個表里的唯一身份表示,一般不允許存在多個主鍵,但是數據庫里允許把多個列共同作為一個主鍵(聯合主鍵),一般以數字作為主鍵,偶爾用字符串為主鍵。


FOREIGN KEY :W外鍵約束

外鍵用于關聯其他主鍵唯一鍵

創建父表:

創建子表:

子表中的class引用自父表class中的class列class表中的數據制約啦stu表中的class

在子表中一定要確保插入的數據classid 在父表中存在。

插入:在子表中插入數據會觸發對父表的查詢,若沒有對應的數據會報錯

父表:class

在子表插入數據

在子表插入班級為6的學生會報錯,因為在插入子表數據時會觸發對父表的查詢,父表不存在會報錯。

在刪除附父表中的記錄被子表引用,就不能刪除啦,應該先刪除子表中的數據再回頭刪除附表中的數據

會報錯,此時外鍵正在引用父表中的數據。

正確刪除方法:

一定要確保刪除子表再刪除父表。


二,查詢
  1. 聚合查詢

常見的聚合查詢函數有? ? ? ? ? ? ? ? ?

COUNT([distinct] exper)? ????返回查詢到的數量
SUM? ??([distinct] exper)? ??返回查詢到的數量總和
AVG? ? ?([distinct] exper)? ??返回查詢到數據的平均值,非數字為意義
MAX? ? ?([distinct] exper)? ??返回查詢到數據最大值,非數字無意義
MIN? ? ? ([distinct] exper)? ??返回查詢到數據最小值,非數組無意義

count()兩種用法

先對select 進行查詢,根據結果再執行count

count(*)/? count(0) null也算進去

count(列名) null不算進去


sum,avg,max,min用法

GROUP BY 子句

select使用GROUP BY 子句可以指定列名進行分組查詢。

使用group by 指定某一個列,就會把列值相同的行回到一個組中,分完組后還可以針對每個組進行聚合查詢

select 列名 from 表名 group by 列名;

一個查詢可以包括分組前的條件和分組后的過濾條件

在上述的條件下,排除張三


HAVING 條件

在GROUP BY 子句進行分組的后,要對分組結果進行條件過濾,不能使用where語句,要使用having

顯示平均工資低于10000的角色和他的平均工資


三,聯合查詢
內連接

實際開發中數據往往來自不同的表,要多表聯合查詢,用一張表的每個記錄去和另一個表的記錄一一匹配就是笛卡爾積

以上四個表student包含學生個人信息,classes包含各個班級信息,coures包含課程,score包含個人分數

1.查詢許仙的成績

其中的,可以換成join where可以換成on?

2.查詢所有同學的成績及個人信息


外聯結

select 字段名 from 表名1 left join 表名2 on 篩選條件

外連接于內連接相似,

查詢‘老外學習中文’同學沒有開始成績,但是也要顯現出來


自連接

自連接是指同一張表連接自身進行查詢

SQL中進行條件查詢,是針對列于列之間比較的,不能把比較行,如果把一個表自己與自己鏈接

就可以比較行。

注意:在進行自連接的過程中,兩個表名不能相同,重命名其中一個表


子查詢

子查詢是嵌入再其他sql語句中的select語句,也叫嵌套查詢

select*from 表名 where 列名 = (select 列名 from student where 條件);

查詢與‘不行畢業同班同學’


合并查詢

實際應用中,為了合并多個執行結果,可以使用集合操作符union,union all?

使用union 和union all 要求查詢結果集中,字段一致。

select *from course where id<3 union select *from course where name='英文'

union取得結果集的并集,自動去除重復行

union all 不會去除重復行


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

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

相關文章

Vue3_創建項目

目錄 一、創建vue項目 1.下載vue 2.進入剛才創建的項目 3.安裝依賴 4.運行項目 ?5.打包項目放入生產環境 二、vue項目組成 1.項目文件結構 2.項目重要文件 Vue (發音為 /vju?/&#xff0c;類似 view) 是一款用于構建用戶界面的 JavaScript 框架。它基于標準 HTML、C…

Go語言中實現RSA加解密、簽名驗證算法

隨著互聯網的高速發展&#xff0c;人們對安全的要求也越來越高。密碼學中兩大經典算法&#xff0c;一個是對稱加解密&#xff0c;另一個是非對稱加解密&#xff0c;這里就來分享一下非對稱加密算法的代表&#xff1a;RSA加解密。 在Go語言中實現RSA加解密還是比較簡單的&#…

【安全產品】基于HFish的MySQL蜜罐溯源實驗記錄

MySQL蜜罐對攻擊者機器任意文件讀取 用HFish在3306端口部署MySQL蜜罐 配置讀取文件路徑 攻擊者的mysql客戶端版本為5.7(要求低于8.0) 之后用命令行直連 mysql -h 124.222.136.33 -P 3306 -u root -p 可以看到成功連上蜜罐的3306服務&#xff0c;但進行查詢后會直接lost con…

ai機器人電銷資源有哪些?真的能幫到我們提高效率嗎ai智能語音機器人部署

隨著互聯網科技的發展&#xff0c;各種各樣的科技產物都應用于電銷企業&#xff0c;ai機器人電銷就是其中一個。那么ai機器人電銷可靠嗎&#xff1f;ai機器人電銷資源有哪些&#xff1f;我們一起來看看。 AI機器人在電銷資源方面有以下一些用途和功能&#xff1a; 自動識別潛在…

for循環綁定id,更新html頁面的文字內容

需求&#xff1a;將方法中內容對齊 實現方式 給for循環中每個方法添加一個動態的id在DOM結果渲染完后&#xff0c;更新頁面數據&#xff0c;否則會報錯&#xff0c;找不到對應節點或對應節點為空 <view v-for"(item, index) in itemList" :key"index"…

OWASP十大API漏洞解析:如何抵御Bot攻擊?

新型數字經濟中&#xff0c;API是物聯網設備、Web和移動應用以及業務合作伙伴流程的入口點。然而&#xff0c;API也是犯罪分子的前門&#xff0c;許多人依靠Bot來發動攻擊。對于安全團隊來說&#xff0c;保護API并緩解Bot攻擊至關重要。那么Bot在API攻擊中處于怎樣的地位&#…

香橙派Kunpeng Pro測評

目錄 香橙派Kunpeng Pro開發板試用體驗 觀察理解與適用場景 體驗步驟 試用感受

【ARM+Codesys案例】T3/RK3568/樹莓派+Codesys枕式包裝機運動控制器

枕式包裝機是一種包裝能力非常強&#xff0c;且能適合多種規格用于食品和非食品包裝的連續式包裝機。它不但能用于無商標包裝材料的包裝&#xff0c;而且能夠使用預先印有商標圖案的卷筒材料進行高速包裝。同時&#xff0c;具有穩定性高、生產效率高&#xff0c;適合連續包裝、…

C語言 數組—— 一維數組下標越界問題分析

目錄 數組元素的訪問 一維數組元素的越界訪問 二維數組元素的越界訪問 小結 數組元素的訪問 訪問數組元素時&#xff0c; 下標越界 是大忌&#xff01; ? 編譯器通常不檢查下標越界&#xff0c;導致程序運行時錯誤 ? 下標越界&#xff0c;將訪問數組以外的空間 ? …

pyqt窗體水印

pyqt窗體水印 介紹效果代碼 介紹 給窗體加上水印 效果 代碼 import sys from PyQt5.QtWidgets import QApplication, QMainWindow from PyQt5.QtGui import QPainter, QColor, QFont,QPen from PyQt5.QtCore import Qtclass WatermarkedWindow(QMainWindow):def __init__(se…

鴻蒙4.2小版本推出,鴻蒙5.0已經不遠了

上個月&#xff0c;市場上迎來了華為鴻蒙系統4字開頭的小升級&#xff0c;版本來到了4.2版本。 我們先來看看4.2版本都給用戶帶來哪些特色&#xff1a; 界面切換更流暢&#xff1a;無論是響應速度還是操作手感&#xff0c;用戶都將感受到更加迅速和順滑的體驗 搜星速度的顯著…

工具:Visual Studio Code

一、VSCode生成exe 二、在vs中斷點調試 如果沒效果需要安裝如下與unity相連接的插件 三、注釋 1、代碼注釋 注釋和取消都是都是同一個命令&#xff1a;選中代碼&#xff0c;然后按住CtrlShift/ 2、方法或類注釋 /// 四、導航 五、將變量注釋展示到解釋面板 1、直接顯示 [Too…

Git提交時出現Merge branch ‘master‘ of ...之解決方法

最近遇到了一個問題 我是用git提交代碼的時候 分支上 顯示的是merge 意思是 合并代碼了 每次都會 創建一個分支 因為我和另一個小伙伴共同 開發一個項目 所以 小伙伴告訴我 總是創建新的分支 我細細看了一下 測試了一下 我們兩個人 修改不同的文件 同時修改 他提交了 我再提…

pip安裝軟件包提示“沒有那個文件或目錄”問題的處理

文章目錄 一、Python.h&#xff1a;沒有那個文件或目錄二、lber.h&#xff1a;沒有那個文件或目錄 一、Python.h&#xff1a;沒有那個文件或目錄 pip install -I python-ldap3.0.0b1 #異常提示In file included from Modules/LDAPObject.c:3:0:Modules/common.h:9:20: 致命錯…

React hooks - useLayoutEffect

useLayoutEffect 用法區別 用法 useLayoutEffect 和 useEffect 的使用方式很相似&#xff1a; useLayoutEffect 接收一個函數和一個依賴項數組作為參數只有在數組中的依賴項發生改變時才會再次執行副作用函數useLayoutEffect 也可以返回一個清理函數 useEffect(()>{retur…

【NVM】持久內存的架構

1 內存數據持久化 1.1 數據持久化 持久內存系統包含如下關鍵組件&#xff1a;微處理器、連接微處理器內存總線上的持久內存模組&#xff08;Persistent MemoryModule&#xff0c;PMM&#xff09;及持久內存上的非易失性存儲介質。 使用持久內存來實現數據的持久化&#xff0c…

SpringCloud系列(22)--Ribbon默認負載輪詢算法原理及源碼解析

前言&#xff1a;在上一篇文章中我們介紹了如何去切換Ribbon的負載均衡模式&#xff0c;而本章節內容則是介紹Ribbon默認負載輪詢算法的原理。 1、負載輪詢算法公式 rest接口第N次請求數 % 服務器集群總數 實際調用服務器下標&#xff08;每次服務器重啟后rest接口計數從1開始…

爬蟲在金融領域的應用:股票數據收集

介紹 在金融領域&#xff0c;準確及時的數據收集對于市場分析和投資決策至關重要。股票價格作為金融市場的重要指標之一&#xff0c;通過網絡爬蟲技術可以高效地從多個網站獲取實時股票價格信息。本文將介紹網絡爬蟲在金融領域中的應用&#xff0c;重點討論如何利用Scrapy框架…

展銳平臺+Android系統開發概要

文章目錄 一、縮略語二、系統分區1. UIS7885android13的系統分區 三、系統編譯四、開發調試 一、縮略語 BBAT&#xff1a;Baseband Auto Test&#xff0c;基帶自帶測試CRC&#xff1a;Cyclic Redundancy Check&#xff0c;循環冗余檢驗SPL&#xff1a;Secondary Program Loade…

給uniapp的擴展組件uni-file-picker設置默認顯示的圖片

官方給出的代碼如下所示&#xff0c;但是按照官網給出的代碼圖片并沒有顯示出來。 <template><uni-file-picker readonly :value"fileLists" :imageStyles"imageStyles" file-mediatype"image"></uni-file-picker> </temp…