首頁 資料庫 mysql教程 深入SELECT语句的查询功能(一)(1)

深入SELECT语句的查询功能(一)(1)

Jun 07, 2016 pm 04:07 PM
select 查詢功能 深入 語句

本节将讲述SELECT语句的一些高级功能。 列和表的别名 列的别名 精选输出的列可以用列名、列别名或列位置在ORDER BY和GROUP BY子句引用,列位置从1开始。 例如,我们从pet表中检索出宠物和种类,直接引用列名: mysql> SELECT name,species FROM pet ORDER BY

本节将讲述SELECT语句的一些高级功能。

列和表的别名

列的别名

精选输出的列可以用列名、列别名或列位置在ORDER BY和GROUP BY子句引用,列位置从1开始。

例如,我们从pet表中检索出宠物和种类,直接引用列名:

mysql> SELECT name,species FROM pet ORDER BY name, species;

其输出为:

+----------+---------+

| name     | species |

+----------+---------+

| Bowser   | dog     |

| Buffy    | dog     |

| Chirpy   | bird    |

| Claws    | cat     |

| Fang     | dog     |

| Fluffy   | cat     |

| Puffball | hamster |

| Slim     | snake   |

| Whistler | bird    |

+----------+---------+

在子句中使用列的位置:

mysql> SELECT name,species FROM pet ORDER BY 1,2;

这条语句的输出与上面并无不同。

最后,你还可以为列命名:

mysql> SELECT name AS n,species AS s FROM pet ORDER BY n,s;

注意返回的结果:

+----------+---------+

| n        | s       |

+----------+---------+

| Bowser   | dog     |

| Buffy    | dog     |

| Chirpy   | bird    |

| Claws    | cat     |

| Fang     | dog     |

| Fluffy   | cat     |

| Puffball | hamster |

| Slim     | snake   |

| Whistler | bird    |

+----------+---------+

返回的记录顺序并无不同。但是列的名字有了改变,这一点在使用CREATE TABLE…SELECT语句创建表时是有意义的。

例如,我们想从pet表生成包括其中name,owner字段的表,但是想把name和owner字段的名字重新命名为animal和child,一个很笨的方法就是创建表再录入数据,如果使用别名,则仅仅一条SQL语句就可以解决问题,非常简单,我们要使用的语句使CREATE TABLE:

mysql> CREATE TABLE pet1
-> SELECT name AS animal,owner AS child
-> FROM pet;
登入後複製

然后,检索生成的表,看看是否打到目的:

mysql> SELECT * FROM pet1;

+----------+--------+

| animal   | child  |

+----------+--------+

| Fluffy   | Harold |

| Claws    | Gwen   |

| Buffy    | Harold |

| Chirpy   | Gwen   |

| Fang     | Benny  |

| Bowser   | Diane  |

| Whistler | Gwen   |

| Slim     | Benny  |

| Puffball | Diane  |

+----------+--------+

在子句中使用列的别名

你可以在GROUP BY、ORDER BY或在HAVING部分中使用别名引用列。别名也可以用来为列取一个更好点的名字:

mysql> SELECT species,COUNT(*) AS total FROM pet 
-> GROUP BY species HAVING total>1;

登入後複製

+---------+-------+

| species | total |

+---------+-------+

| bird    |     2 |

| cat     |     2 |

| dog     |     3 |

+---------+-------+

注意,你的 ANSI SQL 不允许你在一个WHERE子句中引用一个别名。这是因为在WHERE代码被执行时,列值还可能没有终结。例如下列查询是不合法:

SELECT id,COUNT(*) AS total FROM pet WHERE total > 1 GROUP BY species

会有下面的错误:

ERROR 1054: Unknown column 'total' in 'where clause'

WHERE语句被执行以确定哪些行应该包括GROUP BY部分中,而HAVING用来决定应该只用结果集合中的哪些行。

表的别名

别名不仅可以应用于列,也可以引用于表名,具体方法类似于列的别名,这里不再重复。

列的别名经常用于表自身的连接中。你不必有2个不同的表来执行一个联结。如果你想要将一个表的记录与同一个表的其他记录进行比较,联结一个表到自身有时是有用的。例如,为了在你的宠物之中繁殖配偶,你可以用pet联结自身来进行相似种类的雄雌配对:

mysql> SELECT p1.name, p1.sex, p2.name, p2.sex, p1.species
    -> FROM pet AS p1, pet AS p2
    -> WHERE p1.species = p2.species AND p1.sex = "f" AND p2.sex = "m";
登入後複製

+--------+------+--------+------+---------+

| name   | sex  | name   | sex  | species |

+--------+------+--------+------+---------+

| Fluffy | f    | Claws  | m    | cat     |

| Buffy  | f    | Fang   | m    | dog     |

| Buffy  | f    | Bowser | m    | dog     |

+--------+------+--------+------+---------+

