SQL學習記錄01

什么是SQL?
Structured Query Language (結構化查詢語言),與關系型數據庫進行通信的標準語言。

什么是數據庫?

“按照數據結構來組織、存儲、和管理數據的倉庫。”

一個長期存儲在計算機內的、有組織的、可共享的、統一管理的大量數據的集合

SQL的種類有什么?

DDL:? Data Definition Language 數據定義語言,用來定義數據庫對象(數據庫,表, 字段)

DML:Data Manipulation Language 數據操作語言,用來對數據庫表中的數據進行增刪改

DQL: Data Query Language 數據查詢語言,用來查詢數據庫中表的記錄

DCL: Data Control Language 數據控制語言,用來創建數據庫用戶、控制數據庫的 訪問權限

TCL: Transaction Control Language 事務控制語言,是一個或一組SQL語句組成的一個執行單元,這個執行單元要么全部執行,要么全部不執行。

DQL相關:

查詢語句語法結構: SELECT 字段列表 FROM 表名列表 WHERE 條件列表GROUP BY 分組字段列表 HAVING 分組后條件列表 ORDER BY 排序字段.

DQL 查詢語句分類: 基本查詢(不帶任何條件)

??? 條件查詢(WHERE)

??? 聚合函數(count、max、min、avg、sum)

分組查詢(group by)

排序查詢(order by)

分頁查詢(limit)

DML相關:

添加表數據語法: insert into 表名(列名1,..列名n) values(值1,...值n);

注意:

  • 列名和值要一一對應。
  • 如果表名后,不定義列名,則默認給所有列添加值,如果第一列是主鍵列,需要在添加值時把第一列的值設置為null。
  • 除了數值類型,其他類型的值需要使用引號引起來。

刪除表數據語法: delete from 表名 where 條件

注意:

  • 如果不加條件,則刪除表中所有記錄。
  • 如果要刪除所有記錄
  • delete from 表名; -- 不推薦使用。有多少條記錄就會執行多少次刪除操作
  • truncate table 表名; -- 推薦使用,效率更高。先刪除表,然后再創建一張一樣的表。

修改表數據語法:

update 表名 set 列名1 = 值1, 列名2 = 值2,... where 條件;

注意

  • 如果不加任何條件,則會將表中所有記錄全部修改

???

DDL 相關:

操作隱形提交,不能rollback。

數據庫操作:查詢所有數據庫:show databases; 創建數據庫:create database 數據庫名; 刪除數據庫:drop database 數據庫名; 使用數據庫:use 數據庫名;

表操作:查詢當前數據庫所有表:show tables;

查看指定表結構:desc 表名; 查詢指定表的建表語句:show create table 表名;

創建表結構:create table 表名( 字段1 字段1類型, 字段2 字段2類型 ... );

DCL相關:

授權:GRANT

查詢用戶: select * from mysql.user;

創建用戶: CREATE USER '用戶名'@'主機名' IDENTIFIED BY '密碼';

修改用戶密碼: ALTER USER '用戶名'@'主機名' IDENTIFIED WITH mysql_native_password BY '新密碼' ;

刪除用戶: DROP USER '用戶名'@'主機名' ;

注意事項: 在MySQL中需要通過用戶名@主機名的方式,來唯一標識一個用戶。

MySQL中的數據類型主要分類:數值類型、字符串類型、日期時間類型。

數值類型:有符號:SIGNED、無符號:UNSIGNED。默認是有符號。

浮點型可以用類型名稱后加(M,D)來表示,M表示該值的總共長度,D表示小數點后面的長度。

常用類型

int:整型

double:浮點型,例如 double(5,2)表示最多 5 位,其中必須有 2 位小數,即最大值為 999.99;

decimal:泛型型,在表單線方面使用該類型,因為不會出現精度缺失問題;

char:固定長度字符串類型;(當輸入的字符不夠長度時會補空格)

varchar:可變長度字符串類型;

