MySQL數據庫,初學SQL知識點引入

數據庫的相關概念:

DB:數據庫(Database):

即存儲數據的倉庫,其本質是一個文件系統。保存了一系列有組織的數據。

DBMS:數據庫管理系統(Database Management System):

是一種操縱和管理數據庫的大型軟件,用于建立、使用和維護數據庫,對數據庫進行統一管理和控制。用戶通過數據庫管理系統訪問數據庫中表內的數據。

SQL:結構化查詢語言(Structured Query Language):

專門用來與數據庫通信的語言。

RDBMS:關系型數據庫(Relational?Database Management System):

  • 關系型數據庫,模型是把復雜的數據結構歸結為簡單的二元關系(即二維表格形式)。

  • 關系型數據庫以行(row)和列(column)的形式存儲數據,以便于用戶理解。這一系列的行和列被稱為表(table),一組表組成了一個庫(database)。

  • 表與表之間的數據記錄有關系(relationship)。現實世界中的各種實體以及實體之間的聯系均用關系模型類表示。關系型數據庫,就是建立在關系模型基礎上的數據庫。

  • SQL就是關系型數據庫的查詢語言。

關系型數據庫的優勢:

  • 復雜查詢:可以用SQL語句方便地在一個表以及多個表之間做非常復雜的數據查詢。

  • 事務支持:使得對于安全性很高的數據訪問要求得以實現。

非關系型數據庫:

基于鍵值對存儲數據,不需要經過SQL層的解析,性能非常高。同時,通過減少不常用的功能,進一步提高性能。

關系型數據庫設計規則:

  • 關系型數據庫的典型數據結構就是數據表,這些數據表的組成都是結構化的。

  • 將數據放到表中,表再放到庫中。一個數據庫可以有多個表,每一個表都有一個名字,用來標識自己。表名具有唯一性。

  • 表具有一些特性,這些特性定義了數據在表中如何存儲(類似于“類”)。

表、記錄、字段

  • E-R(entity-relationship,實體-聯系)模型中三個主要概念:實體集、屬性、聯系集。

  • 一個實體集(class)對應于數據庫中的一個表(table),一個實體(instance)則對應數據庫表中的一行(row),也稱為一條記錄(record)。一個屬性(attribute)對應于數據表中的一列(column),也稱為一個字段(field)。

表的關聯關系:

  • 表與表之間的數據記錄有關系(relationship)。現實世界中的各種實體以及實體之間的各種聯系均用關系模型來表示。

  • 四種關聯關系:一對一關系,一對多關系,多對多關系,自我引用。

SQL的分類:

DDL(Data Define Language、數據定義語言):這些語句定義了不同的數據庫、表、視圖、索引等數據庫對象,還可以用來創建、刪除、修改數據庫和數據表的結構。

主要的語句關鍵字包括CREATE、DROP、ALTER、RENAME、TRUNCATE等。

DML(Data Manipulation Language、數據操作語言):用于添加、刪除、更新和查詢數據庫記錄,并檢查數據完整性。

主要的語句關鍵字包括INSERT、DELETE、UPDATE、SELECT等。

DCL(Data Control Language、數據控制語言):用于定義數據庫、表、字段、用戶的訪問權限和安全級別。

主要的語句關鍵字包括GRANT、REVOKE、COMMIT、ROLLBACK、SAVEPOINT等。

由于查詢語句使用的比較頻繁,所以很多人將查詢語句分出類作為一類:DQL(數據查詢語言),也有將COMMIT、ROLLBACK去出來稱為TCL(事物控制語言)。

SQL語言的規則與規范

基本規則:

  • SQL可以寫在一行或多行。為了提高可讀性,各子句分行寫,必要時使用縮進。

  • 每一條命令以;或\g或\G結束。

  • 關鍵字不能被縮寫也不能分行。

  • 關于標點符號:

?? ??? ??? ?? ?· 必須保證所有的括號、引號是成對結束的。

