`
vowtree
  • 浏览: 34603 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

SQL基础

    博客分类:
  • SQL
 
阅读更多

1. r 或者 / 可以运行SQL缓冲区的SQL命令或PL/SQL块

2. desc[ribe]   返回数据库中所存储的对象的描述

3. 有时候,如果突然想不起来某个列的名字,可以在下一行以“#”开头,先执行一个命令,执行完成后,再继续输入刚才的SQL语句。

如:   1  select *

         2  from

         3  #desc help;

         3  help  where  

4. sta[rt]命令和@命令不同,后者是用GET命令将文件读入SQL缓冲区后再执行,所以该文件不能有SQL*Plus的命令,只能有SQL语句、PL/SQL块,且SQL语句结尾不需要;最后一行只能有一个"/"

 

5.save将缓冲区的内容保存   如   save d:\1.sql

   ed[it]可以编辑sql文件

   get读取sql文件到缓冲区,再输入\执行

 

6.start 文件名[.sql] [arg1,arg2,arg3]  arg1替换占位符&1  类推   占位符必须命名为&1,&2

 

7.group by 对查询结果按指定列值,对记录进行分组,即该列值相等的记录为一组。通常会在每组中使用分组函数进行汇总、统计,每个组产生结果集中的一条记录。having 子句,在分组后的结果集中筛选出满足指定条件的组,组筛选

 

8.order by子句,对查询结果按指定列值排序   必须是最后一条子句 

 

9. 如果别名中包含大小写、空格、特殊字符 就需要用双引号将其括起来。

   where子句中使用数字值时,可以用单引号也可以不用单引号;使用字符串值、日期时必须使用单引号。并且大小写铭感

   字符串两边只能用单引号而不能用双引号。

 

10.  is not null     不为空

       where name in ('Jim','Jak');   离散值的范围

       between a  and  b      连续范围

 

11. 匹配字符串   %      表示0个或多个字符

                         _      表示任意1个字符

      转移字符      where first_name like '%\_A%' escape '\'    能查出ab_Ab

 

12. 使用case表达式,可以实现if-then-else结构的逻辑

select region_id,region_name,case region_id
       when 1 then '欧洲'
       when 2 then '美洲'
       when 3 then '亚洲'
       when 4 then '中东和非洲'
       ELSE '未定义'
 end 中文地区名
 from regions;

 

13. select 语句会按照向表插入行数据时的次序即伪列rowid的大小来显示查询结果集中的数据,并在查询结果集中的行顺序分配一个编号rownum

 

select rowid, rownum, FIRST_NAME, SALARY, HIRE_DATE 
from employees 
where salary between 11000 and 13000;
 

14. 分组函数只能出现在所查询的列、order by子句、having子句中,不能出现在where以及group by

     除了count(*)之外,其他分组函数,包括count(name)都会忽略值为NULL的行 

     如果所查询的列同时包含列、表达式和分组函数,那么这些列。表达式都必须出现在group by子句中。

 

select employee_id,count(job_id) 
from job_history 
group by employee_id having count(job_id)>1
order by employee_id;
 

 

select department_id,job_id,count(*),max(hire_date),min(hire_date)
from employees
where department_id<=50
group by department_id,job_id
order by department_id,job_id;

    在没有分组的情况下,如果在所查询的列中使用了分组函数,则不能在所查询的列中再使用列。

   where子句是在进行分组处理之前过滤数据行,而having子句则是在分组处理之后才过滤数据组。

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics