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的操作过程是先对查询结果排序在从结果中去除重复的
相关文档:
在很多的资料中都描述说SQLSERVER的存储过程较普通的SQL语句有以下优点:
1. 存储过程只在创造时进行编译即可,以后每次执行存储过程都不需再重新编译,而我们通常使用的SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。
2. &nbs ......
--创建写文件的存储过程
ALTER proc [dbo].[p_movefile]
@filename varchar(1000),--要操作的文本文件名
@text varchar(8000), --要写入的内容
@obj int
as
begin
declare @err int,
@src varchar(255),
&n ......
declare @tablename varchar(20)
select @tablename = 'o_ems'
-------------生成变量,使用表格形式(ctrl + D)输出,取第一个字段的值----------------------------------
select 'private '+
Case when t.name='varchar' Then 'string'
when t.name='char' Then 'string' &nb ......
本文介绍了SQL Server 2005中少数人用到的两条精品新语法,大家看看自己是否知道呢……
1. OUTPUT ... INTO
用于将一条记录从表一移动到表二时非常好用,常见于备份记录的应用
例一:
DELETE [TableUseing]
OUTPUT *
INTO [TableBak]
例二:(用于移动时修 ......