text:字符串類型;

blob:字節類型;

date:日期類型,格式為:yyyy-MM-dd;

time:時間類型,格式為:hh:mm:ss

timestamp:時間戳類型;

char&varchar:

類型相似,但保存與檢索方式不同。

最大長度、是否保留空格等方面也不同。

Binary&Varbinary

固定長度 (Binary) 的或可變長度 (Varbinary) 的 Binary 數據類型。

Binary ?( n )

固定長度的 n 個字節二進制數據。N 必須從 1 到 8,000。存儲空間大小為 n+4 字節。

Varbinary ( n )

n 個字節變長二進制數據。n 必須從 1 到 8,000。存儲空間大小為實際輸入數據長度 +4 個字節,而不是 n 個字節。輸入的數據長度可能為 0 字節。在 SQL-92 中 varbinary 的同義詞為 binary varying。

如果在數據定義或變量聲明語句中沒有指定 n,默認長度為 1。如果沒有用 CAST 函數指定 n,默認長度為 30。

當列數據項大小一致時應使用 binary。

當列數據項大小不一致時應使用 varbinary。

數據類型decimal(p,s)

需要分別指定小數的最大位數(p)和小數位的數量(s):

p (precision) :指定小數的最大位數,小數點的左側和右側的數字的總數量不能超過p,p的取值范圍是從1到38,默認值為18。

s (scale):指定在小數點右側的小數位數,p-s是小數點左邊的最大位數。s必須是從0到p的值,只有在指定了精度的情況下才能指定s,s的默認值是0,

因此,0 <= s <= p。

SQL的管理數據對象有哪些?

  1. 表(Table):
    • 定義:?數據庫中最基本、最重要的數據對象。
    • 作用:?以行(記錄)和列(字段)的結構化格式存儲實際數據。每一行代表一個實體(如一個客戶、一個訂單),每一列代表該實體的一個屬性(如客戶姓名、訂單日期)。
    • 管理操作:?CREATE TABLE,?ALTER TABLE,?DROP TABLE,

TRUNCATE TABLE,?INSERT INTO,?UPDATE,?DELETE,?SELECT

? ? ?2.? 視圖 (View):

  • 定義:?基于一個或多個表(或其他視圖)的查詢結果集生成的虛擬表
  • 作用:

簡化復雜查詢(將復雜的?JOIN?或計算封裝在視圖中)。

提供數據抽象和安全性(只暴露視圖定義的列和行,隱藏底層表結構和敏感數據)。邏輯上組織數據。

  • 關鍵點:?視圖本身不存儲數據,數據仍然存儲在基表中。對視圖的查詢或更新操作最終會作用在基表上(可更新視圖有特定規則)。
  • 管理操作:?CREATE VIEW,?ALTER VIEW,?DROP VIEW,?SELECT?(查詢視圖)。

? ? ?3. 索引 (Index):

  • 定義:?一種特殊的數據庫對象,建立在表的一個或多個列上,用于加速數據檢索速度
  • 作用:?類似于書籍的目錄,允許數據庫引擎快速找到特定值,而無需掃描整個表。顯著提高?SELECT(尤其是帶?WHERE,?ORDER BY,?JOIN)的速度。
  • 代價:?索引需要額外的存儲空間,并且會降低?INSERT,?UPDATE,?DELETE?操作的速度(因為索引也需要維護)。
  • 常見類型:?B-Tree(最常用)、Hash、Bitmap、全文索引等。
  • 管理操作:?CREATE INDEX,?DROP INDEX,?ALTER INDEX?(某些DBMS),?REBUILD INDEX/REORGANIZE INDEX?(維護)。

