select查詢操作與聯合查詢

2021-01-08 anyux1

大家好,我是anyux。上一節本節是對於SQL語句select詳細演示操作,本節是對於select練習演示操作。

select查詢操作

統計中國每個省的總人口數,列印總人口數小於100萬的

use world;select district,sum(population)from citywhere countrycode='CHN'group by districthaving sum(population) > 1000000;

查看中國所有的城市,並按人口數排序(從大到小)

select namefrom citywhere countrycode='CHN'order by population desc;

統計中國每個省的總人口數量,按照總人口從大到小排序

select district,sum(population)from citywhere countrycode='CHN'group by districtorder by sum(population) desc;

統計中國,每個省的總人口,找出總人口大於500萬的,並按總人口從大到小排序,只顯示前三名

select district,sum(population)from citywhere countrycode='CHN'group by districthaving sum(population) > 5000000order by sum(population) DESC limit 3;

統計中國,每個省的總人口,找出總人口

union和union all

union 和union all 的區別

union會做去除重複處理,性能比union會差一些

union all 不做去除重複處理

作用:多個結果集合併查詢的功能

查詢中國或美國的城市信息

select * from city where countrycode in ("CHN",'USA');

改寫後的SQL語句,索引等級會提高

select *from citywhere countrycode='CHN'union allselect *from citywhere countrycode="USA";

統計中國,每個省的總人口,找出總人口大於500萬的,並按總人口從大到小排序,顯示前三名和後三名

注意,如果這裡使用了子查詢,因為兩個查詢結果都使用了order by 子句,為排除報錯使用子查詢

select *from (select district,sum(population)from citywhere countrycode='CHN'group by districthaving sum(population) > 5000000order by sum(population) desc limit 3 ) munion allselect * from (select district,sum(population)from citywhere countrycode="CHN"group by districthaving sum(population) > 5000000order by sum(population) asclimit 3)n;

多表連接查詢(內連接)

基本語法

最核心的是找到多張表之間的關聯條件列,比如下面示例中city表的countrycode和country表中的code相關聯列書寫時,格式必須為 表名.列,因為如果不標識出來,就無法確定是哪個表的列進行關聯表的關聯列使用=(等號)連接如city.countrycode=country.code要查詢的數據也必須將列前面加上表名稱關聯條件時使用on連接條件,如(from city join country on city.countrycode=country.code)將所有的過濾、分組、排序等條件按順序寫在on的後面多張表關聯A JOIN B on A.x=B.y JOIN B C on B.m=C.n建議使用數據少的表做為連接的驅動表,將數據行最少的放在最左邊,後續所有表的關聯列儘量是主鍵或唯一鍵,至少建立一個索引

查詢世界上小於100人的城市,所在的國家名,國土面積,城市名,人口數

select country.name ,country.surfaceArea,city.name ,city.populationfrom cityjoin countryon city.countrycode=country.codewhere city.population < 100;

查詢世界上小於100人的城市

使用別名做簡化處理

select B.name ,B.surfaceArea,A.name ,A.populationfrom city as Ajoin country as Bon A.countrycode=B.codewhere A.population < 100;

查詢城市shenyang,城市人口,所在國家名(name)及國土面積(SurfaceArea)

select A.name,A.population,B.name,B.surfacearea from city as A join country as B on A.countrycode = B.code where A.name='shenyang';

查詢城市shenyang,城市人口,所在國家

別名

Mysql別名分為列別名,和表別名

表別名可以出現在任意子句中。列別名可以使用ORDER BY,GROUP BY和HAVING子句中的列別名來引用該列

注意:不能在WHERE子句中使用列別名。原因是當MySQL評估求值WHERE子句時,SELECT子句中指定的列的值可能尚未確定。

select A.name as 城市名稱,A.population as 城市人口,B.name as 國家名稱,B.surfacearea as 國家人口from city as Ajoin country as Bon A.countrycode = B.codewhere A.name='shenyang';

本節是對於SQL語句select練習演示。其中如有不足還各位同學指出。下一節將進行更詳細的複雜的select練習操作。

