目录
1.Oracle用户
1.1 Oracle常用用户
(1)sys 超级用户:它是Oracle中的超级账户,权限最大
(2)system系统管理员:权限小于sys用户,一般用来创建用户
(3)scott用户:它是Oracle中的实例用户,提供学习oracle操作的数据表,例如emp,dept,scott用户在初始状态是锁住的,需要使用上面两个用户对其进行解锁
1.2 常用角色
connect --连接角色【赋予登录权限】(只读)
resource --开发者角色【只能访问和修改自己用户下的资源】
dba --管理员角色【数据库管理员,访问和修改所有用户下的所有对象】
1.3 用户的创建
示例:
2.表
2.1 表空间
Oracle中,用户创建和修改自己所属的表时,需要定义所使用的表空间,表空间内存放着所属用户的表的数据。这主要是用于区分不同用户的访问权限。
2.1.1 创建表空间
create tablespace xxx --(xxx)为表空间名
datafile ‘/data/oracle/oradata/orcl/xxx_space.dbf’ -- 定义数据文件
size 100m --表空间初始大小
autoextend on -- 自动增长,满时自增长
next 10m --每次增长的大小
2.1.2 删除表空间
drop tablespace xxx --(xxx)为表空间名
2.2 表
2.2.1 Oracle常用数据类型
varchar2 字符串类型
number 数值类型
date 日期类型
注:创建字段时不能直接设置自增长
插入日期类型的方式比较特别:
2.2.2 创建表
与mysql创建表类似,删除也是一样的
2.2.3 增删改查
与mysql类似,有一些小区别,需要手动提交事务
不写commit也可以点击plsql上面的提交事务
使用plsql修改表时,先用select,再点小锁标志
2.2.4 常见约束
3.Oracle函数
3.1 字符函数
3.1.1 拼接 concat(str1,str2) 或者str1||str2||...
concat只能使用两个参数,但||可以拼接多个
3.1.2 首字母大写 initcap
3.1.3 全部转大写/小写 upper/lower
3.1.4 去除字符串首尾空格trim
3.1.5 截取字符串substr(str,start[,length])
从1开始,不写length参数默认到结尾,如果超出也到结尾
3.1.6 替换字符串 replace(str_old,str_beReplaced,str_new)
3.2 数值函数
3.2.1 绝对值abs
3.2.2 向上取整 ceil
3.2.3 向下取整
3.2.4 四舍五入取整round
3.3 转换函数
1 数字转字符串 to_char(number)
2 日期转字符串to_char(date,’格式’)
3 字符串转日期 to_date(‘字符串’,’格式’)
4 字符串转数字 to_number(‘字符串’)
4.序列
4.1 创建序列
create sequence seq_test; --seq_test是序列名称
4.2 调用序列
select seq_test.nextval from dual; --序列名.nextval使序列指针指向下一个数字,并将该值返回出来
4.3 使用序列
create table test2(
tid number primary key,
tname varchar2(10)
);
insert into test values(seq_test.nextval,'zs');
5.存储过程和存储函数
5.1 存储过程
5.1.1 定义
实际上是封装在服务器上一段SQL代码片段
5.1.2 语法
create [or replace] procedure 存储过程名(参数名1 in 参数类型, 参数名2 in 参数类型)
is
--声明部分
begin
--业务逻辑
end;
5.1.3 示例
创建存储过程:
--给指定员工涨薪,并打印涨薪前和涨薪后的工资;备注:员工编号(vempno ) 涨多少(vnum )
create or replace procedure proc_updatesal(vempno in number,vnum in number)
is
vsal number; --声明临时变量,记录当前工资
begin
--查询当前的工资
select sal into vsal from emp where empno = vempno; -- 第一次赋值行为[sal赋给vsal]
--输出涨薪前的工资
dbms_output.put_line('涨薪前:'||vsal);
--更新工资
update emp set sal = vsal +vnum where empno = vempno; --第二次赋值行为
--输出涨薪后的工资
dbms_output.put_line('涨薪后'||(vsal+vnum));
-- 提交事务
commit;
end;
调用存储过程:
第一种方式:
第二种方式:
5.1.4 删除存储过程
5.2 存储函数
5.2.1 定义
实际上是封装在服务器上一段SQL代码片段,通过return返回函数值
5.2.2 语法
create [or replace] function 存储过程名(参数名1 in 参数类型[, 参数名n int 参数类型]) return 参数类型
is
--声明部分
begin
--业务逻辑
end;
5.2.3 示例
删除也用drop,不赘述