Oralce梳理---爱了嘛

--一、入门
开服务:OracleServiceOrcl  ...listener
数据库文件:数据文件(.dbf) 日志文件(.log) 控制文件(.ctl)
数据类型:数值型(number(p,s)) 字符型(varchar2 超过4000个字节 用long) 日期型(date)
创建表空间:create tablespace 名字 datafile '' size 50M
创建用户:create user 用户名 identified by 密码
授权/撤销:grant...to/revoke ... from

--二、数据管理
Oracle的伪列:rowid rownum
--求薪水前三的员工信息 top×  先排序 后编号
select b.*,rownum from(
       select * from emp order by sal desc
) b where rownum<4
--分页代码 把伪列-->明列(取个别名)
select * from(
       select a.*,rownum as rid from emp a
) b where b.rid between ? and ?
--万能公式 pageIndex:第几页   pageSize:每页多少条数据
--(pageIndex-1)*pageSize+1------pageIndex*pageSize

Oracle的伪表:dual 为了防止sql语句报错 
--Oracle跟sqlserver的区别
拼接:||
nvl(a,b):a为空就用b替代
取别名:列取别名(空格、as) 表取别名(空格) 
多行插入:
insert into 表名(列名,列名)
select 数据,数据 from dual
union
select 数据,数据 from dual
去重复:distinct
判空:is null/is not null

复制表:create table 表名 as select * from 要复制的表
利用现有表插入数据:insert into 表名(列名) select 列名 from 表名
--三、内置函数
1.转换:to_char/to_number/to_date  yyyy-mm-dd hh24:mi:ss
2.日期:sysdate/systimestamp/add_months/months_between/last_day/next_day/extract(xx from date)/round/trunc
3.字符串:length/substr/replace/concat/decode/ltrim/rtrim/upper/lower/initcap/ascii/chr/instr/lpad/rpad
4.数学:abs() sqrt() mod() power() ceil() floor() round() trunc() sign()
--四、PL/SQL编程&函数
--PL/SQL编程的语法
declare
--声明部分 变量名 数据类型;
begin
  --可执行部分 不可省略
  属性类型:表名.列名%type   表名%rowtype
  赋值: := /  select ...into 
  打印:dbms_output.put_line();
  循环:<<名字>>loop..exit 名字 when 条件.end loop;
        while(条件) loop .....end loop;
        for 变量 in 值..值 loop....end loop;
  条件:if(条件) then elsif(条件) then .. else  end if;

        case....end case; &:输入器
  --异常处理部分
  exception when 异常 then 怎么处理
  系统自带:too_many_rows / no_data_found
  自定义异常:声明 抛出raise 处理
end;
--函数的语法
--参数和返回都不能带长度 必须要有返回
create or replace function 函数名(参数)
return 你要返回的数据类型
is|as
begin
  return 对应类型的数据;
end;
--函数如何调用? 
select 函数名(参数) from dual;
begin
  dbms_output.put_line(函数名(参数));
end;

--五、数据库对象
同义词:synonym 给现有的对象取个别名
create synonym 别名 for 谁.对象
序列:
create sequence 名字;--默认序列 递增1 从1开始
[start with 1]
[increment by 2]
[maxvalue 100]
[minvalue 1]
伪列:currval[当前值]/nextval[下一个值]
视图:是一张虚拟的表
create view 视图名 as 一段查询的sql语句 with read only;
优点:方便使用者 提高了安全性

索引:编排数据的一种方式 index
create index 索引名 on 表(列);
优点:提高了查询效率
适合创建在用户查询较为频繁的列
不适合创建在值少、不怎么查询的列、数据就很少

--六、触发器
概念:是一种特殊的存储过程(只能自动执行 由特定事件触发)
2223: 2个时间点(after/before)
      2个临时表(:new/:old)
      2种模式(行级for each row/语句级)
      3种操作(insert/delete/update)
注意:临时表的字段一定是跟触发器所在的表或视图一致的
语法:
create or replace trigger 触发器名字
after/before 操作(or)
on 表名/视图名
for each row--行级
PL/SQL编程

级联触发:会用且慎用
事务:rollback[回滚];commit[提交];savepoint[保存点];

drop table stumarks;

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

瑶大头*^_^*

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值