1. 程式人生 > >MySQL學習之(四)查詢語句

MySQL學習之(四)查詢語句

目錄

1單表查詢

Limit

選擇列

列別名

1單表查詢

順序嚴格地排序。例如,一個HAVING子句必須位於GROUP BY子句之後,並位於ORDER BY子句之前。

ORDER BY

語法:[GROUP BY {列名 | 表示式 | 列編號} [ASC (升序)| DESC(降序)], ...

例:將員工資訊按出生日期從大到小排序

 SELECT * FROM employees WHERE 1=1

 ORDER BY Birthday DESC

HAVING

語法:[HAVING 條件]

條件的定義和WHERE子句中的條件類似,不過HAVING子句中的條件可以包含聚合函式,而WHERE子句中則不可以。

SQL標準要求HAVING必須引用GROUP BY子句中的列或用於聚合函式中的列。不過,MySQL支援對此工作性質的擴充套件,並允許HAVING引用SELECT清單中的列和外部子查詢中的列

例:查詢僱員數超過2人的部門名稱和員工數量

SELECT departments.`DepartmentName`,COUNT(*) AS '人數'

 FROM employees,departments

 WHERE employees.`DepartmentID`=departments.`DepartmentID`

 GROUP BY departments.`DepartmentName`

 HAVING COUNT(*)>2

Group by分組查詢語句

 語法:

[GROUP BY {列名 | 表示式 | 列編號} [ASC (升序)| DESC(降序)]

[LIMIT {[偏移量,] 行數|行數OFFSET偏移量}]

GROUP BY子句後通常包含列名或表示式。MySQL對GROUP BY子句進行了擴充套件,可以在列的後面指定ASC(升序)或DESC(降序)。GROUP BY可以根據一個或多個列進行分組,也可以根據表示式進行分組,經常和聚合函式一起使用。

例:按部門列出該部門工作的員工人數

SELECT departments.`DepartmentName`,COUNT(*) AS '人數'

 FROM employees,departments

 WHERE employees.`DepartmentID`=departments.`DepartmentID`

 GROUP BY departments.`DepartmentName`

Limit

LIMIT子句是SELECT語句的最後一個子句,主要用於限制被SELECT語句返回的行數。

語法格式:

  LIMIT {[offset,] row_count

             | row_count OFFSET offset}

語法格式中的offset和row_count都必須是非負的整數常數,offset指定返回的第一行的偏移量,row_count是返回的行數。例如,“LIMIT 5”表示返回SELECT語句的結果集中最前面5行,而“LIMIT 3,5”則表示從第4行開始返回5行。值得注意的是初始行的偏移量為0而不是1。

例:查詢Members表中註冊時間最靠前的5位會員的資訊。

SELECT *

FROM Members

ORDER BY 註冊時間

LIMIT 5;

查詢Book表中從第4條記錄開始的5條記錄。

    SELECT *

FROM Book

ORDER BY 學號

LIMIT 3, 5;

為了與PostgreSQL相容,MySQL也支援LIMIT row_count OFFSET offset語法。所以將上面例子中的LIMIT子句換成“LIMIT 5 OFFSET 3”,結果一樣

選擇列

語法:SELECT 欄位列表 FROM 表名稱

例:USE Bookstore;

    SELECT 會員姓名,聯絡電話,註冊時間

FROM Members;

說明:當在SELECT語句指定列的位置上使用*號時,表示選擇表的所有列,如要顯示Members表中所有列,不必將所有欄位名一一列出,使用

SELECT * FROM Members;

列別名

語法:SELECT column_name [AS] column_alias

【例】

SELECT 書名 AS name, 作者 AS auther, 出版社 AS publisher

    FROM Book

WHERE 圖書類別= '計算機';

注意:當自定義的列標題中含有空格時,必須使用引號將標題括起來。

      SELECT 學號 AS 'Student number', 姓名 AS 'Student name',

      總學分 AS mark

      FROM XS

      WHERE 專業名= '計算機';

替換查詢結果中的資料

語法:CASE

       WHEN 條件1 THEN 表示式1

      WHEN 條件2 THEN 表示式2

        ……

       ELSE 表示式

END

例:

SELECT 圖書編號, 書名,

        CASE

         WHEN 數量 IS NULL THEN  '尚未進貨'

          WHEN 數量 < 5 THEN  '需進貨'

          WHEN 數量 >=5 and 數量<=50 THEN  '庫存正常'

         ELSE  '庫存積壓'

         END  AS  庫存

     FROM Book;

持續更新中。。。

相關推薦

MySQL學習查詢語句

目錄 1單表查詢 Limit 選擇列 列別名 1單表查詢 順序嚴格地排序。例如,一個HAVING子句必須位於GROUP BY子句之後,並位於ORDER BY子句之前。 ORDER BY 語法:[GROUP BY {列名 | 表示式 | 列編號}

mysql學習筆記--查詢語句的執行過程

最近在學習mysql實戰45講,覺得裡面的內容很受用,做一些筆記記錄下: 首先是mysql的一個基礎架構的解釋,如下圖:                從上圖我們可以清晰的看到,mysql的基礎架構主要分為兩個部分,一個是server層(負責大多數核心服務功能的實現),一個是儲存引擎層(負責資料的儲存與

MySQL讀書學習筆記——查詢效能優化

4.1 為什麼慢瞭解查詢的生命週期,清楚查詢的時間消耗情況對於優化查詢有很大意義。4.2 慢查詢基礎:優化資料訪問查詢效能低下最基本的原因是訪問資料太多。某些查詢可能不可避免地需要篩選大量資料,但這並不常見。大部分效能低下的查詢都可以通過減少訪問的資料量的方式進行優化。對於低

MySQL學習筆記

end elseif 不同的 位置 定義 begin ima span rmi 一、索引 索引是對數據庫表中一列或多列的值進行排序的一種結構,使用索引可以提高數據庫中特定數據的查詢速度。 索引的分類: 1、普通索引,允許在定義索引的列中插入重復值和空值。 唯一索

MySQL學習建立MySQL

1、連線Mysql     格式: mysql -h主機地址 -u使用者名稱 -p使用者密碼1、連線到本機上的MYSQL。    首先開啟DOS視窗,然後進入目錄mysql\bin,再鍵入命令mysql -u root -p,回車後提示你輸密碼.注意使用者

python入門學習筆記——if語句

5. if語句 5.1  簡單if語句 sum = 20; if sum < 19:     print('OK')        5.2  if-else

python3.5+pymysql學習資料庫4查詢語句學習

資料準備好以後先學習查詢操作。直接開始做題還是太難了,畢竟太多年沒有用過SQL,還是腳踏實地從基礎開始學習比較靠譜。 學習資料地址:https://www.w3cschool.cn/sql/zk9swfor.html # 查詢學生資訊表全部資訊 sql = "SELECT * FROM

機器學習特徵工程以及特徵選擇的工程方法

關於特徵工程(Feature Engineering),已經是很古老很常見的話題了,坊間常說:“資料和特徵決定了機器學習的上限,而模型和演算法只是逼近這個上限而已”。由此可見,特徵工程在機器學習中佔有相當重要的地位。在實際應用當中,可以說特徵工程是機器學習成功的關鍵。縱觀

MySQL學習索引

索引 —— 是一種提高查詢速度的機制 索引用來快速地尋找那些具有特定值的記錄,如果沒有索引,執行查詢時MySQL必須從第一個記錄開始掃描整個表的所有記錄,直至找到符合要求的記錄。表裡面的記錄數量越多,這個操作的代價就越高。 索引提供指標以指向儲存在表中指定列的資料值,然後

matplotlib學習設定線條顏色、形狀

本文是學習《matplotlib for python developers》的一點筆記 plot畫圖時可以設定線條引數。包括:顏色、線型、標記風格。 1)控制顏色 顏色之間的對應關係為 b---blue   c---cyan  g---green    k----black m---magenta r---

MYSQL學習筆記高階資料過濾

組合WHERE子句 (1)AND操作符 WHERE ——=—— AND ——=—— 注意若為字母及字母與數字,需加’ ’,而純數字不必;可以多加AND構成多個條件 (2)OR操作符 WHER

MySQL學習查詢

一、group_concat()函式。把groupby的分組中欄位資料組合顯示出來   select s_id , GROUP_CONCAT(要顯示的欄位名)  from table group by 分組欄位 二、group_by 與 Having 結合 :根據條件篩選分組條件   sele

資料庫系統概論學習筆記:SQL的簡單應用資料查詢

嗯……最實用的部分,其他都可以不會,唯獨這個必須熟練吧 —— 資料查詢 這篇筆記主要是例子,使用的例子是《筆記(三)》中定義的學生選課關係。使用的SQL語句可能與教材上有些出入,因為我使用的是MySQL 5.7,對SQL語言支援可能會有些許差異。

Unity3DMecanim動畫系統學習筆記:Animation State

大致 面板 輸入 jpg any 動畫播放 速度 nsf 顯示 動畫的設置 我們先看看Animation Clip的一些設置: Loop time:動畫是否循環播放。 下面出現了3個大致一樣的選項: Root Transform Rotation:表示為播放動畫

MySQL集群keepalived實現mysql雙主高可用

健康檢查 重連 lose 搶占 pro 資源 交換機 state nec 前面大家介紹了主從、主主復制以及他們的中間件mysql-proxy的使用,這一篇給大家介紹的是keepalived的搭建與使用! 一、keepalived簡介 1.1、keepalived介紹

C Primer Plus學習筆記- 運算符、表達式和語句

post 函數表 浮點 ima 數據存儲 定義 數據對象 其他 符號整型 基本運算符 賦值運算符:= 在C語言中,=不是“相等”,而是賦值運算符,把左邊的值賦給右邊的變量 a = 2018; //把值2018賦給變量a 賦值表達式語句的目的是把值儲存到內存位置上,用

ESP32學習筆記I2C總線

oid 操作系統 parameter ica basis condition 技術分享 col rto 上一篇帖子我們了解了一下ESP32運行多任務的操作以及現象,其實也就是一個實時操作系統。那麽,這篇帖子我們就結合“LM75a”溫度傳感器來學習一下ESP32的IIC總線吧

基於Ubuntu Server 16.04 LTS版本安裝和部署Django:安裝MySQL數據庫

ins cli 遠程訪問 lib root 版本 連接 str ibm 1.安裝mysql以及插件: sudo apt-get install mysql-server mysql-client sudo apt-get install libmysqld-devsud

Nodejs學習筆記—與MySQL交互felixge/node-mysql

ted iss eid 所在 err password soc deb 大連 簡介和安裝   Node.js與MySQL交互操作有很多庫,具體可以在 https://www.npmjs.org/search?q=mysql 查看。   我選擇了felixge/node-m

Redis學習筆記——數據結構List

ltr dex pan 返回 red 操作 數據結構 alt 區間 一、介紹   Redis列表(List)是簡單的字符串列表,按照插入順序排序。你可以添加一個元素到列表的頭部(left)或者尾部(right),一個列表最多可以包含232-1個元素(4294967295,每