在这个查询中,我们为表名指定别名以便能引用列并且使得每一个列引用关联于哪个表实例更直观。

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1657
14
CakePHP 教程
1415
52
Laravel 教程
1309
25
PHP教程
1257
29
C# 教程
1230
24
PHP實作IP位址查詢功能 PHP實作IP位址查詢功能 Jun 22, 2023 pm 11:22 PM

隨著網路的快速發展,IP位址成為了網路通訊中不可或缺的一環。在進行網路安全監測、流量管理、電商廣告定向投放等方面,IP位址的資訊非常重要。因此,為了方便用戶查詢IP位址/網域信息,許多網站提供了IP位址查詢功能。本篇文章將介紹如何用PHP實作IP位址查詢功能,供讀者參考。一、何為IP位址? IP位址(InternetProtocolAddress)即網路協

jquery如何隱藏select元素 jquery如何隱藏select元素 Aug 15, 2023 pm 01:56 PM

jquery隱藏select元素的方法:1、hide()方法,在HTML頁面中引入jQuery庫,可以使用不同選擇器來隱藏select元素,ID選擇器將selectId替換為你實際使用的select元素的ID;2、 css()方法,使用ID選擇器選擇需要隱藏的select元素,使用css()方法將display屬性設為none,並將selectId替換為select元素的ID。

使用golang進行Select Channels Go並發式程式設計的非同步處理方法 使用golang進行Select Channels Go並發式程式設計的非同步處理方法 Sep 28, 2023 pm 05:27 PM

使用golang進行SelectChannelsGo並發式程式設計的非同步處理方法引言:並發式程式設計是現代軟體開發中的重要領域,它可以有效地提高應用程式的效能和回應能力。在Go語言中,使用Channels和Select語句可以簡單而有效率地實現並發程式設計。本文將介紹如何使用golang進行SelectChannelsGo並發式程式設計的非同步處理方法,並提供具體的

jQuery中如何實作select元素的改變事件綁定 jQuery中如何實作select元素的改變事件綁定 Feb 23, 2024 pm 01:12 PM

jQuery是一個受歡迎的JavaScript函式庫,可以用來簡化DOM操作、事件處理、動畫效果等。在web開發中,常常會遇到需要對select元素進行改變事件綁定的情況。本文將介紹如何使用jQuery實作對select元素改變事件的綁定,並提供具體的程式碼範例。首先,我們需要使用標籤來建立一個包含選項的下拉式選單:

linux要用select的原因是什麼 linux要用select的原因是什麼 May 19, 2023 pm 03:07 PM

因為select可以讓開發者同時等待多個檔案緩衝區,可減少IO等待的時間,能夠提高進程的IO效率。 select()函數是IO多路復用的函數,允許程式監視多個檔案描述符,等待所監視的一個或多個檔案描述符變成「準備好」的狀態;所謂的」準備好「狀態是指:檔案描述子不再是阻塞狀態,可以用於某類IO操作了,包括可讀,可寫,發生異常三種。 select是一個電腦函數,位於頭檔#include。此函數用於監視文件描述符的變化情況-讀寫或是異常。 1.select函數介紹select函數是IO多工的函

深入了解HTTP狀態碼100:它代表什麼意思? 深入了解HTTP狀態碼100:它代表什麼意思? Feb 20, 2024 pm 04:15 PM

深入了解HTTP狀態碼100:它代表什麼意思? HTTP協定是現代網路應用中最常用的協定之一,它定義了瀏覽器和網路伺服器之間進行通訊所需的標準規格。在HTTP請求和回應的過程中,伺服器會向瀏覽器傳回各種類型的狀態碼,以反映請求的處理情況。其中,HTTP狀態碼100是一種特殊的狀態碼,用來表示"繼續"。 HTTP狀態碼由三位數字組成,每個狀態碼都有特定的意義

PHP開發技巧:如何實現資料表關聯和查詢功能 PHP開發技巧:如何實現資料表關聯和查詢功能 Sep 20, 2023 pm 04:28 PM

PHP開發技巧:實現資料表關聯和查詢功能在PHP開發中,經常需要處理資料庫相關的操作,其中包括資料表之間的關聯和查詢。本文將介紹如何利用PHP來實現資料表的關聯和查詢功能,並提供具體的程式碼範例。一、資料表關聯的概念資料表關聯是指透過某種規則將兩個或多個資料表中的記錄進行連接,以取得關聯表的資料資訊。常見的資料表關聯方式包括一對一關聯、一對多關聯和多對多關聯。一

mysql的select語法怎麼使用 mysql的select語法怎麼使用 Jun 01, 2023 pm 07:37 PM

1.SQL語句中的關鍵字對大小寫不敏感,SELECT等效於SELECT,FROM等效於from。 2.從users表中選擇所有列的,可以用符號*代替列的名稱。語法--這是註解--從FEOM指定的[表中],查詢出[所有的]資料.*表示[所有列]SELECT*FROM--透過從FROM從指定的[表中],查詢出指定列名稱(字段)的資料SELECT列名稱FROM表名稱實例--注意:多個列之間,使用英文的逗號來分隔selectusername,passwordfrom

See all articles