oracle学习笔记--常用数据类型及函数

文本二进制类型
1,char(size)
存放字符串,,最大2000字符,是定长
select name,dump(name) from tableName;(查看表的详细信息)
2,varchar2(size) 定长,最大4000个
3,nchar(size)定长,unicode编码
一个汉字占用char类型的2个字节,占用nchar()类型的1个字节
4,nvarchar()
变长,编码方式unicode 最大4000个字符
5,clob(字符型大对象)最大8tb 1tb=1024G
6,blob 二进制数据(图像,视频,声音),最大8tb
数据类型
number 可存放小数,也可存放整数
number(p,s) p为整数,s为小数p的范围1--38,s的范围-84--127
保存数据范围 -1.0e-130《=numberValue《1.0e+126;范围非常之大
举例:number(5,2)一个小数有5个有效数,2个小数
number(5)表示一个5位整数
时间类型
date 用于表示时间类型
格式:dd-mm-yyyy
原则:如果在实际的开发中,我们有明确的要求保留到小数点第几位,则明确指定,如果没有则直接使用number类型

表的管理
1:添加列:alter table tableName add(字段名 + 字段类型)
2 :更新列: alter table tableName modify(l列名+列类型)(修改字段类型)
3:删除列: alter table tableName drop column
给表修改名字;rename oldName to newName;
删除表:drop table tableName;

表的CRUD(create,retrieve,update,delete)操作
insert into tableName (列名),,, values (,,,);
update tableName set columnName=表达式 where 条件(没有where表示更新所有行)
deete  from tableName where 条件(没有 where删除表中所有数据)可回滚(savepoint aa;delete from tableName;rollback to aa;)
trancate table tableName 删除表中多有记录(表结构还在)速度快,不可回滚
select 基本语法
select (distinct) * |{ column1,column2,column3} from tableName [where {条件}]
查询指定列:select column1,column2 from table;
select ename ,sal +nvl(0,comm) as nianxin from emp;
取消重复行:select distinct column1,column2 from tableName;重复行:返回的书库完全一样
oracle 的sql语句不分大小写,但是where 条件里面的内容是区分大小写的。
使用数学表达式:
nvl 函数:nvl(0,comm) 如果comm为空,则返回0;
|| :把多列拼接起来作为一列返回,(链接符) 用法:select ename || "is a" || job from emp;
删除用户同时保留它的数据对象该如何处理??
1) 锁定该用户:alter user userName account lock
2》锁定后该用户不能登录到数据库,但是system用户仍然可以使用它的数据对象
3》解锁用户:alter user userName account unlock;
查询。。。年之后入职的员工     select * from emp where to_char(hireDate,'yyyy-mm-dd')>'1998-1-1';
查询1980年入职的员工: select * from emp where to_char(hiredate,'yyyy') ='1980';
显示工资2000到2500的员工:select * from emp where sal>=2000 and sal<=3000; select * from emp where sal between 2000 and 2500

使用 like进行 模糊查询
% 表示:0到多个值
- 表示: 一个任意值
查询名字首字母为S的员工姓名与工资: select ename,sal from emp where ename like'S%';
显示第三个字符为O的员工姓名与工资: select ename ,sal from emp where ename like '两个下划线O%';

where条件中使用in
如何显示雇员编号为123,345,800的员工信息:select * from emp where epmno in (123,345,800);

is null 的用法
查询没有上级的员工
select * from emp where mgr is null;

使用逻辑操作运算符
查询工资大于500或是岗位为manager 的雇员,同时还要满足他们的名字单词首字母为大写J;
select * from emp where (sal>500 or job='manager') and ename like 'j%';

order by (对结果进行排序)asc:升序:(默认的) desc 降序
工资 由低高显示雇员:select * from emp order by sal;
按照部门编号升序,雇员入职时间降序排列
select * from emp order by empno ,hiredate desc;
使用列的别名排序
查询雇员的年薪,并按照年薪由高到低排序
select ename ,sal*12 +nvl(0,comm) as nianxin from emp order by nianxin    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值