一.数据类型
1.字符型
- char(2):定长的字符型数据
- varchar2(10):变长的字符型数据
- varchar和varchar2的区别:
(1) varchar2把所有字符都占两字节处理(一般情况下),varchar只对汉字和全角等字符占两字节,数字,英文字符等都是一个字节;
(2)VARCHAR2把空串等同于null处理,而varchar仍按照空串处理; - varchar2是Oracle特有的,大部分情况下都建议使用varchar2
2.数值型
- number(3):不带小数点的数值
- number(8,2):数据总长度是8位,小数点后是2位
3.日期型
二.基本使用
create tablespace aabb
datefile 'c:\aabb.dbf'
size 100m
autoextend on
next 10m
create user oneuser
identified 1234
default tablespace aabb
- 不区分大小写,包括登录的用户名和密码都是不区分大小写的
- 查询过程中,数值型数据可以执行加减乘除运算
- 给查询字段起别名时,可以用"",也可以不用,可以用as,也可以不用
select id "编号",name 姓名,sal "月薪",sal*12 as "年薪" from emp;
- 算术表达式中出现null,那得到的结果就是null,在运算中不会将null当做0进行运算
- 使用
||
可以将两列或多列查询结果拼接到一起
select id,name||sal from emp;
select name || '的工资是' || sal ;
- 当连接表达式中出现null时,就是原来的字符型数据
- 任何类型的数据都可以为null
- 别名强制大小写要加双引号
""
select NAME "name" from emp;
- 日期型的数据可以使用 ± 运算
(1)一个日期加/减一个数值(就是天数),得到一个新的日期
(2)两个日期相减,得到的是两者之间相差的天数
(3)日期型数据不能进行加/乘/除运算 - 去除重复数据:
DISTINCT
- 字符型数据必须使用单引号,并且字符型数据是区分大小写的
select id,name from emp where name = 'Smith';
- 对于日期型的数据要使用单引号
- 日期型数据格式是敏感的,必须是日-月-年(dd–mm–yyyy)
select id,name,date from emp where date = '09-12月-2000';
- 模糊查询:%为任意多个字符,_为一个字符
- 模糊查询时可以使用转义符,例如查询名字中带有%的人
select id,name from emp where name like '%/%%' escape '/';
- 优先级规则
(1)所有的比较运算符
(2)not
(3)and
(4)or
三.小结
- 在sql语句方面和mysql有很多重合部分,仅仅是语法上的小差别
- oracle在安全方面更加严格
- null在oracle中是一个很特别的存在