sql server 2005所有代码的意思
来源:
时间:2024-08-17 13:28:08
热度:
sql server 2005所有代码的意思【专家解说】:一、SELECT子名 SELECT select_list //指定由查询返回的列 [ INTO new_table
【专家解说】:一、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:要返回的第一行的偏移量,初始行的偏移量是0,rows:返回行的最大数
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 Server中text , ntext , image数据类型的列不能作为GROUP BY 子句的分组依据
d) GROUP BY子句不能使用列别名
11、HAVING子句
用于指定组或聚合的搜索条件,它只能与SELECT语句一起使用,能常在GROUP BY子句中使用它,若不使用GROUP
BY子句,则它的行为与WHERE子句相同。
它可对GROUP BY子句分组的结果进行再次筛选,最后输出符合HAVING子句中指定条件的记录。
它可以包含聚合函数, 不能使用text, image , ntext数据类型。
12、带SOME和ANY的子查询
是否有返回值满足搜索要求,且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 <search_condition> ]
16、外连接查询
外连接返回的是至少一个表中的所有行,只要这些行符合WHERE或HAVING搜索条件。
a) 左外连接:返回的结果集包含左表中的所有数据(符合WHERE或HAVING)及右表中的符合连接条件的数据,对于
左表中缺少的右表中的属性值用null表示。
SELECT fieldlist FROM tb_name1 LEFT [ OUTER ] JOIN tb_name2 ON join_condition [ WHERE <search_condition>]
b)右外连接:返回的结果集包含右表中的所有数据(符合WHERE 或 HAVING)及左表中的符合连接条件的数据,对于
右表中缺少的左表中的属性值用null表示。
SELECT fieldlist FROM tb_name1 RIGHT [ OUTER ] JOIN tb_name2 ON join_condition [ WHERE <search_condition>]
c)全外连接:返回的结果集包含左表与右表中所有符合WHERE或HAVING搜索条件的数据,对于缺少的左表或右表中的
属性值用null表示。
SELECT fieldlist FROM tb_name1 FULL [ OUTER ] JOIN tb_name2 ON join_condition [ WHERE <search_condition>]
17、交叉连接
返回的结果集是两个表的迪卡儿乘积,行数等于第一个表的行数与第二个表的行数的乘积,若在交叉连接中指定
WHERE条件,则交叉连接等于内连接
SELECT fieldlist FROM tb_name1 CROSS JOIN tb_name2 [ WHERE <search_condition>]
在交叉连接中不能使用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 <table_name | view_name> SET <column_name>=<expression> [ , ... , <last column_name>=<las expression>]
[WHERE <search_condition>]
四、DELETE语句
DELETE FROM <table_name> [ WHERE <search condition>]
上一篇:怎样能让电动车的电池起死回生
-
生物柴油的HS代码是多少?2024-08-17
-
壳牌石油和中国移动的股票叫什么?准确的代码是什么?2024-08-17
-
非晶硅薄膜光电模块的海关代码2024-08-17
-
中国石油的股票代码是啥?2024-08-17
-
中石油股票代码是多少?2024-08-17
-
天发石油的股票代码是多少2024-08-17
-
核电核能板块的代码是多少2024-08-17
-
请问石油钻井中的钻具代码及其具体含义,以及配合接头的数字具体代表什么意思?求高手解答!2024-08-17
-
西安石油大学代码2024-08-17
-
中国汽车零部件百强企业名单及股票代码2024-08-17
-
天然气蒸汽锅炉电路板故障如何排除天燃气壁挂炉出玑故障代码F3、F5该如何处理?2024-08-17
-
“绿色、环保、低碳”是当今世界的关键词,“低碳”要求我...2024-08-17
-
万家乐 太阳能热水器 控制面板出现E3故障代码,怎样维修?为什么出现这个故障的? 其它一切正常的。2024-08-17
-
焦化行业代码是什么2024-08-17
-
会计科目代码2024-08-17