Ⅰ 請問大家在sql中all,any ,exists ,some四個關鍵字怎麼用
select * from table a
where a.col1 > all(select col1 from b )
意思 是 a表的 col1列,大於括弧裡面的 所有值
where a.col1>any (select col1 from b)
意思 是 a表的 col1列,只要大於 括弧裡面的 一個值
where exists (select col1 from b)
意思 是 只要存在 值 就成立。
some 就不懂了
Ⅱ 如何查詢得到sql server 2005中各種對象的源代碼
、SELECT名
SELECT select_list //指定由查詢返列
[ INTO new_table ] //創建新表並結行查詢插入新表
FROM table_source //指定其檢索行表或視圖
[ WHERE search_condition ] //指定限制返行搜索條件
[ GROUP BY group_by_expression ] //指定查詢結組條件
[ HAVING search_condition ] //指定組或聚合搜索條件
[ ORDER BY order_exception [ ASC | DESC ]] //指定結集排序
1、選擇所列
SELECT * FROM table_source
2、選擇部列
SELECT fieldname1 [ , fieldname2 , ...] FROM table_source
3、使用列別名
SELECT fieldname1 AS alias [ , fieldname2 AS alias , ... ] FROM table_source
4、WHERE句用條件運算符
比較運算符: > , < , >= , <= , !> , !< , = , <> , !=
范圍運算符:BETWEEN... AND , NOT BETWEEN ... AND
列表運算符:IN , NOT IN
模糊運算符:LIKE , NOT LIKE
邏輯運算符:AND , OR , NOT
空值判斷符:IS NULL , IS NOT NULL
5、模糊查詢
SELECT語句提供LIKE NOT LIKE 進行模式匹配即實現模糊查詢
% : 由零或更字元組任意字元串
SELECT * FROM tb_book WHERE bookname LIKE 'JSP%'
_ : 任意單字元
SELECT * FROM tb-book WHERE bookname LIKE '_SP'
[ ] : 指定字元、字元串或范圍要求所匹配象
SELECT * FROM tb_book WHERE bookname LIKE '[ A , J]SP'
[^ ]: 指定字元、字元串或范圍要求所匹配象指定范圍外字元
SELECT * FROM tb_book WHERE bookname LIKE '[^A]SP'
6、遇查詢指定列空值記錄並該列用特定值替換
SELECT id, name, bankname, isNull(bankno, '暫') from tb_customer where bankno is null
7、除查詢結重復記錄
SELECT DISTINCT fieldname1 [ , fieldname2 , ....] FROM table_source [WHERE search_condition]
DISTINCT :返惟行
ALL : 返所限定行默認值般用
8、限制結集返行數
SQL Server使用TOP關鍵字
SELECT TOP n [ PERCENT ] fieldname1 [ , fieldname2 , ...] FROM table_source [ WHERE search_condition]
// n表示返行數指定PERCENT則n必須整數表示返記錄數;若指定PERCENT則n
數取值0 ~ 100表示結集百比返記錄數
MySQL使用LIMIT關鍵字
SELECT fieldlist //欄位名
FROM table_source //其獲取數據表名稱
[ WHERE selectcriteria ] //查詢條件
[ LIMIT [ offset , ] rows ] //offset:要返第行偏移量初始行偏移量0rows:返行數
9、聚合函數
count():用於統計結集全部記錄行數量147483647
SELECT COUNT([ ALL | DISTINCE ] expression ) / COUNT(*) FROM table_source
sum():某列數值進行求
SELECT SUM ([ ALL | DISTINCT ] expression ) FROM table_source [ WHERE search_condition ]
// ALL:默認值全部數據進行計算
// DISTINCT:選值 表示除重復記錄數據進行計算
// expression:進行求列或列名組表達式
avg() :某列數值進行求平均數
SELECT AVG( [ ALL | DISTINCT ] expression ) FROM table_source [ WHERE search_condition ]
min() : 找某列元素值
SELECT MIN( expression ) / MAX( expression ) FROM table_source [ WHERE search_condition ]
max() : 找某列元素值
10、Group By句
SELECT fieldnameList [ , func(fieldname1) [ AS alias][ , func(fieldname2)...]
FROM table_source
[ GROUP BY [ ALL ] expression [ , .... n ]
[ WITH { CUBE | ROLLUP } ]]
// ALL : 該參數包含於選定列表匹配所組合結集用戶指定包含些行都滿足WHERE句指定搜
索條件組結集用戶指定ALL組滿足搜索條件匯總列返空值
// expression :該參數查詢執行組表達式expression稱組列列或列非聚集表達式選擇
列表內定義列別名能用於指定組列
// CUBE :該參數指定查詢結集內僅包含由GROUP BY提供行包括匯總行結集內返每
能組組組合GROUP BY匯總行GROUP BY匯總行結顯示null 用表示所值
// ROLLUP:該參數指定結集內僅包含由GROUP BY句提供行包含匯總行按層結構順序
組內低級別高級別匯總組組層結構取決於指定組列所使用順序更改組列順序
影響結集內行數
注意事項:
a) SELECT句列名列表除聚集函數外其所現列定要GROUP BY句定義才行
b) SELECT句列名列表定要聚集函數至少要用GROUP BY句列表項目
c) SQL Servertext , ntext , image數據類型列能作GROUP BY 句組依據
d) GROUP BY句能使用列別名
11、HAVING句
用於指定組或聚合搜索條件能與SELECT語句起使用能GROUP BY句使用若使用GROUP
BY句則行與WHERE句相同
GROUP BY句組結進行再篩選輸符合HAVING句指定條件記錄
包含聚合函數 能使用text, image , ntext數據類型
12、帶SOMEANY查詢
否返值滿足搜索要求且SOME 與 ANY完全等價
SELECT fieldlist FROM table_source
WHERE scalar_expression {=|<>|!=|>|>=|!>|<|<=|!<} {SOME / ANY}(subquery)
// SOME / ANY:指定進行比較
// subquery :包含某列結集查詢
定量比較運算符支持取反操作能SOME或ANY前加NOT使用等號<>獲取相同查詢結
13、帶ALL查詢
表達式值與查詢結所值相比都必須滿足比較運算符
SELECT fieldlist FROM table_source WHERE scalar_expression {=|<>|!=|>|>=|!>|<|<=|!<} ALL (subquery)
14、帶EXISTS查詢
該查詢產任何數據返true 或 false
SELECT fieldlist FROM table_source WHERE [ NOT ] EXISTS (subquery)
// EXISTS : 指滿足條件些記錄旦找第條匹配記錄馬停止查找
// subquery : 返單列結集查詢查詢受限SELECT語句允許COMPUTE句INTO關鍵字
15、內連接查詢
內連接返結集兩表符合條件數據舍棄符合條件數據
SELECT fieldlist FROM tb_name1 [ INNER ] JOIN tb_name2 ON join_condition [ WHERE ]
16、外連接查詢
外連接返至少表所行要些行符合WHERE或HAVING搜索條件
a) 左外連接:返結集包含左表所數據(符合WHERE或HAVING)及右表符合連接條件數據於
左表缺少右表屬性值用null表示
SELECT fieldlist FROM tb_name1 LEFT [ OUTER ] JOIN tb_name2 ON join_condition [ WHERE ]
b)右外連接:返結集包含右表所數據(符合WHERE 或 HAVING)及左表符合連接條件數據於
右表缺少左表屬性值用null表示
SELECT fieldlist FROM tb_name1 RIGHT [ OUTER ] JOIN tb_name2 ON join_condition [ WHERE ]
c)全外連接:返結集包含左表與右表所符合WHERE或HAVING搜索條件數據於缺少左表或右表
屬性值用null表示
SELECT fieldlist FROM tb_name1 FULL [ OUTER ] JOIN tb_name2 ON join_condition [ WHERE ]
17、交叉連接
返結集兩表迪卡乘積行數等於第錶行數與第二錶行數乘積若交叉連接指定
WHERE條件則交叉連接等於內連接
SELECT fieldlist FROM tb_name1 CROSS JOIN tb_name2 [ WHERE ]
交叉連接能使用ON設置連接條件
18、自連接
指表與其自身進行連接使用自連接必須每連接表起別名
例:SELECT DISTINCT a.* from tb_name a INNER JOIN tb_name b ON a.basicpay=b.basicpay WHERE b.name='wgh'
二、INSERT語句
INSERT [ INTO ] table_name [ ( column_list )] VALUES (data_values)
三、UPDATE語句
UPDATE SET = [ , ... , =]
[WHERE ]
四、DELETE語句
DELETE FROM <table_name> [ WHERE <search condition>]
Ⅲ SQL查詢中Any All 可互換嗎
ANY 與 ALL , 處理機制不同的
ANY 意味著。 只要有一行滿足條件, 就可以了。
而 ALL 意味著。 必須要每一行都滿足條件。
下面是一個對比的例子:
公用測試表
CREATE TABLE test_all_any_some1(
data_value INT
);
CREATE TABLE test_all_any_some2(
data_value INT
);
INSERT INTO test_all_any_some1
SELECT 1 UNION ALL
SELECT 2 UNION ALL
SELECT 3 UNION ALL
SELECT 4 UNION ALL
SELECT 5;
INSERT INTO test_all_any_some2
SELECT 1 UNION ALL
SELECT 3 UNION ALL
SELECT 5 UNION ALL
SELECT 7;
-- 檢索測試表2
-- 要求數據,必須大於測試表1中的所有數據
SELECT
*
FROM
test_all_any_some2
WHERE
data_value >
ALL (SELECT data_value FROM test_all_any_some1);
data_value
7
(1 行受影響)
-- 檢索測試表2
-- 要求數據,只要大於測試表1中的任何一個數據就可以了.
SELECT
*
FROM
test_all_any_some2
WHERE
data_value >
ANY (SELECT data_value FROM test_all_any_some1);
data_value
3
5
7(3 行受影響)
Ⅳ SQL 中ANY和ALL的用法
any表示任意一個,all表示所有的。舉例如下:
1、創建測試表,create table test_any_all(id number);
Ⅳ sql中用some或者不用some 有什麼區別
some 和any功能相同,表示只要子查詢中一個符合要求,該謂詞就符合要求,而all要子查詢中結果全部符合要求才行。
對於比較操作符接子查詢的情況,除非子查詢的結果是一個值,否則要加some any all來說明語義
Ⅵ linq to sql any和all的區別
Linq是微軟在.net3.0推出的一種新的數據訪問和處理的方式,來解決過去處理集合對象數據所遇到的種種困難。其中在C#3.0和VB9中分別引入了和SQL相似的Linq語法,使得現在操作各種數據對象變得非常容易而且可讀性更好。
Linq To Sql是微軟默認提供的LinqProvider的一種,其他的還有LinqToDataSet LinqToXml LinqToEntity等。
平時開發項目可以大量的使用linq,他會讓你在處理大量集合數據的時候提高效率。而Linq2Sql算是一個ORM框架,可以用來減輕數據訪問的負擔,如果你知道Hibernate之類的ORM框架的話,就很容易理解他了