? ? ? 4. 約束 (Constraints):

  • 定義:?應用于表列上的規則,用于強制實施數據的完整性準確性
  • 作用:?確保表中的數據滿足特定的業務規則和關系。
  • 主要類型:
  • PRIMARY KEY: 唯一標識表中的每一行(不允許?NULL?和重復值)。
  • FOREIGN KEY: 確保一個表(子表/引用表)中的列值必須存在于另一個表(父表/被引用表)的主鍵或唯一鍵中,維護表間引用完整性。
  • UNIQUE: 確保列(或列組合)中的所有值都是唯一的(允許?NULL,但通常只允許一個?NULL)。
  • NOT NULL: 確保列不能存儲?NULL?值。
  • CHECK: 確保列中的值滿足指定的條件

(如?Age > 0,?Status IN ('A','I'))。

  • DEFAULT: 當未指定值時,為列提供默認值。

  • 管理操作:?通常在創建或修改表時定義 (CREATE TABLE,?ALTER TABLE ... ADD CONSTRAINT),也可以單獨添加或刪除 (ALTER TABLE ... DROP CONSTRAINT)

? ? ? 5. 序列 (Sequence) / 自增列 (Auto-increment / Identity Column):

? ? ? ?定義:

  • 序列:?一個獨立的數據對象(在 Oracle, PostgreSQL 等中常見),用于生成唯一的、通常按順序遞增的數字序列。
  • 自增列/Identity列:?表列的一個屬性(在 MySQL?AUTO_INCREMENT, SQL Server?IDENTITY, PostgreSQL?SERIAL?等),在插入新行時自動生成唯一的遞增值。
  • 作用:?為主鍵列或其他需要唯一標識符的列自動生成唯一值。
  • 管理操作:
  • 序列:?CREATE SEQUENCE,?ALTER SEQUENCE,?DROP SEQUENCE,?NEXTVAL?(獲取下一個值)。
  • 自增列:?在?CREATE TABLE?/?ALTER TABLE?中定義 (AUTO_INCREMENT,?IDENTITY?等)。

? ? ? ? 6. 同義詞 (Synonym):

  • 定義:?為現有數據庫對象(如表、視圖、序列、存儲過程、函數,甚至是另一個同義詞)提供的別名
  • 作用:
  • 簡化對象引用(使用短名稱代替冗長的?schema.object?名稱)。
  • 提供抽象層(如果底層對象位置或名稱改變,只需修改同義詞定義,應用程序代碼無需改動)。
  • 方便訪問不同用戶模式下的對象。
  • 管理操作:?CREATE [PUBLIC] SYNONYM,?DROP SYNONYM

  1. 模式 (Schema):
  • 定義:?數據庫對象的命名空間或容器。它本身不存儲數據,但包含表、視圖、索引、過程等對象的集合。
  • 作用:
    • 邏輯上組織和管理數據庫對象(如按功能模塊劃分)。
    • 避免命名沖突(不同模式下的對象可以有相同名稱)。
    • 權限管理的基礎單元(可以對整個模式授權)。
  • 管理操作:?CREATE SCHEMA,?ALTER SCHEMA,?DROP SCHEMA?(具體語法和功能因 DBMS 差異較大)。

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

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

相關文章

醫療項目如何應對法規變更?

醫療項目應對法規變更的關鍵策略包括建立法規監測體系、及時內部培訓和溝通、調整業務流程和合規標準、技術系統快速迭代升級。 其中&#xff0c;建立有效的法規監測體系尤其重要。這意味著企業需要實時關注監管機構發布的政策更新和公告&#xff0c;迅速理解法規變化內容及對自…

AI Top10

AI 前十排名排名團隊/機構名稱國家核心優勢領域1DeepMind英國強化學習、Alpha系列模型2OpenAI美國GPT系列、多模態大模型3DeepSeek中國高效NLP模型、開源生態建設4Google Brain美國Transformer架構、TensorFlow框架5Meta AI (FAIR)美國計算機視覺、Llama系列模型6NVIDIA Resear…

LabVIEW通知器函數應用

