1. 程式人生 > >pgsql查詢--表表達式

pgsql查詢--表表達式

你可以給一個表或複雜表引用一個臨時的名字,用於剩下的查詢中引用那些派生的表。 這樣做叫做表別名

要建立一個表別名,我們可以寫:

FROM table_reference AS alias

或者

FROM table_reference alias

AS 關鍵字目前沒啥特別的含義。 alias 可以是任意識別符號。

表別名的典型應用是給長表名賦予比較短的識別符號, 好讓連線子句更好讀一些。比如:

SELECT * FROM some_very_long_table_name s JOIN another_fairly_long_name a ON s.id = a.num;

別名成為當前查詢的表引用的新名稱 — 我們不再能夠用該表最初的名字引用它了。因此

SELECT * FROM my_table AS m WHERE my_table.a > 5;

是不合法的 SQL 語法。這裡將發生的事情(這是 PostgreSQL對標準的擴充套件)是在 FROM 子句裡面隱含地增加了一個表引用,因此這個查詢將會象下面這樣處理

SELECT * FROM my_table AS m, my_table AS my_table WHERE my_table.a > 5;

這樣會生成一個交叉連線,通常可不是你想要的。

圓括弧用於解決歧義.下面的語句將把別名 b 賦予連線的結果,這是和前面的例子不同的:

SELECT * FROM (my_table AS a CROSS JOIN my_table) AS b ...

另外一種形式的除了給表別名還給該表的欄位賦予了臨時名字:

FROM table_reference [AS] alias ( column1 [, column2 [, ...]] )

如果宣告的欄位別名比表裡實際的欄位少,那麼後面的欄位就沒有重新命名. 這個語法對於自連線或子查詢特別有用.

如果用這些形式中的任何一種給一個JOIN子句的輸出附加了一個別名, 那麼該別名就在JOIN裡隱藏了其原始的名字。比如

SELECT a.* FROM my_table AS a JOIN your_table AS b ON ...

是合法 SQL,但是

SELECT a.* FROM (my_table AS a JOIN your_table AS b ON ...) AS c

是不合法的:表別名 a 在別名c外面是看不到的。

相關推薦

pgsql查詢--表達

你可以給一個表或複雜表引用一個臨時的名字,用於剩下的查詢中引用那些派生的表。 這樣做叫做表別名。 要建立一個表別名,我們可以寫: FROM table_reference AS alias 或者 FROM table_reference alias AS 關鍵字目前沒啥特別的含義。 alias 可以是任

基礎很重要~~04.表達

cit sca 頭部 生成 res alter 加密 貴的 return 閱讀目錄 概述: 一、視圖 二、內聯表值函數 三、APPLY運算符 以前總是追求新東西,發現基礎才是最重要的,今年主要的目標是精通SQL查詢和SQL性能優化。 本系列【T-SQL基礎】主

SQL Server進階(六)表達

ins upd 逗號 csdn 引用 ssd 優點 暫存 可讀性 概述   SQL Server支持四種類型的表表達式:派生表,公用表表達式,視圖和內聯表值函數。 派生表 派生表是一個查詢結果生成的表,類似於臨時表。 派生表可以簡化查詢,避免使用臨時表。相比手動生成

mysql8 公用表達CTE的使用

公用表表達式CTE就是命名的臨時結果集,作用範圍是當前語句。 說白點你可以理解成一個可以複用的子查詢,當然跟子查詢還是有點區別的,CTE可以引用其他CTE,但子查詢不能引用其他子查詢。   一、cte的語法格式: with_clause: WITH [RECURSIVE]

公用表達CTE

