当前位置: 首页 > 图文教程 > 数据库 > MSSQL > SQL语句示例

MSSQL
精细讲述SQL Server数据库备份多种方法
让SQL Server也能使用2G以上内存
SQL Server数据库崩溃恢复之法
创建区分大小写的SQL Server 2000实例
SQL Server中易混淆的数据类型
如何优化SQL Server数据库查询
使用Robot连接SQL的例子
如何让你的SQL运行得更快
对Sql Server中的表添加级联更新和级联删除
常用SQL语句书写技巧
SQL Server与Oracle实施成本上的差异
解析SQL Server的数据类型 BLOB
SQL Server数据库和XML标识语言的集成
SQLServer 数据库还原和孤立用户的解决办法
SQL Server 2000/2005 分页SQL
Sql Server锁表
SQLServer2005实现远程数据库备份
SQL精妙语句
SQL Server 2008的逻辑查询处理步骤
如何让你的SQL运行得更快

MSSQL 中的 SQL语句示例


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 40 ::
收藏到网摘: n/a

SQL的意思是结构化查询语言,其主要功能是同各种数据库建立联系,进行沟通.查询指的是对存储于SQL的数据的请求。查询要完成的任务是:将 Select 语句的结果集提供给用户。Select 语句从 SQL 中检索出数据,然后以一个或多个结果集的形式将其返回给用户。
==========================================================
Select 基本语法结构
==========================================================
Select[predicate]{*|table.*|[table.]]field [,[table.]field2[,...]}
[AS alias1 [,alias2[,...]]]
[INTO new_table_name]
FROM tableexpression [, ...]
[Where...]
[GROUP BY...]
[ORDER BY...][ASC | DESC] ]
predicate-->指定返回记录(行)的数量,可选:ALL,TOP
* --------->指定表中所有字段(列).
table ----->指定表的名称.
field ----->指定表中字段(列)的名称
[AS alias] -替代表中实际字段(列)名称的化名.
[INTO new_table_name]-->创建新表及名称.
tableexpression---->表的名称.
[GROUP BY...]表示以该字段的值分组
[ORDER BY...]表示按升序排列,降序选 DESC;
------------------------------------------------------------
1 选择列
------------------------------------------------------------
sql语句在access中的输入方法
(1)选择"查询"-->新建-->默认设计视图-->点击确定
(2)关闭"显示表对话框"
(3)在菜单拦选择"视图"--->SQL视图 ,就可以输入SQL语句了

示例1_1_选择所有字段
Select *
FROM useres;
示例1_2_选择部分字段
Select user_name,real_name,submit_date
FROM useres;
示例1_3查询两个表中的字段
Select 图书信息表.图书条码, 借书信息表.图书条码
FROM 图书信息表, 借书信息表;
示例解读:
通过上面简单示例我们体会到
(1) Select 子句选择列表,它指出查询结果集所包含的字段(列)及其属性,选择所有列时用通配府*,选择部分列时要用逗号隔开
(2) FROM 子句指出查询的表名,要指定多个表时中间用逗号隔开
------------------------------------------------------------
2 TOP指定返回记录数量
------------------------------------------------------------
示例1_4_返回记录数量
Select TOP 3 *
FROM useres;
-------------------------------------------------------------
3 AS派生新字段
-------------------------------------------------------------
示例1_5_派生新字段
Select user_name,(submit_date+30) AS new_date
FROM useres;
------------------------------------------------------------
4 Where指定条件进行筛选
------------------------------------------------------------
示例1_6等号查找指定记录
Select *
FROM useres
Where useres.real_name="红红";
示例1_7年龄大于30的人
Select *
FROM useres
Where age>30
从上面可以看出,在根据条件进行筛选时,要用到运算符,常见的运算符如下所示:
1 比较运算符
= 等于
<> 不等于
> 大于
< 小于
<= 小于等于
>= 大于等于
2 逻辑运算符
ALL 所有条件都为true则返回true
AND 两个条件都为true则返回true
OR 有一个条件为true则返回true
NOT 对值取反
ANY 所有条件中只要有一个为true则返回true
BETWEEN 只要操作数在指定的范围内,则返回true
IN 只要操作数等于表达式中的一个,则返回true
LIKE 如果操作数与模式相匹配,则返回true
SOME 在一系列的比较中,有些为true则返回true
示例1_8_某日以前注册用户
Select *
FROM useres
Where submit_date<#2004-12-30#
示例1_9_某时间段注册用户
Select *
FROM useres
Where submit_date BETWEEN #2004-1-1# AND #2005-5-1#
示例1_10_按关键字查找
Select *
FROM useres
Where useres.real_name LIKE "*李*"
------------------
IN与OR的区别
-----------------
示例_IN筛选字段中的记录
Select real_name,submit_date
FROM useres
Where real_name In("小李","小张")
示例_OR筛选字段中的记录
Select real_name,submit_date
FROM useres
Where real_name="小李" or real_name="小张"
------------------------------------------------------------
5 GROUP BY分组结果集
------------------------------------------------------------
示例1_12_GROUPBY分组结果集
Select sex, SUM(age) AS age之SUM
FROM useres
GROUP BY useres.sex
ORDER BY SUM(age) DESC;
示例解读:
按字段"sex"下的记录对新"字段"age之SUM"进行分组.
ORDER BY...DESC用来指定按降序排列
本例中的sum为SQL中的聚合函数(对一组值进行操作,返回单一的汇总值),下面是常用的几个聚合函数:
1 SUM 求总和函数
格式:
SUM([ALL|DISTINCT] expression)
参数:
ALL 对所有值求总和,默认为ALL
DISTINCT 求总和时排除重复项
expression 值或表达式,可以是变量,字段,函数等
2 AVG 求平均值函数
格式:
AVG([ALL|DISTINCT] expression)
参数:
ALL 对所有值求平均,默认为ALL
DISTINCT 求平均时排除重复项
expression 值或表达式,可以是变量,字段,函数等
3 MIN和MAX函数分别为求最小值和最大值,格式和上面类似.
4 COUNT 行计数函数
格式:
COUNT({[ALL|DISTINCT] expression|*})
ALL 表示计算除了NULL以外的其他项,为默认选项
DISTINCT 表示COUNT返回唯一非空值的数量
expression 为表达式,不能是txte,image,ntxt和uniqueidentifier类型的数据.
示例1_13_AVG求平均值函数
Select sex, AVG(age) AS age之AVG
FROM useres
GROUP BY useres.sex
ORDER BY AVG(age) DESC;
示例1_14_COUNT返回记录数量
Select COUNT(*)
FROM useres
示例1_15_按性别分组记录数量
Select sex, COUNT(*)
FROM useres
GROUP BY sex;
------------------------------------------------------------
6 DISTINCT从尾部除去重复记录
------------------------------------------------------------
Select DISTINCT real_name
FROM useres
------------------------------------------------------------
7 组合查询
------------------------------------------------------------
当需要从多个表中查询时,可以使用组合查询
Select useres.real_name, logtime.log_time
FROM useres, logtime
Where (((useres.real_name)=[logtime].[real_name]));