Sql介紹 與 Sql基礎查詢

来源:https://www.cnblogs.com/ihave2carryon/p/18434575
-Advertisement-
Play Games

Sql介紹 與 Sql基礎查詢 SQL SQL也稱為結構化查詢語言(Structure Query Language),是一種用於管理和操作關係型資料庫的標準化電腦語言,SQL語言廣泛應用於各種關係型資料庫系統(RDBMS)如Mysql,Oracle,Microsoft SQL Server等等 ...


Sql介紹 與 Sql基礎查詢

SQL

SQL也稱為結構化查詢語言(Structure Query Language),是一種用於管理和操作關係型資料庫的標準化電腦語言,SQL語言廣泛應用於各種關係型資料庫系統(RDBMS)如Mysql,Oracle,Microsoft SQL Server等等

SQL對資料庫的操作

  1. 數據查詢:通過SELECT語句從資料庫中檢索數據
  2. 數據定義(DDL):其中包括CREATE,ALTER,DROP對資料庫進行定義和修改資料庫結構
  3. 數據操控(DML):包括INSERT,UPDATE,DELETE語句插入,更新,刪除數據
  4. 數據控制:通過GRANT,REVOKE語句管理用戶許可權和範圍控制

SQL的特點

  • 標準化:SQL是一個標準化的語言,各大資料庫廠商都支持SQL語言
  • 高度非過程化:與過程化的與語言不同,SQL不需要指定特點演算法或步驟完成任務.SQL語句更專註描述所需結果,而非如何得到所需結果
  • 集合操作:SQL支持集合操作,即一次可以處理多行數據.一個SELECT語句就可以返回多條記錄,INSERT,UPDATE也可以一次影響多行數據
  • 事務支持:SQL支持事務處理,允許將一組相關數據,作為一個完整的單元來執行.事務具有:原子性(Atomicity),一致性(Consistency),隔離性(Isolation),持久性(Durability)(關於這些性質在之後的事務章節會詳細講解),ACID,這四個性質確保了數據的一致性與可靠性
  • 集成能力:SQL可以與其他 編程語言相互集成,使得開發者能夠在應用程式中嵌入SQL代碼,實現高效操作,其中典型的屬Java開發者可以使用JDBC來執行SQL查詢

SQL基礎查詢

語法結構

  • SELECT 查詢列表 FORM 表名 其中查詢列表可以是表中的欄位,常量值,表達式,函數等等

SELECT * FORM emplyees; 其中* 表示查詢表中所有數據

查詢表中單個欄位

  • SELECT 欄位名 FORM 表名

    eg:查詢員工的所有姓名

    SELECT e_name FORM emplyees;

查詢表中多個欄位

使用逗號將每個欄位分隔開來

  • SELECT 欄位1,欄位2,欄位3 FORM 表名;

    eg:示例:查詢所有員工的姓名,郵箱,電話號碼

    SELECT e_name,e_email,e_phone_num FORM emplyees;

為欄位起別名

在實際的資料庫表結構中,有些欄位名過長,或者不好理解,我們可以對欄位名起個表明,在後續調用中直接使用其別名即可,在多表查詢中,有些欄位名會出現重覆,這時我們可以對相應的欄位其別名,不宜混淆

  • 使用AS關鍵字
    • 在將要其別名欄位後使用AS關鍵字
      • SELECT 欄位名 AS 別名 FORM 表名;
  • 直接使用空格隔開
    • 即在欄位和別名之間用空格隔開即可
      • SELECT 欄位名 別名 FORM 表名;

去重

對查詢出的語句可能會出先欄位名重覆的結果,這時,我們可以使用去重功能

  • 使用DISTINCT關鍵字:

    • SELECT DISTINCT 要去重的欄位 ,其他欄位… FORM 表名;

    eg:查詢部門表中的部門ID,對於每個部門ID出現一次即可,因此我們可以使用去重

    SELECT DISTINCT d_id FORM department;

+號操作

