Ⅰ 请问大家在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框架的话,就很容易理解他了