1 . group by 和 having字句:

2 . Order by 子句

3 . 聚集函数

4 . distinct 关键字

5 . as 关键字的使用

as 关键字用于取别名, 可以给表取别名, 也可以给列取别名, 可以被省略 . 但是有一点, 别名尽量使用双引号包裹, 如果别名中包含特殊字符就会出错 .

给列取别名有三种方式 : [ 推荐使用中间的 ]

select name as "姓名", age "年龄", sex 性别  --这里使用了三种取别名的方式, 推荐使用第二种
from users

给表取别名, 就使用第二种或者第三种都可以, 使用第三种时要保证别名中不包含特殊字符 .

SQL的优化:

Oracle数据库判空函数:

Oracle 数据库的 spool 语句:

Oracle 数据库中的 round, trunc 函数:

连接虚拟机中 xp系统中安装的 Oracle数据库步骤 :

解决sqlplus乱码问题的环境变量:

一日一句 SQL [持续更新] MySQL + Oracle-LMLPHP

Oracle 中的单行函数:

操作字符的函数 :

函数名作用例句备注
lower字符串转成小写eg: lower('MSYM')
输出: msym
使用单引号,而不是双引号
upper字符串转成大写eg: upper('msym')
输出: MSYM
使用单引号
initcap首字母大写eg: upper('msym hello')
输出: Mysm Hello
使用单引号,
是将每个单词的首字母都大写
substr取子串substr(str,startIndex)
eg: substr('msym', 2)
输出: sym
使用单引号,
开始的角标是 1
  substr(str, startIndex, count)
eg: substr('msym', 1, 2)
输出: ms
同上
length取字符串的字符数eg: length('码上猿梦')
输出: 4
英文的字节数和字符数是一样的,
但是中文的字节数是字符数的两倍,
中文 : 2字节=1字符
lengthb取字符串的字节数lengthb('码上猿梦')
输出: 8
 
instr查找子串在目的串中的开始位置instr(resStr, targetStr)
eg: instr('msym', 'ym')
输出: 3
输出的是角标, 从 1 开始
lpad左填充eg: lpad('msym', 10, '*')
输出: ******msym
 
rpad 右填充eg: rpad('msym', 10, '*')
输出: msym******
 
trim 去掉前后指定的字符eg: trim('m' from 'msym')
输出: sy
只是前后的字符, 中间的字符无法使用 trim去掉
replace替换字符eg: replace('msym', 'm', '*')
输出: *sy*
 
    
    
    
    
    

操作时间的函数 :

函数名作用例子备注
sysdate返回系统当前时间eg: sysdate
返回的包括 : 日-月-年
没有括号
months_between返回两个日期的相差月数eg: months_between(date1, date2)
返回date1和date2之间相差的月数
 
add_months向指定的日期中加上若干月数eg: add_months(sysdate, 51)
返回当前系统时间 51个月之后的日期
 
next_day返回指定日期的下一天的日期eg: next_day(sysdate)
返回的当前系统日期的下一天, 即明天
 
last_day返回本月的最后一天的日期格式eg: last_day(sysdate)
返回当前系统日期所在约在月份的最后一天的日期
 
round对日期进行四舍五入, 这里的四舍五入指的是:月份: 14舍, 15入,
         年份:四舍五入
eg: round(sysdate, 'month')
round(sysdate, 'year')
 
trunc对日期进行截断, eg: trunc(sysdate, 'month')
trunc(sysdate, 'year')
 
to_char格式化日期eg: to_char(sysdate, 'yyyy-mm-dd hh24:mi:ss')
返回当前时间, 如: 2013-09-01 13:45:23
 
    
05-22 23:09