自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

深入淺出SQL嵌套SELECT語句

數(shù)據(jù)庫
本文深入淺出講解了SQL如何嵌套SELECT語句,例舉實(shí)用案例,SQL嵌套SELECT語句中所涉及的各關(guān)鍵點(diǎn),都會(huì)有詳細(xì)講解。

嵌套SELECT語句也叫子查詢,形如:

SELECT name FROM bbc WHERE region = (SELECT region FROM bbc WHERE name = 'Brazil')

一個(gè)SELECT語句的查詢結(jié)果可以作為另一個(gè)語句的輸入值。

上面的SQL語句作用為獲得和'Brazil'(巴西)同屬一個(gè)地區(qū)的所有國家。

子查詢不但可以出現(xiàn)在Where子句中,也可以出現(xiàn)在from子句中,作為一個(gè)臨時(shí)表使用,也可以出現(xiàn)在select list中,作為一個(gè)字段值來返回。本節(jié)我們僅介紹的Where子句中的子查詢。

在Where子句中使用子查詢,有一個(gè)在實(shí)際使用中容易犯的錯(cuò)在這里說明一下。

通常,就像上面的例子一樣,嵌套的語句總是和一個(gè)值進(jìn)行比較。

語句 (SELECT region FROM bbc WHERE name = 'Brazil') 應(yīng)該僅返回一個(gè)地區(qū),即'Americas'。但如果我們?cè)诒碇性俨迦胍粭l地區(qū)為歐洲,國家名稱為Brazil的記錄,那會(huì)發(fā)生什么情況?

這將會(huì)導(dǎo)致語句的運(yùn)行時(shí)錯(cuò)誤,因?yàn)檫@個(gè)SQL語句的語法是正確的,所以數(shù)據(jù)庫引擎就開始執(zhí)行,但當(dāng)執(zhí)行到外部的語句時(shí)就出錯(cuò)了。

因?yàn)檫@時(shí)的外部語句就像好像是SELECT name FROM bbc WHERE region = ('Americas', 'Europe'),這個(gè)語句當(dāng)然報(bào)錯(cuò)了。

那么有沒有辦法解決這個(gè)問題呢,當(dāng)然有。有一些SQL查詢條件允許對(duì)列表值(即多個(gè)值)進(jìn)行操作。

例如"IN"操作符,可以測(cè)試某個(gè)值是否在一個(gè)列表中。

下面的語句就可以安全的執(zhí)行而不出錯(cuò),不管表中有多少條包含Brazils的記錄

以下為引用的內(nèi)容:

SELECT name FROM bbc WHERE region IN 
(SELECT region FROM bbc WHERE name = 'Brazil') 

讓我們?cè)倏纯匆恍┚唧w的實(shí)例

一、給出人口多于Russia(俄國)的國家名稱

以下為引用的內(nèi)容:

SELECT name FROM bbc
WHERE population>
(SELECT population FROM bbc
WHERE name='Russia') 

二、給出'India'(印度), 'Iran'(伊朗)所在地區(qū)的所有國家的所有信息

以下為引用的內(nèi)容:

SELECT * FROM bbc
WHERE region IN
(SELECT region FROM bbc
WHERE name IN ('India','Iran')) 

三、給出人均GDP超過'United Kingdom'(英國)的歐洲國家。

以下為引用的內(nèi)容:

SELECT name FROM bbc
WHERE region='Europe' AND gdp/population >
(SELECT gdp/population FROM bbc
WHERE name='United Kingdom') 

【編輯推薦】

  1. 分布式DBA:SQL存儲(chǔ)過程知識(shí)總結(jié)
  2. Oracle中SQL語句的幾種用法
  3. Sybase SQL Server日志問題普及
責(zé)任編輯:田超 來源: IT168
相關(guān)推薦

2021-03-16 08:54:35

AQSAbstractQueJava

2011-07-04 10:39:57

Web

2017-07-02 18:04:53

塊加密算法AES算法

2019-01-07 15:29:07

HadoopYarn架構(gòu)調(diào)度器

2021-07-20 15:20:02

FlatBuffers阿里云Java

2012-05-21 10:06:26

FrameworkCocoa

2022-09-26 09:01:15

語言數(shù)據(jù)JavaScript

2022-01-11 07:52:22

CSS 技巧代碼重構(gòu)

2019-12-04 10:13:58

Kubernetes存儲(chǔ)Docker

2022-11-09 08:06:15

GreatSQLMGR模式

2021-04-27 08:54:43

ConcurrentH數(shù)據(jù)結(jié)構(gòu)JDK8

2009-11-18 13:30:37

Oracle Sequ

2012-02-21 13:55:45

JavaScript

2018-11-09 16:24:25

物聯(lián)網(wǎng)云計(jì)算云系統(tǒng)

2019-11-11 14:51:19

Java數(shù)據(jù)結(jié)構(gòu)Properties

2022-12-02 09:13:28

SeataAT模式

2009-11-30 16:46:29

學(xué)習(xí)Linux

2022-10-31 09:00:24

Promise數(shù)組參數(shù)

2025-03-27 09:38:35

2010-07-26 12:57:12

OPhone游戲開發(fā)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)