基本查询
select *|{[distinct] column|expression [alias],...}
from table;
别名中有没有双引号就在于别名中有没有特殊符号或者关键字。
sql中支持四则运算+、-、*、/
什么时null值?
空值是无效的,未指定的,或者不可预知的值,空值不是空格或者0.
包含null值的表达式永远为null,空值永元年不等于空值。
字符串连接使用 ||,或者contact()。
比较运算符
| 操作符 | 含义 |
| = | 等于(不是==),赋值使用:=符号 |
| > | 大于 |
| >= | 大于等于 |
| < | 小于 |
| <= | 小于等于 |
| <> | 不等于(也可以是!=) |
其他比较运算符
| 操作符 | 含义 |
| between...and... | 在两个值之间(包含边界) |
| in | 等于值列表中的一个 |
| like | 模糊查询 |
| is null | 空值 |
逻辑运算符
| 操作符 | 含义 |
| and | 逻辑与 |
| or | 逻辑或 |
| not | 逻辑非 |
between...and...不仅可以使用在数值之间,还可以使用在日期的区间。
select *|列名
from 表名
{where 查询条件}
order by 列名一 asc|desc,列名二 asc|desc;
order by要放在sql语句的最后执行。
排序时存在null值就会产生问题,我们可以用nulls first,nulls last来指定null显示的位置。
单行函数
dual是伪表。
函数可以没有输入参数,但是必须有返回值。
函数包括单行函数和多行函数。
单行函数包括字符,数值,日期,转换,通用函数。
字符函数:
大小写控制函数:lower,upper,initcap(首字符大写)
字符串控制函数:concat(字符串连接,建议使用||),substr('hello',1,3),length/lengthb,lpad/rpad,trim,
replace('hello','l','x')
数值函数:
四舍五入 round(45.926,2) 45.93
截断 trunc(45.926,2) 45.92
求余 mod(1600,300) 100
日期函数:
| 函数 | 描述 |
| mouths_between | 两个日期相差得月数 |
| adds_mouths | 向指定日期中加上若干月数 |
| next_day | 指定日期中的下一个日期 |
| last_day | 本月中的最后一天 |
| round | 日期四舍五入 |
| trunc | 日期截断 |
数据类型转换包括显式转换和隐式转换。
隐式转换
| 源数据类型 | 目标数据类型 |
| varchar2 or char | number |
| varchar2 or char | date |
| number | varchar2 |
| date | varchar2 |
隐式转换
转换函数:
对日期的转换
to_char(date,'format_model')
日期的格式
| 格式 | 说明 | 举例 |
| YYYY | Full year in numbers | 2011 |
| YEAR | 年的英文全称 | twenty eleven |
| MM | 月份两位数字 | 02 |
| MOUNTH | 月的全称 | 4月 |
| DY | 星期几 | 星期一 |
| DAY | full name of day of the week | 星期一 |
| DD | numeric day of the mounth | 02 |
对数字的转换
to_char(number,'format_model')
| 9 | 数字 |
| 0 | 0 |
| $ | 美元符 |
| L | 本地货币符号 |
| . | 小数点 |
| , | 千位符 |
什么是通用函数?
这些函数适用于任何数据类型,同时也适用于空值。
常用的通用函数,nvl(expr1,expr2),nvl2(expr1,expr2,expr3),nullif(expr1,expr2),coaleec(expr1,expr2,...exprn)
条件表达式
case表达式,sql99的语法,类似basic,比较繁琐
case expr when comparison1 then return_expr1
[when comparison2 then return_expr2
when comparisonn then return_exprn
else else_expr]
end
decode函数
decode (col|expression,search1,result1
[,search2,result2,...,]
[,default])
什么是多行函数?
分组函数作用与一组数据,并对一组数据返回一个值。也叫组函数,分组函数。
组函数会忽略空值,nvl函数使分组函数无法忽略空值。
count() 统计记录数
min()
max()
avg()
sum()
如果使用分组函数,sql只可以把group by分组字段和分组函数查询出来,不能有其他字段。
如果使用分组函数,不使用group by只可以查询出分组函数的值。
where 和having的区别:最大的区别:where后面不能有组函数。
oracle连接条件的类型
等值连接,不等值连接,外连接,自连接。
9万+

被折叠的 条评论
为什么被折叠?



