sql查詢子句
一、
簡單查詢
簡單的transact-sql查詢只包括選擇列表、from子句和where子句。它們分別說明所查詢列、查詢的表或視圖、以及搜索條件等。
例如,下面的語句查詢testtable表中姓名為「張三」的nickname欄位和email欄位。
select
nickname,email
from
testtable
where
name='張三'
(一)
選擇列表
選擇列表(select_list)指出所查詢列,它可以是一組列名列表、星號、表達式、變數(包括局部變數和全局變數)等構成。
1、選擇所有列
例如,下面語句顯示testtable表中所有列的數據:
select
*
from
testtable
2、選擇部分列並指定它們的顯示次序
查詢結果集合中數據的排列順序與選擇列表中所指定的列名排列順序相同。
例如:
select
nickname,email
from
testtable
3、更改列標題
在選擇列表中,可重新指定列標題。定義格式為:
列標題=列名
列名
列標題
如果指定的列標題不是標準的標識符格式時,應使用引號定界符,例如,下列語句使用漢字顯示列標題:
select
昵稱=nickname,電子郵件=email
from
testtable
4、刪除重復行
select語句中使用all或distinct選項來顯示表中符合條件的所有行或刪除其中重復的數據行,默認為all。使用distinct選項時,對於所有重復的數據行在select返回的結果集合中只保留一行。
5、限制返回的行數
使用top
n
[percent]選項限制返回的數據行數,top
n說明返回n行,而top
n
percent時,說明n是表示一百分數,指定返回的行數等於總行數的百分之幾。
例如:
select
top
2
*from
testtable
select
top
20
percent
*
from
testtable
(二)from子句
from子句指定select語句查詢及與查詢相關的表或視圖。在from子句中最多可指定256個表或視圖,它們之間用逗號分隔。
在from子句同時指定多個表或視圖時,如果選擇列表中存在同名列,這時應使用對象名限定這些列所屬的表或視圖。例如在usertable和citytable表中同時存在cityid列,在查詢兩個表中的cityid時應使用下面語句格式加以限定:
select
username,citytable.cityid
from
usertable,citytable
where
usertable.
本篇文章來源於
黑軟基地-中國最大的黑客教程計算機安全教程下載基地
原文鏈接:
http://www.hackvip.com/article/sort056/sort058/kkkcc.com-2297.html
② 什麼不是sql數據查詢的子句
NoSQL不是SQL數據查詢的子句。根據查詢相敏虛殲關公橋沖開信息顯示譽枯,NoSQL是一種不依賴於關系模型的資料庫管理系統,它可以處理非結構化數據,而SQL只能處理結構化數據。
③ sql查詢語句格式是什麼
sql查詢語句格式是:
④ sql資料庫創建查詢的方法有哪些
三種方法分別如下:
1、使用向導創建資料庫。
2、使用企業管理器創建資料庫。
3、使用Transact-SQL的CREATE DATABASE語句創建資料庫 。
依據資料庫的名稱創建標識,將所述資料庫的名稱和所述標識作為第一key值,將所述資料庫的信息進行保存並作為第一value值,得到所述資料庫對應的KV記錄;在所述資料庫中建立數據表;將所述資料庫的名稱和數據表的名稱作為第二key值。
將所述悔慧數據表的信息進行保存並作為第二value值得到賀前局所述數據表對應的KV記錄;在所述數據表中插入數據;將所述資料庫的名稱,數據表的名稱和數據的名稱作為第三禪讓key值,將所述數據的信息進行保存並作為第三value值,得到所述數據對應的KV記錄;獲得所述適用SQL查詢方法的KV資料庫。
(4)sql查詢子句擴展閱讀:
SQL中的查詢語句只有一個:SELECT,它可與其它語句配合完成所有的查詢功能。SELECT語句的完整語法,可以有6個子句。
查詢語句的完整的語法如下:
SELECT 目標表的列名或列表達式集合
FROM 基本表或(和)視圖集合
〔WHERE條件表達式〕
〔GROUP BY列名集合
〔HAVING組條件表達式〕〕
〔ORDER BY列名〔集合〕…〕
簡單查詢,使用TOP子句,查詢結果排序order by 默認ASC升序,使用關鍵詞DESC降序。帶條件的查詢where,使用算術表達式,使用邏輯表達式,使用between和in關鍵字。
參考資料來源:網路-SQL資料庫
⑤ sql中表示查詢條件的子句有where和什麼
from:從哪些表中篩選
where:從表中篩選的條件
group by:分組依據
having:在統計結果中再次篩選
order by:排序
limit:分頁
having與where的區別在於,where是從表中篩選的條件,而having是統計結果中再次篩選。也就是說where後面不能加「分組/聚合函數」,而having後面則可以。
⑥ sql查詢使用where子句指出的是
sql查詢使用where子句指出的是查詢條磨豎件。SQLWHERE子句WHERE子句用於提取那些滿足指定租游族標準的記錄。弊弊
⑦ SQL查詢語句中,什麼叫子查詢
嵌套SELECT語句也叫子查詢,一個
SELECT
語句的查詢結果能夠作為另一個語句的輸入值。子查詢不但能夠出現在Where子句中,也能夠出現在from子句中,作為一個臨時表使用,也能夠出現在select
list中,作為一個欄位值來返回。
1、單行子查詢
:單行子查詢是指子查詢的返回結果只有一行數據。當主查詢語句的條件語句中引用子查詢結果時可用單行比較符號(=,
>,
<,
>=,
<=,
<>)來進行比較。
例:
select
ename,deptno,sal
from
emp
where
deptno=(select
deptno
from
dept
where
loc='NEW
YORK');
2、多行子查詢:多行子查詢即是子查詢的返回結果是多行數據。當主查詢語句的條件語句中引用子查詢結果時必須用多行比較符號(IN,ALL,ANY)來進行比較。其中,IN的含義是匹配子查詢結果中的任一個值即可("IN"
操作符,能夠測試某個值是否在一個列表中),ALL則必須要符合子查詢的所有值才可,ANY要符合子查詢結果的任何一個值即可。而且須注意ALL
和ANY
操作符不能單獨使用,而只能與單行比較符(=、>、<
、>=
、<=
、<>)結合使用。
例:
1).多行子查詢使用IN操作符號例子:查詢選修了老師名叫Rona(假設唯一)的學生名字
sql>
select
stName
⑧ 寫出SQL查詢語句的基本結構,並說明結構中各子句表示的含義
語法
SELECT [predicate] { * | table.* | [table.]field1 [AS alias1] [,[table.]field2 [AS alias2] [,...]]}
FROM tableexpression [,...] [IN externaldatabase]
[WHERE...]
[GROUP BY...]
[HAVING...]
[ORDER BY...]
[WITH OWNERACCESS OPTION]
SELECT 語句包含以下部分:
部分 說明
predicate 這些謂詞之一:ALL、DISTINCT、DISTINCTROW 或 TOP.可以使用謂詞來限定返回記錄的數量.如果沒有指定謂詞,默認值為 ALL.
* 指定選擇所指定的表的所有欄位.
table 表的名稱,該表包含了其記錄被選擇的欄位.
field1,field2 欄位名,這些欄位包含了要檢索的數據.如果包括多個欄位,將按它們的排列順序對其進行檢索.
alias1,alias2 用作列標題的名稱,不是 table 中的原始列名.
tableexpression 其中包含要檢索的數據的表的名稱.
externaldatabase 如果 tableexpression 中的表不在當前資料庫中,則使用該參數指定該資料庫名.
說明
若要執行此項操作,Microsoft?Jet 資料庫引擎會搜索指定的表,並提取出選定的列,再選擇出符合條件的列,然後按指定的順序對得到的行進行排序或分組.
SELECT 語句不會更改資料庫中的數據.
SELECT 通常是 SQL 語句中的第一個詞.大多數 SQL 語句是 SELECT 或 SELECT...INTO 語句.
SELECT 語句最簡化的語法為:
SELECT fields FROM table
可以通過星號 (*) 來選擇表中所有的欄位.以下的示例選擇在 Employees 表中的所有欄位:
SELECT * FROM Employees;
如果一個欄位名包括於 FROM 子句內的多個表中,請在該欄位前面加上表名和 .(圓點)號.在下面的示例中,Department 欄位同時存在於 Employees 表和 Supervisors 表中.SQL 語句從 Employees 表中選擇出部門並從 Supervisors 表中選擇出主管名:
SELECT Employees.Department,Supervisors.SupvName
FROM Employees INNER JOIN Supervisors
WHERE Employees.Department = Supervisors.Department;
創建 Recordset 對象時,Microsoft Jet 資料庫引擎將使用表的欄位名作為 Recordset 對象中的 Field 對象名.如果需要一個不同的欄位名或者名稱不適合用來生成該欄位的表達式,請使用 AS 保留字.下面的示例使用標題 Birth 來命名在所得到的 Recordset 對象中的返回 Field 對象:
SELECT BirthDate
AS Birth FROM Employees;
只要使用坦御的聚合函數或查詢返回的是不明確的或重復的 Field 對象名稱,就必須使用 AS 子句為該 Field 對象另外提供一個慶模替代名稱.下面的示例使用標題 HeadCount 來命名在結果 Recordset 對象中的返回 Field 對象:
SELECT COUNT(EmployeeID)
AS HeadCount FROM Employees;
可以在 SELECT 語句中使用其他子句進一步約束和組織所返回的數據.有關詳細信息,請參閱相應子句的幫助主題.
請參閱
ALL DISTINCT、DISTINCTROW、TOP 謂詞 ORDER BY 子句 (Microsoft Jet SQL)
DELETE 語句 SELECT...INTO 語讓差岩句
FROM 子句 SQL 聚合函數
GROUP BY 子句 UNION 操作
HAVING 子句 UPDATE 語句
IN 子句 WHERE 子句
INSERT INTO 語句 WITH OWNERACCESS OPTION 聲明
⑨ 通用SQL資料庫查詢語句精華使用簡介
一 簡單查詢簡單的Transact SQL查詢只包括選擇列表 FROM子句和WHERE子句 它們分別說明所查詢列 查詢的表或視圖 以及搜索條件等
例如 下面的語句查詢testtable表中姓名為 張三 的nickname欄位和email欄位
SELECT nickname emailFROM testtableWHERE name= 張三
(一) 選擇列表
選擇列表(select_list)指出所查詢列 它可以是一組列名列表 星號 表達式 變數(包括局部變數和全局變數)等構成
選擇所有列
例如 下面語句顯示testtable表中所有列的數據
SELECT *FROM testtable
選擇部分列並指定它們的顯示次序
查詢結果集合中數據的排列順序與選擇列表中所指定的列名排列順序相同
例如
SELECT nickname emailFROM testtable
賣改 更改列標題
在選擇列表中 可重新指定列標題 定義格式為
列標題=列名列名 列標題
如果指定的列標題不是標準的標識符格式時 應使用引號定界符 例如 下列語句使用漢字顯示列標題
SELECT 昵稱=nickname 電子郵件=emailFROM testtable
刪除重復行
SELECT語句中使用ALL或DISTINCT選項來顯示表中符合條件的所有行或刪除其中重復的數據行 默認為ALL 使用DISTINCT選項時 對於所有重復的數據行在SELECT返回的結果集合中只保留一行
限制返回的行數
使用TOP n [PERCENT]選項限制返回的數據行數 TOP n說明返回n行 而TOP n PERCENT時 說明n是表示一百分數 指定返回的行數等於總行數的百分之幾
例如
SELECT TOP *FROM testtable SELECT TOP PERCENT * FROM testtable
(二) FROM子句
悄穗FROM子句指定SELECT語句查詢及與查詢相關的表或視圖 在FROM子句中最多可指定 個表或視圖 它們之間用逗號分隔
在FROM子句同時指定多個表或視圖時 如果選擇列表中存在同名列 這時應使用中運判對象名限定這些列所屬的表或視圖 例如在usertable和citytable表中同時存在cityid列 在查詢兩個表中的cityid時應使用下面語句格式加以限定
SELECT username citytable cityidFROM usertable citytableWHERE usertable cityid=citytable cityid
在FROM子句中可用以下兩種格式為表或視圖指定別名
表名 as 別名表名 別名
例如上面語句可用表的別名格式表示為
SELECT username b cityidFROM usertable a citytable bWHERE a cityid=b cityid
SELECT不僅能從表或視圖中檢索數據 它還能夠從其它查詢語句所返回的結果集合中查詢數據
例如
SELECT a au_fname+a au_lnameFROM authors a titleauthor ta(SELECT title_id titleFROM titlesWHERE ytd_sales> ) AS tWHERE a au_id=ta au_idAND ta title_id=t title_id
此例中 將SELECT返回的結果集合給予一別名t 然後再從中檢索數據
(三) 使用WHERE子句設置查詢條件
WHERE子句設置查詢條件 過濾掉不需要的數據行 例如下面語句查詢年齡大於 的數據
SELECT *FROM usertableWHERE age>
WHERE子句可包括各種條件運算符
比較運算符(大小比較) > >= = < <= <> !> !<范圍運算符(表達式值是否在指定的范圍) BEEEN…AND…NOT BEEEN…AND…列表運算符(判斷表達式是否為列表中的指定項) IN (項 項 ……)NOT IN (項 項 ……)模式匹配符(判斷值是否與指定的字元通配格式相符):LIKE NOT LIKE空值判斷符(判斷表達式是否為空) IS NULL NOT IS NULL邏輯運算符(用於多條件的邏輯連接) NOT AND OR
范圍運算符例 age BEEEN AND 相當於age>= AND age<=
列表運算符例 country IN ( Germany China )
模式匹配符例 常用於模糊查找 它判斷列值是否與指定的字元串格式相匹配 可用於char varchar text ntext datetime和 *** alldatetime等類型查詢
可使用以下通配字元
百分號% 可匹配任意類型和長度的字元 如果是中文 請使用兩個百分號即%%
下劃線_ 匹配單個任意字元 它常用來限製表達式的字元長度
方括弧[] 指定一個字元 字元串或范圍 要求所匹配對象為它們中的任一個 [^] 其取值也[] 相同 但它要求所匹配對象為指定字元以外的任一個字元
例如
限制以Publishing結尾 使用LIKE %Publishing
限制以A開頭 LIKE [A]%
限制以A開頭外 LIKE [^A]%
空值判斷符例WHERE age IS NULL
邏輯運算符 優先順序為NOT AND OR
(四)查詢結果排序
使用ORDER BY子句對查詢返回的結果按一列或多列排序 ORDER BY子句的語法格式為
ORDER BY {column_name [ASC|DESC]} [ …n]
其中ASC表示升序 為默認值 DESC為降序 ORDER BY不能按ntext text和image數據類型進行排序例如
SELECT *FROM usertableORDER BY age desc userid ASC
另外 可以根據表達式進行排序
二 聯合查詢
UNION運算符可以將兩個或兩個以上上SELECT語句的查詢結果集合合並成一個結果集合顯示 即執行聯合查詢 UNION的語法格式為
select_statementUNION [ALL] selectstatement[UNION [ALL] selectstatement][…n]
其中selectstatement為待聯合的SELECT查詢語句
ALL選項表示將所有行合並到結果集合中 不指定該項時 被聯合查詢結果集合中的重復行將只保留一行
聯合查詢時 查詢結果的列標題為第一個查詢語句的列標題 因此 要定義列標題必須在第一個查詢語句中定義 要對聯合查詢結果排序時 也必須使用第一查詢語句中的列名 列標題或者列序號
在使用UNION 運算符時 應保證每個聯合查詢語句的選擇列表中有相同數量的表達式 並且每個查詢選擇表達式應具有相同的數據類型 或是可以自動將它們轉換為相同的數據類型 在自動轉換時 對於數值類型 系統將低精度的數據類型轉換為高精度的數據類型
在包括多個查詢的UNION語句中 其執行順序是自左至右 使用括弧可以改變這一執行順序 例如
查詢 UNION (查詢 UNION 查詢 )
三 連接查詢
通過連接運算符可以實現多個表查詢 連接是關系資料庫模型的主要特點 也是它區別於其它類型資料庫管理系統的一個標志
在關系資料庫管理系統中 表建立時各數據之間的關系不必確定 常把一個實體的所有信息存放在一個表中 當檢索數據時 通過連接操作查詢出存放在多個表中的不同實體的信息 連接操作給用戶帶來很大的靈活性 他們可以在任何時候增加新的數據類型 為不同實體創建新的表 爾後通過連接進行查詢
連接可以在SELECT 語句的FROM子句或WHERE子句中建立 似是而非在FROM子句中指出連接時有助於將連接操作與WHERE子句中的搜索條件區分開來 所以 在Transact SQL中推薦使用這種方法
SQL 標准所定義的FROM子句的連接語法格式為
FROM join_table join_type join_table[ON (join_condition)]
其中join_table指出參與連接操作的表名 連接可以對同一個表操作 也可以對多表操作 對同一個表操作的連接又稱做自連接
join_type 指出連接類型 可分為三種 內連接 外連接和交叉連接 內連接(INNER JOIN)使用比較運算符進行表間某(些)列數據的比較操作 並列出這些表中與連接條件相匹配的數據行 根據所使用的比較方式不同 內連接又分為等值連接 自然連接和不等連接三種 外連接分為左外連接(LEFT OUTER JOIN或LEFT JOIN) 右外連接(RIGHT OUTER JOIN或RIGHT JOIN)和全外連接(FULL OUTER JOIN或FULL JOIN)三種 與內連接不同的是 外連接不只列出與連接條件相匹配的行 而是列出左表(左外連接時) 右表(右外連接時)或兩個表(全外連接時)中所有符合搜索條件的數據行
交叉連接(CROSS JOIN)沒有WHERE 子句 它返回連接表中所有數據行的笛卡爾積 其結果集合中的數據行數等於第一個表中符合查詢條件的數據行數乘以第二個表中符合查詢條件的數據行數
連接操作中的ON (join_condition) 子句指出連接條件 它由被連接表中的列和比較運算符 邏輯運算符等構成
無論哪種連接都不能對text ntext和image數據類型列進行直接連接 但可以對這三種列進行間接連接 例如
SELECT p pub_id p pub_id p pr_infoFROM pub_info AS p INNER JOIN pub_info AS p ON DATALENGTH(p pr_info)=DATALENGTH(p pr_info)
(一)內連接
內連接查詢操作列出與連接條件匹配的數據行 它使用比較運算符比較被連接列的列值 內連接分三種
等值連接 在連接條件中使用等於號(=)運算符比較被連接列的列值 其查詢結果中列出被連接表中的所有列 包括其中的重復列
不等連接 在連接條件使用除等於運算符以外的其它比較運算符比較被連接的列的列值 這些運算符包括> >= <= < !> !<和<>
自然連接 在連接條件中使用等於(=)運算符比較被連接列的列值 但它使用選擇列表指出查詢結果集合中所包括的列 並刪除連接表中的重復列
例 下面使用等值連接列出authors和publishers表中位於同一城市的作者和出版社
SELECT *FROM authors AS a INNER JOIN publishers AS pON a city=p city
又如使用自然連接 在選擇列表中刪除authors 和publishers 表中重復列(city和state)
SELECT a * p pub_id p pub_name p countryFROM authors AS a INNER JOIN publishers AS pON a city=p city
(二)外連接
內連接時 返回查詢結果集合中的僅是符合查詢條件( WHERE 搜索條件或 HAVING 條件)和連接條件的行 而採用外連接時 它返回到查詢結果集合中的不僅包含符合連接條件的行 而且還包括左表(左外連接時) 右表(右外連接時)或兩個邊接表(全外連接)中的所有數據行 如下面使用左外連接將論壇內容和作者信息連接起來
SELECT a * b * FROM luntan LEFT JOIN usertable as bON a username=b username
下面使用全外連接將city表中的所有作者以及user表中的所有作者 以及他們所在的城市
SELECT a * b *FROM city as a FULL OUTER JOIN user as bON a username=b username
(三)交叉連接
交叉連接不帶WHERE 子句 它返回被連接的兩個表所有數據行的笛卡爾積 返回到結果集合中的數據行數等於第一個表中符合查詢條件的數據行數乘以第二個表中符合查詢條件的數據行數 例 titles表中有 類圖書 而publishers表中有 家出版社 則下列交叉連接檢索到的記錄數將等
於 * = 行
lishixin/Article/program/SQL/201311/16231
⑩ 標准SQL嵌套查詢語句
1、簡單子查詢
select name,age from person
where age >
(
select age from person
where name = '網路'
)
2、in嵌套查詢
select name from person
where countryid in
(
select countryid from country
where countryname = '網路'
)
(10)sql查詢子句擴展閱讀:
嵌套查詢的意思是,一個查詢語句(select-from-where)查詢語句塊可以嵌套在另外一個查詢塊的where子句中,稱為嵌套查詢,其中外層查詢也稱為父查詢,主查詢,內層查詢也稱子查詢,從查詢。
子查詢的語法規則
1、子查詢的select查詢總是使用圓括弧括起來。
2、不能包括compute或for.browse子句。
3、如果同時指定top子句,則可能只包括order by子句。
4、子查詢最多可以嵌套到32層。個別查詢可能會不支持32層嵌套。
5、任何可以使用表達式的地方都可以使用子查詢,只要它返回的是單個值。
6、如果某個表只出現在子查詢中二不出現在外部查詢中,那麼該表的列就無法包含在輸出中。