MySQL 知識點小結

来源:https://www.cnblogs.com/luisblog/archive/2022/11/01/16849491.html
-Advertisement-
Play Games

操作mysql的命令 cmd命令行中查看mysql版本: mysql -V mysql --version 登陸mysql: mysql -uroot -pluis mysql -uroot -p 在mysql中查看資料庫版本: select version(); 查看所有資料庫: show dat ...


------------------ 操作mysql的命令 --------------------

cmd命令行中查看mysql版本:
mysql -V
mysql --version

登陸mysql:
mysql -uroot -pluis
mysql -uroot -p

在mysql中查看資料庫版本:
select version();

查看所有資料庫:
show databases;

切換資料庫:
use xxx;

查看當前庫中的表:
show tables;

查看其他庫中的表:
show tables from 庫名;

創建資料庫:
create database xxx;

刪除資料庫:
drop database xxx;

導表:(需要先有資料庫)
source sql腳本;

查看表結構:
desc 表名;

查看當前庫:
select database();

終止一條語句:
\c

退出mysql:
exit 或 Ctrl + c

查看某建表語句:
show create table 表名;

------------------ SQL語句 --------------------
條件查詢 between and
條件查詢 is null 和 is not null
and or
條件查詢 in
模糊查詢 like
數據排序 desc 和 asc
分組函數 group by
多欄位分組查詢
group by 之 having 二次過濾
去除重覆記錄 distinct
判空函數 ifnull()
內連接、外連接、全連接
內連接:等值連接、非等值連接、自連接
外連接:左外連接、右外連接
多表連接查詢
夠用測試題:找出每一個員工的部門名稱、工資等級以及上級領導(內連接和外連接之多表查詢)
select、where、from 後嵌套子查詢(from後接子查詢用的最多)
union 數據拼接
分頁查詢 limit mysql特有

desc asc 預設升序
count() 分組函數/多行處理函數
分組函數(sum,count,max,min,avg)自動忽略null
分組函數不可直接用於while子句中,因為分組函數是在group by之後執行,而group by是在while之後執行
ifnull() 空處理函數 有null參與的運算結果都為null
count(
) 和 count(欄位) 區別:
count(*) 統計總記錄條數
count(欄位) 統計不為null的該欄位記錄的條數
分組函數一般都會和group by聯合使用
重要結論:當一條語句後面有group by的話,select後面只能跟分組函數和參與分組的欄位,其他
欄位不能跟,有的話會有問題!(mysql中無意義,oracle中直接報錯。)
多欄位聯合分組:group by後使用逗號分隔,按照欄位先後順序進行分組。
查詢結果去重用distinct關鍵字
distinct出現在多欄位最前面表示多欄位聯合去重

建表create、添加數據insert、修改數據update、刪除數據delete、刪除大表中數據truncate(留表頭,刪其他數據,不可回滾,永久刪除)

表的複製create as select、表的刪除drop

總結 DQL 語句執行順序:

select      5
	xxx
from       1
	xxx
where     2
	xxx
group by  3
	xxx
having     4
	xxx
order by  6
	xxx;

約束:
非空約束: not null 只存在列級
唯一性約束:unique 列級&表級(唯一不可重覆,但是可以為null)
主鍵約束:primary key 列級&表級(唯一不可重覆,且不可為null)
外鍵約束:foreign key(欄位) reference 表名(一般填父表主鍵)
原則:
刪除:先刪除子表,再刪除父表
建表:先創建父表,再創建子表
主鍵自增:primary key auto_increment

三大搜索引擎:
MyISAM(不支持事務,但可壓縮,占空間小,最常用的)
InnoDB(支持事務,安全,但執行效率較低,mysql預設引擎)
MEMORY(不支持事務,但查詢效率最高,數據存在記憶體中,斷電清空)

事務四大特性:
原子性:最小單元,不可再分
一致性:同時成功,同時失敗
隔離性:四大隔離級別(讀未提交、讀已提交[oracle預設]、可重覆讀[mysql預設]、串列化讀)

使用分組函數後,查詢的時候只允許有參與分組的欄位和分組函數,其他欄位不允許寫,
寫了的話,其結果顯示無意義。在oracle中會報錯!

