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乱码问题的环境变量:
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 | |