資料庫複習⑥

来源:http://www.cnblogs.com/zpfbuaa/archive/2016/06/18/5596775.html
-Advertisement-
Play Games

SELECT-FROM-WHERE語句、單表查詢、多表查詢、 ...


資料庫複習⑥

2016年6月18日

18:16

Main SQL 增刪改查

1.SQL 核心內容

DDL(Data Definition Language)數據定義語言

Query Language 數據查詢語句

DML(Data Manipulation language)數據操縱語言

DCL(DataControl language)數據控制語言

2.Queries 查詢

Single-relation queries 單表查詢

Multi-relation queries 多表查詢

Subqueries 子查詢

Grouping and Aggregation 分組和聚集

3.Select-From-Where Statements

語句格式:

SELECT [ ALL | DISTINCT ] <目標列表達式> [ ,<目標列表達式> ]…

FROM <表名或視圖名> [ ,<表名或視圖名> ]…

[ WHERE <條件表達式> ]

[ GROUP BY <列名1> [ HAVING <條件表達式> ] ]

[ ORDER BY <列名2> [ASC|DESC]]

解釋:(1)上面中括弧中的內容為選擇內容,可以有也可以沒有,註意前面有一個逗號"," ;

             (2)WHERE語句裡面不能有集函數,同時WHERE語句可以省略;

             (3)GROUP BY 語句用來進行分組,後面的HAVING 語句可以包括集函數,用來進行判斷;

             (4)ORDER BY語句用來進行排序,排序操作實際上是在查詢結束之後進行的,預設為ASC 遞增排序,也可以選擇DESC為遞減排序;

             (5)SQL查詢語句對字母大小寫不敏感,因此Select 和SELECT均可以被識別,不過建議使用大寫;

             (6)GROUP BY語句應該在WHERE語句之後,其實GROUP BY語句應該在查詢語句的最後面,由於ORDER BY語句不屬於查詢語句了,因此可以放在ORDER BY 之前;

              (7)儘管SELECT語句放在查詢語句的最前面但是其執行為最後的,也就是在GROUP BY語句之後,因此在GROUP BY語句內不能使用SELECT 語句裡面的別名;

              (8)SELECT 語句中的ALL 與DISTINCT對應的是:查詢結果保留重覆、查詢結果不包括重覆;

              (9)SELECT 語句是用來選擇屬性列,不過可以使用* 操作符可以選擇出表中的所有屬性列。

3.Single-Relation Queries 單表查詢

單表查詢相對於多表查詢屬於最基本的查詢操作。

可以在SELECT語句中選擇結果表的屬性列以及使用別名甚至使用集函數、由於表只有一個因此在FROM語句中只要寫上表名即可、在WHERE語句中可以使用AND關鍵字來進行多項判斷和篩選、在GROUP BY語句中可以選擇某一個屬性列進行分組、在ORDER BY語句進行排序選擇。

舉例說明:

 clip_image002

clip_image004

clip_image006

clip_image008

clip_image010

clip_image012

Range comparison:between

使用謂詞: BETWEEN…AND…大於等於並且小於等於

NOT BETWEEN …AND…

Set operator: in

使用謂詞 IN <值表>, NOT IN <值表>

clip_image014

Patterns 字元串匹配問題

使用關鍵字Like

% = “any string”; _ = “any character.”

clip_image016

4.三種邏輯值 TRUE = 1 , FALSE = 0 , UNKNOWN = 1/2

AND = MIN ; OR = MAX ; NOT(x) = 1-x

NULL 空值比較特殊,需要特別對待

clip_image018

clip_image020

5.Aggregation 集函數

SUM求和函數、AVG求平均值函數、COUNT計數函數、MIN最小值函數、MAX最大值函數、COUNT(*)元組個數

clip_image021

clip_image023

6.Grouping 分組

舉例:

clip_image025

clip_image026

7.HAVING 字句

clip_image028

8.Multi-Relation Queries 多表查詢

clip_image030

clip_image031

clip_image032

clip_image034

clip_image035

clip_image037

clip_image039

clip_image040

9.Subqueries 子查詢

子查詢返回一個結果表Subqueries that return one Tuple

通常該返回表只有一個屬性列Usually, the tuple has one component

如果不止一個屬性列則會產生運行時錯誤A run-time error occurs if there is no tuple or more than one tuple

子查詢中不可以使用ORDER BY

帶有IN的子查詢:迴圈元組,當該元組的值在返回表中時輸出到結果表中

帶有EXISTS謂詞的子查詢

clip_image042

clip_image044

舉例:

clip_image048

clip_image050

10.ANY and ALL Operator

clip_image052

clip_image054

clip_image056


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

-Advertisement-
Play Games
更多相關文章
  • 一、Android系統自帶VideoView控制項 1. 創建步驟: (1)自帶視頻文件放入res/raw文件夾下; (2)聲明初始化VideoView控制項; (3)創建視頻文件Uri路徑,Uri調用parse(),傳入(”android.resource://”+getPackageName()+” ...
  • 本文主要介紹android中怎樣獲取系統的聯繫人數據 首先打開模擬器 點擊聯繫人圖標按鈕 說明系統聯繫人資料庫是空的,打開File explorer,找到data/data下麵的文件夾: 將contacts2.db文件導出,添加到sqlite中的時候報錯: 點擊“ok”忽略之 表結構相當的複雜,首先 ...
  • Android 開發中經常遇到各種hdpi,xhdpi,xxhdpi....很多尺寸大小的png圖片要求. 網上也有不少工具,今天我又發現一款線上轉換大小的網站,用了一下,一個png 114X114 轉換成 16X16和512X512效果還可以; 連接在這裡,希望需要的mark一下,麽麽 png工具 ...
  • “階段一”是指我第一次系統地學習Android開發。這主要是對我的學習過程作個記錄。 一、drawText的位置問題 1、先講一下Canvas畫布的坐標,原點是在畫布的左上角,往右,x為正,往下,y為正。如下圖: 2、預設的情況下,Text的左邊為x坐標,Text的Baseline為y坐標,比如dr ...
  • 我也是看了網上的一個示例代碼後,在它的基礎上進行的修改。因為項目上會用到,我相信很多人的項目上也會用到。所以實現後,也趕緊分享出來,希望後來人不需要花費時間了。 提示:這裡用到了正則表達式,使用了一個第三方開源的組件:RegexKitLite (該組件如何使用網上教程很多) #pragma mark ...
  • ....... ...
  • ORACLE資料庫中的索引到底要不要定期重建呢? 如果不需要定期重建,那麼理由是什麼? 如果需要定期重建,那麼理由又是什麼?另外,如果需要定期重建,那麼滿足那些條件的索引才需要重建呢?關於這個問題,網上也有很多爭論,也一直讓我有點困惑,因為總有點不得廬山真面目的感覺,直到上周看到了一些資料,遂整理於 ...
  • 資料庫複習⑦ 2016年6月18日 20:03 Main DDL & DML & Views 數據定義語言、數據操縱語言、視圖 DDL數據定義語言 1.聲明一個關係表和刪除一個關係表 Simplest form is: CREATE TABLE <name> ( <list of elements> ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...