Mysql中 +號只有一個功能:作為運算符,不能作為連接符

  • + 號兩側都是數值型,視為正常的加法運算
  • +號兩側出現了字元,這嘗試將字元轉化為數值類型,若轉化成功,則繼續執行加法操作,失敗則轉化為數值0;轉化規則為:從首部開始將所有數值型字元進行轉化直到遇到字元型字元,如’11’⇒11;’1a’⇒1;’abc’⇒0;’11a1’⇒11
  • null值與任何數值類型進行+操作都為null
SELECT 1 + 1; //2
SELECT '1' + '1';//2
SELECT 'a' + 1;//1
SELECT 'a' + 'b';//0
SELECT '1a' + '1b';//2
SELECT '11a11' + '11b11'//22;
SELECT 1 + null;//null

CONCAT()操作

既然+號只能作為運算符,那如何連接字元呢?→CONCAT()函數

  • CONCAT() :使用SELECT調用CONCAT();

    • SELECT CONCAT(str1,str2,…);

    eg:查詢員工姓名和郵箱,按固定格式(姓名[[email protected]])要求輸出,比如:張三[[email protected]]

    SELECT CONCAT(e_name,’[’,e_email,’]’)FORM employees;

IFNULL()函數

  • IFNULL():若查詢出的值存在NULL值,使用替代值替代

    • SELECT IFNULL(欄位名,代替值) FROM 表名;

    eg:查詢員工的姓名和部門ID,如果該員工沒有部門信息,顯示未知

    SELECT e_name,IFNULL(d_id,’未知’) FORM employees;


條件查詢

條件查詢,允許在查詢數據時,指定某些條件,從而篩選出符合條件的記錄

WHERE關鍵字

WHERE關鍵字是條件查詢的核心;

  • 語法結構:

    SELECT 查詢列表  //執行順序3
    FORM 表名       //執行順序 1
    WHERE 條件表達式;//執行順序2
    

    eg:查詢 d_id 為 10 的所有員工

    SELECT d_id FORM employees WHERE d_id=10;

表達式篩選

SQL中包含了條件運算符:>, <,>=,<=, =, !=,<>;<>與!=的作用相同都表示不等於,條件運算符是應用於條件表達式中的

  • eg.1:查詢工資大於8000的員工信息

    SELECT *FROM employees WHERE salary>8000;

  • eg.2查詢部門編號不等於3的員工信息

    SELECT *FORM employees WHERE d_id ! =3;

邏輯運算

邏輯運算符也是一般在WHERE表達式中使用,可幫助在查詢中指定多個條件或改變條件邏輯關係

  • 邏輯運算符包括:&&,||,!,分別對應and,or,not

  • eg1:查詢工資在8000到10000之間的員工信息→使用AND運算符連接

    SELECT * FORM employees WHERE salary>8000 AND salary<100000;

  • eg2:查詢工資大於8000或者部門3的員工信息→使用OR運算符連接

    SELECT * FORM employees WHERE salary >8000 OR d_id=3;

模糊查詢

LIKE關鍵字

SQL中常用的是LIKE關鍵字,其配合通配符來實現模糊查詢

  • 常用通配符

    • % :代表可匹配度多個字元,包括0個,1個

    • _:代表只能匹配一個字元

      SELECT 查詢列表
      FROM 表名
      WHERE 列名 LIKE '模式';
      
  • eg1:查詢姓名中包含【微】字的員工信息

    SELECT * FORM employees WHERE e_name LIKE ‘%微%’;

  • eg2:查詢姓名中第二個字是【可】字的員工信息

    SELECT * FORM employees WHERE e_name LIKE ’_微%’;

BETEWEEN…AND

查詢在某段範圍值內的數據,包含臨界值,即BETEWEEN 8000 AND 100000⇒[8000,10000]

  • eg1:查詢工資在8000到10000之間的員工信息

    SELECT * FORM employees WHERE salary BETWEEN 8000 AND 10000;

  • eg2:查詢入職時間在2018-01-01到2022-01-01之間的員工信息

    SELECT * FORM employees WHERE hiredate BETWEEN ‘2018-01-01’ AND ’2022-01-01’;

IN關鍵字

IN運算符用於檢測欄位值是否在一個指定的值列表中,使用IN運算符可以簡化查詢語句,特別在需要處理多個值情況下

  • eg:查詢在部門2或者部門3的員工信息

    SELECT *FORM employees WHERE d_id IN(2,3); 等價於SELECT * FORM employees WHERE d_id=2 OR d_id=3;