?? ??? ??? ?? ?· 必須使用英文狀態下的半角輸入方式(即要用英文輸入寫代碼,不能用非英文輸入)。

?? ??? ??? ?? ?· 字符串型和日期時間類型的數據可以使用單引號表示

?? ??? ??? ?? ?· 列的別名,盡量使用雙引號,不建議省略as。

MySQL大小寫的規范(建議遵守)

  • MySQL在Window環境下大小寫不敏感

  • MySQL在Linux環境下大小寫敏感

?? ??? ??? ?? ? 數據庫名、表名、表別名、變量名是嚴格區分大小寫的。

?? ??? ??? ?? ? SQL關鍵字、函數名、綁定變量等都大寫。

注釋:

單行注釋:

?? ??? ?方式①:#注釋文字(MySQL特有)

?? ??? ?方式②:-- 注釋文字(--后面必須有一個空格

多行注釋:

?? ?? ? /*注釋文字*/

命名規則:

  • 數據庫、表名不得超過30個字符,變量限制為29個。

  • 必須只能包含A-Z、a-z、0-9、_ 共63個字符。

  • 數據庫名、表名、字段名等對象名中間不要包含空格

  • 同一個MySQL軟件中,數據庫不能重名。同一個庫中,表不能重名。同一個表中,字段不能重名。

  • 必須保證字段沒有和保留字、數據庫系統或常用方法沖突。如果堅持使用,要在SQL語句中使用`(著重號)引起來。

  • 保持字段名和類型的一致性,在命名字段并為其指定數據類型的時候一定要保證一致性。假如數據類型在一個表里是整數,在另一個表里就別變成整數。

基本的SELECT ... FROM ... 結構:

SELECT ...(字段1,字段2,……) FROM ...(表名)

表名指字段所在的表名,如果字段并不在某個表,使用dual(偽表)當表名。

*符號放在字段處表示相應表中的所有的字段。

列的別名:

  • 重命名一個列,便于計算(建議別名簡短,并見名知意)。

  • 緊跟列名,可以選擇:在列名和別名之間加入關鍵字AS(也可以省略)。別名使用雙引號,以便于在別名中包含空格或特殊的字符并區分大小寫。

  • AS全稱:alias,別名。

例如:

SELECT sigma_man sigma ,? best_friend AS bsfd FROM classmate ,? teacher AS? "my teacher";

去除重復行:

在SELECT關鍵字后加上DISTINCT關鍵字即可將指定字段出現重復的行去除。

例如:

SELECT DISTINCT member_id FROM employee;

空值參與運算:

空值:NULL(意味著“無”)

所有的運算符或列值遇到NULL值,運算的結果都為NULL

著重號(` `):

若字段名、表名和保留字、數據庫系統或常用方法沖突,就要加上著重號` `引起來。

例如:SELECT * FROM `ORDER`

?查詢常數:

查詢操作時,若查詢的字段為一個常數,則會有相應的常數的列,列的內容都是此常數。

顯示表結構:

DESCRIBE 表名; (DESCRIBE也可以用DESC替換)

用于顯示表中的字段的詳細信息。

過濾數據:

語法:

SELECT 字段1,字段2……

FROM 表名

WHERE 過濾條件

·使用WHERE語句,將不滿足條件的行過濾掉。

·WHERE子句緊跟FROM子句

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

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

相關文章

董明珠:格力從制造商到自主創新企業的轉變之路

中國制造業的崛起是近幾十年來全球經濟舞臺上最顯著的事件之一,而格力電器作為中國制造業的代表之一,其漫長而堅定的自主創新之路,將其從一家傳統的制造商轉變為一個自主創新的企業,是中國制造業發展歷程中的一個亮點。本文將探討…

虛擬化之指令的Trap和仿真

有時,虛擬機監控程序需要在虛擬機(VM)中模擬操作。例如,VM內的軟件可能嘗試配置與功耗管理或緩存一致性相關的低級處理器控件。通常,您不希望將VM直接訪問這些控件,因為它們可能被用于突破隔離,或影響系統中的其他VM。 trap在執行給定操作(例如讀取寄存器)時引發異常…

2023年全國職業院校技能大賽-大數據應用開發-數據可視化

可視化題目與以往相同,做法類似,我這里展示得到語句后處理優化以后的代碼,以函數式來寫可視化,比以前400-500多行代碼簡潔到100多行。其他題目見本欄目,那里面的代碼都是沒有優化后的,這次主要以效率和精簡…

IDEA版SSM入門到實戰(Maven+MyBatis+Spring+SpringMVC) -Mybatis查詢中返回值四種情況

第一章 Mybatis查詢中返回值四種情況 1.1 查詢單行數據返回單個對象 /*** 通過id獲取員工信息*/ public Employee selectEmpById(int empId);<select id"selectEmpById" resultType"employee">SELECTid,last_name,email,salaryFROMtbl_employeeWHE…

Backend - Django JsonResponse HttpResponse

目錄 一、關系 二、使用 &#xff08;一&#xff09;data 字典傳值 1. HttpResponse &#xff08;1&#xff09;寫法 &#xff08;2&#xff09;前端接收 HttpResponse 回傳的值 2. JsonResponse &#xff08;1&#xff09;寫法 &#xff08;2&#xff09;前端接收 Js…

如何解壓沒有密碼的7-zip文件?

7z壓縮包設置了密碼&#xff0c;解壓的時候就需要輸入正確對密碼才能順利解壓出文件&#xff0c;正常當我們解壓文件或者刪除密碼的時候&#xff0c;雖然方法多&#xff0c;但是都需要輸入正確的密碼才能完成。忘記密碼就無法進行操作。 那么&#xff0c;忘記了7z壓縮包的密碼…

文件重命名大師:批量修改名稱的終極指南

在處理大量文件時&#xff0c;我們往往需要修改它們的名稱。無論是為了整理、歸檔還是為了滿足某種特定需求&#xff0c;重命名文件都是一項常見的任務。然而&#xff0c;手動一個一個地修改文件名無疑是一項耗時且容易出錯的工作。幸運的是&#xff0c;我們可以借助一些強大的…

Python---類的綜合案例

1、需求分析 設計一個Game類 屬性&#xff1a; 定義一個類屬性top_score記錄游戲的歷史最高分 定義一個實例屬性player_name記錄當前游戲的玩家姓名 方法&#xff1a; 靜態方法show_help顯示游戲幫助信息 類方法show_top_score顯示歷史最高分 實例方法start_game開始當前…

13、pytest為失敗的斷言定義自己的解釋

官方實例 # content of ocnftest.py from test_foocompare import Foodef pytest_assertrepr_compare(op, left, right):if isinstance(left, Foo) and isinstance(right, Foo) and op "":return["Comparing Foo instances:",f" vals:{left.val} !…

震坤行走進中國移動電商平臺業務推介啟動會助力政企采購升級

震坤行走進中國移動電商平臺業務推介啟動會助力政企采購升級 7月19日&#xff0c;震坤行受邀參與中國移動供應鏈管理中心在北京舉辦的“和悅彩同行 創供贏未來”主題活動&#xff0c;走入客戶一線面對面溝通&#xff0c;依托MRO領域服務能力為客戶提供專業解決方案&#xff0c…

node后端接口無法插入數據為emoji的表情的問題

原因 emoji的表情一般是這樣的\xF0\x9F\x98\x80或者是\xF0\x9F\x98 &#xff0c;事實上 一般數據庫的utf8的編碼類型都是能保存\xF0\x9F\x98 但是不能保存\xF0\x9F\x98\x80這種樣的emoji&#xff0c;要將數據庫編碼格式為utf8mb4 也就是utf8的超集 另外&#xff0c;除了 數據庫…

angular狀態管理方案(ngrx)

完全基于redux的ngrx方案&#xff0c;我們看看在angular中如何實現。通過一個簡單的計數器例子梳理下整個流程 一 安裝 &#xff1a;npm i ngrx/store 這里特別要注意一點&#xff1a;安裝 ngrx/store的時候會出現和angular版本不一致的問題 所以檢查一下angular/core的版本…

使用 HPA 和 TopologySpreadConstraints 實現可用區間等比擴容

1. 原理介紹 設置 HPA 每次最小擴容 Pod 數為可用區數量&#xff0c;以期可用區間 Pod 同步擴容設置 TopologySpreadConstraints 可用區分散 maxSkew 為 1&#xff0c;以盡可能可用區間 Pod 均勻分布 2. 實驗驗證 2.1. 準備 Kind 集群 準備如下配置文件&#xff0c;命名為 …

軟件測試面試題及答案解析

在軟件測試領域&#xff0c;面試是求職者進入這個行業的重要途徑。為了幫助大家更好地應對軟件測試面試&#xff0c;本文將為大家提供一些常見的軟件測試面試題及答案解析。 請簡要介紹一下軟件測試的目的和重要性。 答&#xff1a;軟件測試的目的是確保軟件產品的質量&#…

千問模型測試環境配置

配置千問環境比較順利&#xff0c;有些由于速度問題較慢&#xff0c;添加源之后提速很多&#xff0c;記錄如下&#xff1a; 1.創建虛擬環境 conda create -p /datanas3/chenjing/envs/qwen python3.8 2.激活虛擬環境 conda activate /datanas3/chenjing/envs/qwen 3.添加源 co…

“身份證信息批量核驗:高效解決管理難題,輕松提升工作效率“

尊敬的讀者們&#xff0c;您是否曾經因為身份證信息的核驗而感到煩惱&#xff1f;是否曾經因為手動核驗而感到繁瑣和耗時&#xff1f;現在&#xff0c;我們向您介紹一款全新的工具——身份證信息批量核驗器&#xff0c;它將幫助您一鍵解決管理難題&#xff0c;讓工作事半功倍&a…

嘗試通過AI模型進行簡單的編碼

一、前言 最近嘗試通過AI來編程&#xff0c;總體感覺還是能處理寫簡單的問題&#xff0c;復雜的問題目前還是無法解決。主要的痛點還是數據噪音&#xff0c;就是AI永遠不會承認它不會&#xff0c;它會給你的一個錯誤的信息&#xff0c;它也不會告訴你你的問題它暫時無法完整正…

Python基礎語法詳解,零基礎入門必須掌握的知識點

文章目錄 一、Python輸出1、repr() 或 str() 轉成字符串2、字符串填充空格進行格式化3、!a (使用 **ascii()**), !s (使用 **str()**) 和 !r (使用 **repr()**) 可以用于在格式化某個值之前對其進行轉化 二、Python標識符三、Python保留字符&#xff08;關鍵字&#xff09;四、…

代碼隨想錄算法訓練營第四十五天| 70 爬樓梯 322 零錢兌換 279 完全平方數

目錄 70 爬樓梯 322 零錢兌換 279 完全平方數 70 爬樓梯 本題可以轉化為完全背包問題進行解答。 class Solution { public:int climbStairs(int n) {vector<int>f(n 2);f[0] 1;int m 2;for(int i 1;i < n;i){for(int j 1;j < m;j){if(i > j)f[i] f[i - j]…

[Python系列] 文字轉語音

什么是TTS TTS 是 Text-to-Speech 的縮寫&#xff0c;中文稱為“文本到語音”。它是一種將書面文本轉換為自然聽起來的語音的技術。TTS 技術廣泛應用于各種場景&#xff0c;如智能助手、語音合成、電子閱讀器等。 TTS 技術通過機械的、電子的方法產生人造語音。它隸屬于…