介紹LabVIEW通知器&#xff08;Notifier&#xff09;函數&#xff0c;演示兩類并行循環通信場景&#xff1a;單對循環數據交互、多循環通知聚合&#xff0c;含程序框圖&#xff08;數據發送 / 接收、多循環通知&#xff09;與前面板&#xff08;數據顯示&#xff09;。功能說明…

推薦《Python 編程:從入門到實踐》之Python編程的基礎知識

在 Python 學習資源琳瑯滿目的當下&#xff0c;《Python 編程&#xff1a;從入門到實踐》脫穎而出&#xff0c;堪稱 Python 入門的不二之選。本書由經驗豐富的教育工作者撰寫&#xff0c;以清晰易懂的語言和循序漸進的方式&#xff0c;引領讀者從 Python 的基礎語法逐步邁向實際…

Kafka入門和基礎配置

目錄Kafka入門消息引擎系統ABC快速搞定Kafka術語kafka三層消息架構名詞術語Kafka基礎Kafka部署參考重要配置參數Broker端參數Topic級別參數JVM參數Kafka是消息引擎系統&#xff0c;也是分布式流處理平臺Kafka入門 消息引擎系統ABC 民間版&#xff1a;系統 A 發送消息給消息引…

OPENPPP2 VEthernet 網絡協議堆棧(CTCP)VNetStack 深度技術解析

&#x1f310; OPENPPP2 VEthernet 網絡協議堆棧&#xff08;CTCP&#xff09;VNetStack 深度技術解析&#x1f3d7;? 一、系統架構全景圖 #mermaid-svg-FdlbKZCGQDDbvOL6 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermai…

Gartner發布2025年中國網絡安全成熟度曲線:網絡安全的重點正轉向保護AI、推動業務轉型和增強組織韌性

網絡安全的重點正轉向保護人工智能、推動業務轉型和增強組織韌性。首席信息官及其安全和風險管理主管可以利用這份技術成熟度曲線來識別實用且高價值的技術和實踐&#xff0c;從而保持安全和敏捷。 戰略規劃假設 到2027年&#xff0c;60%的中國大型組織將在安全運營中心&#x…

網絡準入控制系統的作用解析,2025年保障企業入網安全第一道防線

在當今數字化時代&#xff0c;網絡已成為企業運營的基礎&#xff0c;隨著網絡的廣泛應用&#xff0c;網絡準入控制系統作為保障網絡安全的重要手段&#xff0c;正發揮著至關重要的作用。保障網絡安全網絡準入控制系統如同網絡的忠誠衛士&#xff0c;它為網絡大門安裝了智能鎖&a…

java基礎(day09)

目錄 1.繼承的作用 2.繼承樹 3.protected和super protected super 注&#xff1a;super/this()--構造方法&#xff0c;第一行&#xff0c;一般不同時出現 4.向上向下轉型 向上轉型 向下轉型 final 小結 1.繼承的作用 理解&#xff1a;首先就是可以實現代碼復用&#x…

如何進行選擇。

初始理解問題 首先&#xff0c;我們需要明確題目在問什么。題目“House Robber”描述的是一個強盜在一排房屋前&#xff0c;每個房屋都有一定數量的錢。強盜不能連續搶劫兩個相鄰的房屋&#xff0c;否則會觸發警報。目標是搶劫到最多的錢。 動態規劃的思路 這個問題可以使用動態…

PHP語法高級篇(三):Cookie與會話

Cookie與會話在 Web 編程中十分實用&#xff1a;Cookie 能實現一周免登錄&#xff0c;還能記住用戶的主題偏好&#xff1b;會話可保存當前用戶信息&#xff0c;也能臨時存儲購物車數據。本篇文章將記錄Cookie與會話的學習過程。 一、Cookie cookie 常用于識別用戶。cookie 是服…

11. JVM中的分代回收