DQL 數據查詢語言 (Date Query Language) select
DML 數據操控語言 (Date Manipulation Language) insert delete update
DDL 數據定義語言 (Date Definition Language) create drop alter
TCL 事務控制語言 (Transactional Control Language) commit rollback
DCL 數據控制語言 (Data Control Language) grant revoke

資料庫設計三範式:
第一範式:所有表必須有主鍵,每個欄位原子性不可再分
第二範式:所有非主鍵欄位完全依賴主鍵,不能產生部分依賴
第三範式:所有非主鍵欄位完全依賴主鍵,不能產生傳遞依賴

口訣:
多對多,三張表,關係表兩個外鍵。
一對多,兩張表,多的表加外鍵。

目的:減少數據冗餘

提醒:實際開發中,以滿足客戶需求為主,有時候會拿冗餘換執行速度。
(多表聯查會降低執行速度,放一起雖然冗餘,但效率有時會高一些)

一對一設計兩種方案:主鍵共用、外鍵唯一
情景:用戶登錄和用戶詳情,登錄單獨出一張表就不用查全部信息。

分組函數是在分完組後可用,所以可以用在having二次過濾中!!!

select
	deptno,count(*)
from
	emp
group by
	deptno
having
	count(*) >= 5;

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 內核中的`InlineHook`函數掛鉤技術其實與應用層完全一致,都是使用劫持執行流並跳轉到我們自己的函數上來做處理,唯一的不同只有一個內核`Hook`只針對內核API函數,雖然只針對內核API函數實現掛鉤但由於其身處在最底層所以一旦被掛鉤其整個應用層都將會受到影響,這就直接決定了在內核層掛鉤的效果... ...
  • 作者:農民工老王 來源:blog.csdn.net/monarch91/article/details/122709576 我是一個非科班出身的程式員,大學本科時的專業和編程無關,畢業後做了幾年事業單位後,才中途轉行做了軟體開發。 我一入行就聽說了35歲危機:程式員到了35歲後,如果沒有進入管理層, ...
  • python爬蟲基本概述 一、爬蟲是什麼 網路爬蟲(Crawler)又稱網路蜘蛛,或者網路機器人(Robots). 它是一種按照一定的規則, 自動地抓取萬維網信息的程式或者腳本。換句話來說,它可以根據網頁的鏈接地址自動獲取網頁 內容。如果把互聯網比做一個大蜘蛛網,它裡面有許許多多的網頁,網路蜘蛛可以 ...
  • Web項目開發中,經常會有一些靜態資源,被放置在resources目錄下,隨項目打包在一起,代碼中要使用的時候,通過文件讀取的方式,載入並使用; 今天總結整理了九種方式獲取resources目錄下文件的方法。 其中公用的列印文件方法如下: 查看代碼 /** * 根據文件路徑讀取文件內容 * * @p ...
  • 1 # 這是一個示例 Python 腳本。 2 3 # 按 ⌃R 執行或將其替換為您的代碼。 4 # 按 雙擊 ⇧ 在所有地方搜索類、文件、工具視窗、操作和設置。 5 import sys 6 import pygame 7 import random 8 9 game = None 10 BOMB ...
  • Shift4 非同步複位同步置數和使能。 module top_module( input clk, input areset, // async active-high reset to zero input load, input ena, input [3:0] data, output reg ...
  • 本章開始`LyShark`將介紹如何在內核中實現`InlineHook`掛鉤這門技術,內核掛鉤的第一步需要實現一個動態計算彙編指令長度的功能,該功能可以使用`LDE64`這個反彙編引擎,該引擎小巧簡單可以直接在驅動中使用,LDE引擎是`BeaEngine`引擎的一部分,後來讓`BeatriX`打包成... ...
  • 今天我們來聊一聊關於JWT授權的事情。 JWT:Json Web Token。顧名思義,它是一種在Web中,使用Json來進行Token授權的方案。 既然沒有找好密碼,token是如何解決信任問題的呢? 解決信任問題,只需要解決兩個問題即可: token是不是來自我信任的機構頒發 token中的信息 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...