【专家解说】:一、SELECT子名
SELECT select_list //指定由查询返回的列
[ INTO new_table ] //创建新表并将结果行从查询插入新表中
FROM table_source //指定从其中检索行的表或视图
[ WHERE search_co
ndition ] //指定限制返回行的搜索条件
[ GROUP BY group_by_ex
pression ] //指定查询结果的分组条件
[ HAVING search_co
ndition ] //指定组或聚合的搜索条件
[ 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 ] ex
pression ) / COUNT(*) FROM table_source
sum():对某一列的数值进行求和
SELECT SUM ([ ALL | DISTINCT ] ex
pression ) FROM table_source [ WHERE search_co
ndition ]
// ALL:默认值,对全部数据进行计算
// DISTINCT:可选值, 表示对去除重复记录后的数据进行计算
// ex
pression:进行求和的列或是列名组成的表达式
avg() :对某一列的数值进行求平均数
SELECT AVG( [ ALL | DISTINCT ] ex
pression ) FROM table_source [ WHERE search_co
ndition ]
min() : 找出某一列元素的最小值
SELECT MIN( ex
pression ) / MAX( ex
pression ) FROM table_source [ WHERE search_co
ndition ]
max() : 找出某一列元素的最大值
10、Group By子句
SELECT fieldnameList [ , func(fieldname1) [ AS alias][ , func(fieldname2)...]
FROM table_source
[ GROUP BY [ ALL ] ex
pression [ , .... n ]
[ WITH { CUBE | ROLLUP } ]]
// ALL : 该参数包含于选定列表中匹配的所有组合结果集,用户可以指定包含那些行都不满足WHERE子句指定的搜
索条件的组和结果集。如果用户指定了ALL,将对组中不满足搜索条件的汇总列返回空值
// ex
pression :该参数是对查询执行分组的表达式,ex
pression也称为分组列,可以是列或列的非聚集表达式。在选择
列表内定义的列的别名不能用于指定分组列。
// 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_ex
pression {=|<>|!=|>|>=|!>|<|<=|!<} {SOME / ANY}(subquery)
// SOME / ANY:指定进行比较
// subquery :包含某列结果集的子查询
定量比较运算符不支持取反操作,不能在SOME或ANY前加NOT,但可以使用不等号<>获取相同的查询结果。
13、带ALL的子查询
表达式的值与子查询结果中的所有值相比都必须满足比较运算符
SELECT fieldlist FROM table_source WHERE scalar_ex
pression {=|<>|!=|>|>=|!>|<|<=|!<} 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_co
ndition [ WHERE <search_condition> ]
16、外连接查询
外连接返回的是至少一个表中的所有行,只要这些行符合WHERE或HAVING搜索条件。
a) 左外连接:返回的结果集包含左表中的所有数据(符合WHERE或HAVING)及右表中的符合连接条件的数据,对于
左表中缺少的右表中的属性值用null表示。
SELECT fieldlist FROM tb_name1 LEFT [ OUTER ] JOIN tb_name2 ON join_co
ndition [ WHERE <search_condition>]
b)右外连接:返回的结果集包含右表中的所有数据(符合WHERE 或 HAVING)及左表中的符合连接条件的数据,对于
右表中缺少的左表中的属性值用null表示。
SELECT fieldlist FROM tb_name1 RIGHT [ OUTER ] JOIN tb_name2 ON join_co
ndition [ WHERE <search_condition>]
c)全外连接:返回的结果集包含左表与右表中所有符合WHERE或HAVING搜索条件的数据,对于缺少的左表或右表中的
属性值用null表示。
SELECT fieldlist FROM tb_name1 FULL [ OUTER ] JOIN tb_name2 ON join_co
ndition [ 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>=<ex
pression> [ , ... , <last column_name>=<las ex
pression>]
[WHERE <search_condition>]
四、DELETE语句
DELETE FROM <table_name> [ WHERE <search condition>]
进一步了解相关内容你可以在站内搜索以下相关问题
- sql server 2005 删除某表中的所有行,代码?
- sql server 2005 删除某表中的所有行,代码?
- microsoft sql server 2005 错误代码为17750是什么出问题
- java连接sqlserver2005的代码,还有增删改查的代码是什么
- sql server 2005 查看建表代码的存储过程是什么
- 求《sql server2005 实例教程》这本书中的所有的例子和习题的...
- asp.net2005的C#语句打开SQLSERVER2005的代码语句是什么
- sql server 2005 query中,如何设置显示代码的行数?
- MFC +SQL Server2005 数据库编程,如何向数据库中添加一条新...
- SQL SERVER 2005的代码能在SQL SERVER 2000运行吗?
- 在SQL Server2005中用代码编程时,如何设置代码的字体大小?
- 怎么用sql server 2005编写代码创建一个序列?
- 请问下 怎么在SQL server2005中用代码查询一个字段是否是允...
- 在vs2008 Web.config 连接 SqlServer2005,代码如何写?
- 我在用vs2005调试网页 SQL SERVER 2005的代码出错如下的...
- 跪求一个jsp+javabean连接sql server 2005的源代码~
- SqlServer 2005 利用代码修改数据库文件问题
- sql server 2005源代码在哪找
- jdbc连接sql server 2005数据库代码怎么写
进一步了解相关内容你可以在站内搜索以下相关关键词
sql server 2005 ms sql server 2005 sql server 2005 64 sql server 2005 32 sql server2005下载 sql server2005安装 sqlserver2005 32位 sql server2005官方