1. JVM介紹和運行流程-CSDN博客 2. 什么是程序計數器-CSDN博客 3. java 堆和 JVM 內存結構-CSDN博客 4. 虛擬機棧-CSDN博客 5. JVM 的方法區-CSDN博客 6. JVM直接內存-CSDN博客 7. JVM類加載器與雙親委派模型-CSDN博客 8. JVM類裝載的執行過程-CSDN博客 9. JVM垃圾回收…

基于PaddleOCR的營業執照識別與數據分析系統

基于PaddleOCR的營業執照識別與數據分析系統 1. 項目概述 本項目旨在利用百度PaddleOCR技術識別營業執照圖片中的關鍵信息,結合自然語言處理(NLP)和卷積神經網絡(CNN)對OCR結果進行分類處理,最后對識別出的收入流水數據進行深度分析與可視化展示。系統將實現從圖像識別到數…

SpringBoot JSON字典序列化翻譯

&#x1f9e9; 一、效果預期 Data public class UserVO {private String status;DictTranslate(type "user_status")private String statusName; }最終返回 JSON&#xff1a; {"status": "1","statusName": "啟用" }&#…

基于Java+Maven+Testng+Selenium+Log4j+Allure+Jenkins搭建一個WebUI自動化框架(5)失敗用例截圖與重試

在UI自動化測試用例執行過程中&#xff0c;經常會有很多不確定的因素導致用例執行失敗&#xff0c;比如網絡原因、環境問題等&#xff0c;所以我們有必要引入重試機制&#xff08;失敗重跑&#xff09;&#xff0c;來提高測試用例執行穩定性。準備工作&#xff1a;我們在進行失…

【Oracle】centos7靜默安裝oracle19c

靜默安裝三步驟&#xff1a; 1、數據庫安裝db_install.rsp&#xff08;數據庫軟件安裝響應文件&#xff09;2、配置監聽netca.rap&#xff08;監聽配置響應文件&#xff09;3、建庫dbca.rsp&#xff08;建庫響應文件&#xff09;安裝oracle19c先決條件準備&#xff1a; 1.檢查主…

MCP基礎知識二(實戰通信方式之Streamable HTTP)

介紹 MCP 使用 JSON-RPC 2.0 作為其傳輸格式。傳輸層負責將 MCP 協議消息轉換為 JSON-RPC 格式進行傳輸&#xff0c;并將接收到的 JSON-RPC 消息轉換回 MCP 協議消息。其中SSE被廢棄了&#xff08;Server-Sent Events (SSE) - Deprecated&#xff09; SSE as a standalone tra…

量子計算與AI的融合:開啟智能革命的“量子躍遷”新范式

當量子計算的并行算力與人工智能的深度學習能力相遇,一場顛覆傳統認知的技術革命正在醞釀。從藥物研發到自動駕駛,從金融風控到氣候預測,兩者的融合不僅突破了經典計算的算力天花板,更催生出全新的算法范式與產業生態。本文將深入解析量子計算與AI融合的技術邏輯、核心突破…

【氮化鎵】不同偏壓應力下電荷俘獲效應導致的P-GaN HEMT閾值電壓不穩定性

2022年12月7日,意大利國家研究委員會微電子與微系統研究所的Giuseppe Greco等人在《Applied Physics Letters》期刊發表了題為《Threshold voltage instability by charge trapping effects in the gate region of p-GaN HEMTs》的文章,基于對p-GaN高電子遷移率晶體管(HEMTs…

ONLYOFFICE深度解鎖系列.10-如何識別圖像和PDF掃描件中的文本?用ONLYOFFICE的AI OCR輕松搞定!

ONLYOFFICE 文檔版本 9.0帶來多項 AI 關鍵改進&#xff0c;顯著提升您處理電子表格和 PDF 文件的工作效率。本指南將重點介紹新增的 OCR 功能&#xff0c;并講解如何在 PDF 編輯器中利用 AI 助手將圖像轉為可編輯文本。什么是 OCR 文字識別&#xff1f;OCR 技術能夠掃描各類文檔…