相關焦點

  • MSSQL中的聯合查詢與視圖
    前面幾篇講到SQL資料庫的一些查詢的基本語句,今天分享一下聯合查詢與視圖,這些在實際項目中用的也很多,問題也不少。一、聯合查詢: 關鍵詞Union 和 Union all我們先看下會用到的2張表:TableA ,TableB現在我們做幾個實驗:(1)將TableA中的第一條和第三條記錄聯合顯示:select * from TableA WHERE xh=1union allselect * from TableA
  • mysql資料庫select查詢語句
    select語句的介紹1 select * from 表名;*(代表表中的所有欄位)2 select distinct 欄位名 from表名 ; distinct 去掉重複欄位3 select * from 表名 where 條件 ;where 添加查詢的限制條件比較運算符 >、<、>=、<=、!
  • 如何快速學習Mysql資料庫Select查詢?
    學習MySQL查詢及更新相關操作select - from -語句查詢調取表數據用法distinct 排除重複值用法- from-語句查詢調取表數據:select語法簡述:語法結構:select 【欄位1】,【欄位2】…… from 表名實例:
  • MySQL數據查詢select語句靈活使用詳解
    第一種:單表查詢語法結構: select 欄位名稱 from 表名稱或者如果我們要查詢表的所以欄位,就直接使用select * from 表名  這個語法即可,這裡的星號*表示所有欄位名稱。案例:查詢用戶表user的所有信息Select * from user第二種:帶有條件篩選的單表查詢 where這個語法只是在select查詢語句的最好加上一條where語句進行數據的進一步過濾。
  • MySQL資料庫聯合查詢
    資料庫聯表查詢很重要,內聯查詢更是尤為重要。需要將school.sql文件導入到資料庫中資料庫多表聯合查詢,school庫下表的邏輯結構關係都在下圖中。可以通過驅動表加子表配合實現所有查詢要求。查詢zhang3,學習的課程名稱有哪些?
  • 數據查詢中,三個工作表聯合查詢的方法
    大家好,今日繼續講解VBA資料庫解決方案,今日的內容是第70講: 數據查詢中,三個工作表聯合查詢的方法。在各種查詢中,內連接,左外連接,右外連接等等,這些方法大家在工作中要多加利用,並且靈活利用,利用多了,知識就變成自己的了。今日我們講解的是三個工作表的聯合查詢,也就是說三個工作表的數據要一次查詢。我們還是看下面的實例講解。
  • SQL 查詢語句先執行 SELECT?兄弟你認真的麼?
    具體解釋:(註:下面「VT」表示 → 虛擬表 virtual )from:select * from table_1, table_2; 與 select * from table_1 join table_2; 的結果一致,都是表示求笛卡爾積;用於直接計算兩個表笛卡爾積,得到虛擬表VT1,這是所有select語句最先執行的操作
  • MySQL資料庫SQL查詢優化技巧之SELECT
    #MYSQL#本篇主要介紹的是最基本的select查詢語法和使用方法,以及SELECT的執行流程,了解了SELECT的執行流程還是很重要的,重要我們才能有針對性地去進行優化,比如select在執行的時候 會把所以的欄位編程成大寫字母,這樣我們在起初編寫SELECT語句時就可以把所以的字母進行大寫,這樣就省去了程序為把SQL語句變成大寫的消耗,速度自然就會提高。
  • 玩轉Mysql系列 - 第6篇:select查詢基礎篇
    基本語法 select 查詢的列 from 表名;注意:select語句中不區分大小寫,SELECT和select、FROM和from效果一樣。查詢的結果放在一個表格中,表格的第1行稱為列頭,第2行開始是數據,類屬於一個二維數組。
  • 追加查詢 select into from和insert into select的區別
  • Django查詢資料庫操作詳解(一)
    在 web 開發過程中,Django 與後臺資料庫的交互是必不可少的一項,也是實現業務邏輯所需數據的重要方式,所以 Django 的表查詢操作就顯的尤為重要
  • MySQL中select語句用法-單表單條件查詢
    查詢語句,分為單表單條件查詢,單表多條件查詢,多表查詢,還有分組統計等,因為內容比較多,我們分開來具體說明,今天先說一下單表單條件查詢,首先先看select的語法:SELECT 屬性列表FROM 表名和視圖列表[ WHERE
  • C#系 常用的LinQ查詢表達式之select
    select子句指定所選定的對象哪部分應該被選擇。
  • mysql的查詢、子查詢及連接查詢
    註:group by語句中select指定的欄位必須是「分組依據欄位」,其他欄位若想出現在select中則必須包含在聚合函數中。having sum(數量) > 18示例:Having和Where的聯合使用方法select 類別, SUM(數量)
  • 基礎SQL-DQL語句-SELECT查詢的簡單使用以及IFNULL函數
    基礎SQL-DQL語句-SELECT查詢的簡單使用以及IFNULL函數分類描述關鍵字DQL(Data Query Language)數據查詢語言 (掌握)DQL語言並不是屬於MYSQL官方的分類,但是對資料庫的操作最多就是查詢,所以我們的程式設計師把查詢語句的語句稱作為DQL語言SELECT 等查詢不會對資料庫中的數據進行修改.只是一種顯示數據的方式
  • LINQ:進階 - LINQ 標準查詢操作概述
    返回單個不可枚舉的結果的所有標準查詢運算符都立即執行。          (2)延遲: 延遲執行意味著不在代碼中聲明查詢的位置執行運算。  僅當對查詢變量進行枚舉操作時才執行運算,例如通過使用 foreach 語句。這意味著查詢的執行結果取決於執行查詢而非定義查詢時的數據源內容。如果多次枚舉查詢變量,則每次結果可能都不同。
  • 分享SQL語句查詢表中數據的實例操作解析
    今天和大家分享下用SQL語句查詢表的各種操作。主要有:給欄位取別名、Top的用法、Distinct的用法、COUNT的用法、MAX的用法、MIN的用法、SUM的用法、AVG的用法、COUNT的用法、Between 的用法。
  • MySQL全面瓦解—子查詢和組合查詢
    SQL支持創建子查詢( subquery) ,就是嵌套在其他查詢中的查詢 ,也就是說在select語句中會出現其他的select語句,我們稱為子查詢或內查詢。而外部的select語句,稱主查詢或外查詢。
  • Python操作Mysql資料庫進階篇——查詢操作詳解(一)
    查詢篩選條件首先,基本的sql查詢語句是:「select * from 表 where 條件;」通過這條sql語句可以查詢到某張表裡的所有欄位信息,那麼,篩選的運算符有以下幾種:,從而得到所需要的值;模糊查詢sql語句中提供了一種模糊查詢的語句,使用通配符「%」或者「_」可以實現模糊查詢,「%」是匹配多個字符,「_」是匹配一個字符,它的寫法是這樣的:假如,我們想要查詢所有四班的學生信息
  • SAS SQL 跨表查詢及多個欄位聯合查詢程序分享
    在實際工作中經常碰到多個表之間的查詢,通過某個或某幾個索引欄位實現跨庫查詢,信息合併。