SQL 学习笔记之Select完整语法及执行过程详解
SELECT语句的完整语法为:
SELECT[ALL|DISTINCT|DISTINCTROW|TOP]
{*|talbe.*|[table.]field1[AS alias1][,[table.]field2[AS alias2][,…]]}
from tableexpression[,…][IN externaldatabase]
[WHERE…]
[GROUP BY…]
[HAVING…]
[ORDER BY…]
[WITH OWNERACCESS OPTION]
注意 Where,GroupBy,Having,OrderBy 顺序。
执行步骤
1)先从from字句一个表或多个表创建工作表
2)将where条件应用于1)的工作表,保留满足条件的行
3)GroupBy 将2)的结果分成多个组
4)Having 将条件应用于3)组合的条件过滤,只保留符合要求的组。
5)Order By对结果进行排序。
使用DISTINCT去除重复的信息
执行:
select * from student
返回结果
-stuName -stuno
Tom Sawyer 1
Andy Ke 2
Angelia Jolie 3
Celine Dion 4
alex 5
alex 6
执行:
select distinct stu_name from student
结果:
alex
Andy Ke
Angelia Jolie
Celine Dion
Tom Sawyer
即去掉了重复值,又对查询结果进行了排序。实际上DBMS的操作过程是先对查询结果排序在从结果中去除重复的
相关文档:
例子:找出每个歌手销量最高的3首歌
create table singer_info
(
id int primary key identity(1,1),
name varchar(20),
song varchar(20),
amount int
)
insert into singer_info values('jay','aaa',1000)
insert into singer_info values('jay','bbb',2000)
insert into singer_info values('jay','cc ......
软件是免费使用的,自己工作中也一直用,有很多功能想增加,由于时间原因没去整理需求。自从去年发布V1.0.0版后没有在发布了,本次主要是增加了解密Oracle10g加密对像的功能,另外做了一些小的优化,发上来与大家分享一下,因为是Beta版,所以也请大家谅解,如果在使用解密功能时遇到问题可以发E ......
熟悉SQL SERVER 2000的数据库管理员都知道,其DTS可以进行数据的导入导出,其实,我们也可以使用Transact-SQL语句进行导入导出操作。在Transact-SQL语句中,我们主要使用OpenDataSource函数、OPENROWSET 函数,关于函数的详细说明,请参考SQL联机帮助。利用下述方法,可以十分容易地实现SQL SERVER、ACCESS、EXC ......
1.打开SQL server enterprise mananger "企业管理器"
在你要导出的 SQL数据库上鼠标右键菜单:所有任务-》导出数据
2.回出现一个导出向导窗口。
选择被导出的数据源,为你刚才所选择的数据库,如果发现不对应自行修改。
3.进入导出到目标数据源的选择,这里我们要转成ACCESS的数据库。注意选择数据源类型为&ld ......
第一种方法:使用NVL函数处理NULL值。
其语法格式是NVL(exp1,exp2)。其中参数exp1和exp2可以使任意数据的类型,但两者数据类型必须匹配。示例:select ename,sal,comm,sal+nvl(comm,0) as salary from emp;
第二种方法:使用NVL2函数处理NULL值。
其语法格式是NVL2(exp1,exp2,exp3)。这是oracle9i新增加的函数。如果exp1 ......