IS NULL/IS not NULL

用於檢測一個值是否NULL的運算符

  • eg1:查詢沒有部門的員工信息

    SELECT * FORM employees WHRER d_id is NULL;

  • eg2:查詢有部門的員工信息

    SELECT * FROM emplyees WHERE d_id is not NULL;

排序查詢

查詢出來的數據預設按照表格的保存順序查詢,我們如果需要修改查詢結果展示的順序,可以使用排序查詢,

ORDER BY關鍵字

在SQL中ORDER BY實現排序,ASC代表升序,DESC代表降序

  • 語法結構

    SELECT 查詢列表
    FROM 表
    [WHERE 篩選列表]
    ORDER BY 排序列表 [ASC升序|DESC降序] -- ASC|DESC不寫預設是ASC
    

實現單欄位排序

  • ORDER BY 排序欄位 [ASC升序|DESD降序];

  • eg:查詢員工信息按工資高低排序

    - 按照工資升序
    SELECT * FROM emplyees ORDER BY salary ASC -- ASC可以不寫
    - 按照工資降序
    SELECT * FROM emplyees ORDER BY salary DESC -- DESC不能省略
    

使用多個欄位排序

  • eg:查詢員工信息,先按部門ID降序,再按工資升序

    SELECT * FROM emplyees ORDER BY department_id DESC,salary ASC;


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

-Advertisement-
Play Games
更多相關文章
  • 目錄表的增刪改查Create指定列插入單行數據+全列插入多行數據+全列插入插入否則更新替換 (replace)Retrieve標準語法SELECT列全列查詢限制顯示條目 limit (分頁查詢)基本語法:指定列查詢select 查詢欄位為表達式表達式重命名去重WHERE 條件比較運算符邏輯運算符案例 ...
  • 本文內容來自YashanDB官網,具體內容請見https://www.yashandb.com/newsinfo/7488285.html?templateId=1718516 背景 OCI 是Oracle調用介面(Oracle Call Interface 簡稱OCI) 提供了一組對Oracle數 ...
  • 本文內容來自YashanDB官網,具體內容請見https://www.yashandb.com/newsinfo/7459465.html?templateId=1718516 問題現象 某局點yashandb cpu使用率100%,經線上分析是由於幾個sql執行慢,其中一個sql為簡單的單行等值綁 ...
  • Apache SeaTunnel 2.3.8版本即將於大家見面,近日,Apache SeaTunnel PMC Member 範佳在社區的交流會上為大家提前透露了關於這個新版本即將進行的功能與特性更新概況,詳細內容如下: SeaTunnel 簡介 SeaTunnel是一個高性能的開源分散式數據集成系 ...
  • 在大數據時代,工作流任務調度系統成為了數據處理和業務流程管理的核心組件,在大數據平臺的構建和開發過程中尤為重要。隨著數據量的激增和業務需求的多樣化,合理的任務調度不僅能夠提高資源利用率,還能保證業務流程的穩定和高效運行。本文將結合實際場景,探討目前市面上常見的工作流任務調度及其關鍵特性。 一、工作流 ...
  • 本文轉自YashanDB官網,具體內容請見https://www.yashandb.com/newsinfo/7441388.html?templateId=1718516 問題現象 客戶剛開始使用YashanDB odbc的時候,需要查看調用日誌詳情, 確認相應介面調用情況。 問題的風險及影響 客 ...
  • postgresql 與PostGis 離線環境安裝 上傳文件至伺服器 #安裝所需依賴 yum install /opt/PGsql-13-gis/rpm/* -y Postgresql安裝 tar -zxvf postgresql-13.2.tar.gz #進入該目錄 ./configure -- ...
  • 1. 讓數據可信 1.1. 每個終端用戶(End User)都有一個共同的需求:訪問想要的數據 1.2. 真的能夠相信我正在訪問的這些數據嗎? 1.2.1. 終端用戶很快就會發現,訪問數據和相信正在訪問的數據是兩回事 1.2.2. 訪問數據和相信數據不是同一回事 1.2.3. 如果數據不可信,可能會 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...