----公用‍表表達式CTE(必須馬上使用,不能間隔有其他的SQL語句) --WITH TempTable AS --( -- Select Name,Age From T_Person Where ID>1 --), --TempTable2 AS --( -- Select Name,Age Fr

Sql server 表達

sqlserve 即使 nta 優化 方式 通過 外部 使用 不可 1、表表達式概述 (1)表表達式(table expression) 是一個命名的查詢表達式、代表一個有效的關系表 (2)在DML 中,使用表表達式和使用其他表非常類似 (3)sqlserver 支持

SQL server 查詢出現:---“子查詢返回的值不止一個。當子查詢跟隨在 =、!=、<、<=、>、>= 之後,或子查詢用作表達時,這種情況是不允許的。”SQL查詢錯誤解析---

gui 允許 select 查詢語句 一對一 行數 style sql 之前 最近用select進行數據篩選,碰到下面的這個錯誤: ---子查詢返回的值不止一個。當子查詢跟隨在 =、!=、<、<=、>、>= 之後,或子查詢用作表達式時,這種情況是不

js正則表達--驗證

con tracking 英文 data use 劃線 p地址 popu 手機號 檢測手機號碼:/0?(13|14|15|18)[0-9]{9}/ 檢測username:(數字,英文,漢字。下劃線。中橫線):/^[A-Za-z0-9_\-\u4e00-\u9fa5]+$

js入門5-字符的查詢與過濾 加上使用正則表達

表達 indexof arch document string對象 查找 reg 則表達式 fun <h2>5.String對象:字符的查找與過濾</h2> <input type="text" id="txtString

常用正則表達速查

tle 效果 table 邏輯 改變 小寫 body 換行符 特殊 元字符(配匹字符串用) 字符 補集(相反的) . 除換行符(\n)以外的任意字符 \n(換行) \w 單詞字符 (指大小寫字母、0-9的數字、下劃線、漢字) \W \d 數字(0-

JavaScript單驗證和正則表達

sco 集合 innertext ner rep tell 一次 臨時 軟件 JavaScript表單驗證 分為四類:   1.非空驗證     常用於用戶名等   2.相等驗證     常用於驗證兩次輸入的密碼   3.範圍驗證     常用於年齡等  

ABAP 內訪問表達的性能

editor string 分享 index lease time dcl struct 表達式 內表訪問表達式是ABAP 7.4中引入的重要特性,可以使語句變得更加簡潔、美觀。那麽它的讀寫性能怎麽樣呢?我進行了一點點測試。 讀取 測試代碼,使用三種方式讀取

單驗證之正則表達

cti 信用卡 for 整除 develop 虛擬 accep das 一位 1. 手機號驗證 經網絡查詢可知,中國三大運營商號碼波段主要有: (1). 移動號段: 134 135 136 137 138 139 147 150 151 152 157 158

極簡邏輯表達的設計和查詢

and pan gif varchar express sof display 不能 soft 在數據庫開發中,對兩個關系表進行連接查詢,能夠直接做“邏輯或”的查詢,而對於邏輯與和邏輯非的查詢,則稍復雜點,需要編寫額外的代碼來實現。在關系型數據庫中,

lambda表達封裝對數據庫的查詢

text list() int attr font 優雅 ima row not 前言: 1.為什麽要封裝lambda表達式數據庫查詢,原因有一下幾點: 1.1.在以往的開發中進行數據庫表查詢時,其實所需要的字段就是其中幾個,但是在開發中,開發者往往習慣select * 進

正則表達符號解釋

afa 標記 輸入 script color 標識 try 其中 控制字符 字符描述 \ 將下一個字符標記為一個特殊字符、或一個原義字符、或一個 向後引用、或一個八進制轉義符。例如,‘n‘ 匹配字符 "n"。‘\n‘ 匹配一個換行符。序列 ‘\\‘ 匹配 "\" 而

struts2獲取單數據之 屬性封裝 模型驅動 表達封裝 對象封裝到list集合 對象封裝到map集合 五種方便的封裝方式

demo1 submit namespace auto nbsp return admin user pri 一、屬性封裝   屬性封裝是在action裏面設定屬性值,屬性名字一定要和表單中的name一樣,action中extends ActionSupport   dem

前端單驗證常用的15個JS正則表達

ntp html 正整數 手機號碼 表達式 浮點數 als 浮點 個數 在表單驗證中,使用正則表達式來驗證正確與否是一個很頻繁的操作,本文收集整理了15個常用的javaScript正則表達式,其中包括用戶名、密碼強度、整數、數字、電子郵件地址(Email)、手機號碼、身份證

邏輯表達、真值、文氏圖、卡諾圖

http wid 程序員 body 自己 com 摩根定律 ges 分享圖片 最近在學習“程序員的數學”這本書,第二章講的是邏輯,用的邏輯表達式、真值表、文氏圖、卡諾圖進行的講解。 給自己的學習做一個筆記。 邏輯表達式:非﹁ 、  與∧  、或∨  、異或  、蘊涵(

【轉】編寫高質量代碼改善C#程序的157個建議——建議27:在查詢中使用Lambda表達

with 代碼 esc red 工作 一行 derby 命名空間 any 建議27:在查詢中使用Lambda表達式 LINQ實際上是基於擴展方法和Lambda表達式的。任何LINQ查詢都能通過擴展方法的方式來代替。 var personWithCompanyList