SQL语句示例

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])); 

(0)
上一篇 2022年3月21日
下一篇 2022年3月21日

相关推荐