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的操作过程是先对查询结果排序在从结果中去除重复的
相关文档:
1、PL
/SQL
Developer记住登陆密码
在使用PL
/SQL
Developer时,为了工作方便希望PL
/SQL
Developer记住登录Oracle的用户名和密码;
设置方法:PL
/SQL
Developer 7.1.4 ->tools->Preferences->Oracle->Logon History
, “Store history”是默认勾选的,勾上 ......
1.打开SQL server enterprise mananger "企业管理器"
在你要导出的 SQL数据库上鼠标右键菜单:所有任务-》导出数据
2.回出现一个导出向导窗口。
选择被导出的数据源,为你刚才所选择的数据库,如果发现不对应自行修改。
3.进入导出到目标数据源的选择,这里我们要转成ACCESS的数据库。注意选择数据源类型为&ld ......
SELECT EXECUTIONS , DISK_READS, BUFFER_GETS,
ROUND((BUFFER_GETS-DISK_READS)/BUFFER_GETS,2) Hit_radio,
ROUND(DISK_READS/EXECUTIONS,2) Reads_per_run,
SQL_TEXT
from V$SQLAREA
WHERE EXECUTIONS>0
AND BUFFER_GETS > 0
AND (BUFFER_GETS-DISK_READS)/BUFFER_GETS ......
1 当使用group by时,未在group by 部分用到的表列在s e l e c t部分出现时必须使用分组函数。
select last_name, state_cd, sum(sales) from customer group by last_name;
ERROR at line 1:
ORA-00979: not a GROUP BY expression.
state_cd应该使用分组函数,m a x ( )、m i n ( )、s u m ( )、c o u n t ( )或a v g ......