Oracle复习笔记

如果你不相信努力和时光,那么成果就会是第一个选择辜负你的。不要去否定你自己的过去,也不要用你的过去牵扯你现在的努力和对未来的展望。不是因为拥有希望你才去努力,而是去努力了,你才有可能看到希望的光芒。Oracle复习笔记,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

  • 利用sys管理员锁定账户
alter user scott account unlock
alter user scott account lock
  • 日期函数
-- 日期函数
select add_months(sysdate,2) from dual;
select months_between(sysdate,sysdate) from dual;
select last_day(sysdate) from dual;
select sysdate from dual;
select round(sysdate,'MONTH') from dual; --获取最近一月的第几个单元
select next_day(sysdate,'星期一') from dual;
select trunc(sysdate,'month') from dual;
  • 时区
select current_date from dual;
select dbtimezone from dual;
select sessiontimezone from dual;
  • 转换函数
-- 数字转字符串
select to_char(1234,'9999') from dual;
-- 字符串转数字
select to_number('1234','0000') from dual;
-- 时间转字符串
select to_char(sysdate,'yyyy-MM-dd HH:mm:SS') from dual;
-- 字符串转时间
select to_date('2020-12-21 04:12:27','yyyy-MM-dd hh:mm:ss') from dual;
  • 表聚合
    intersect,minus,union,union all
select * from scott.emp where deptno = 10
intersect
select * from scott.emp where deptno = 20;
  • 分页查询
select m.* from (select rownum,s.* from scott.emp s where rownum <= 10) m where m.rownum >= 2
  • DML(数据管理语言) -insert,update,delete
create table emp2 as select * from scott.emp
select * from emp2;

insert into emp2(ename,job) values('zhangsan','CLERK');

update emp2 set job = 'MAIHCE' where ename = 'zhansan';
  • 用户管理
create user liliming identified by 123;
alter user liliming identified by 123456;
drop user liliming cascade;
  • 权限管理
    1.系统权限 2.对象权限
select * from user_sys_privs 
grant create session,create table to liliming;
grant select,insert,update,delete on scott.emp to liliming;

revoke create session,create table from liliming;
revoke select,insert,update,delete on scott.emp from liliming;
  • 角色管理
grant CONNECT,RESOURCE to liliming;
revoke CONNECT,RESOURCE to liliming;
  • 数据的备份和恢复
-- 将scott用户的所有对象导出到D:\SCOTT.DMP文件中
exp scott/tiger buffer=64000 file=D:\SCOTT.DMP owner=scott

imp scott/tiger buffer=64000 file=D:\SCOTT.DMP fromuser=scott touser=scott
  • DDL
select * from emp3

alter table emp2 add count_avg number(20);
alter table emp2 modify count_avg varchar(10);
alter table emp2 rename column count_avg to sal_avg
alter table emp2 drop column sal_avg;
rename emp2 to emp3
  • 表的删除
-- 截断表:删除表中所有的数据行,重置表的存储空间
truncate table emp3
-- 彻底删除: 把表所有的行和表结构删除
drop table emp3 purge
create table emp3 as select * from scott.emp
select * from emp3
-- 注意:这里的delete后面没有加 *
delete from emp3 where deptno=20
  • 约束
-- 这里面的约束只有not null是列级的,其他的都是表级 + 列级的
create table my_tab (
       id number(10) primary key,
       name varchar(20) not null,
       age number(20) check (age > 10),
       id_card varchar(20) unique,
       emp_no number(10),
       constraint fk_id_dept foreign key(emp_no) references emp3(deptno)
)

-- 主键上不能加外键约束
alter table emp3 add constraint my_notnull not null ename;
alter table emp3 add constraint fk_my_mini foreign key(id) references emp3(id);
  • 序列
create sequence my_seq increment by 1 start with 1;
select my_seq.nextval from dual;
select my_seq.currval from dual;
  • 索引
-- 索引是提高查询性能的最常用手段
create index my_index on emp3(ename);
create bitmap index bit_my_index on emp3(ename);

视图

一个或多个基表上的预定义查询

使用视图优点:

  1. 数据独立: 降低数据库的复杂程度
  2. 安全:防止未经许可的用户访问敏感数据
    视图上不能建表
create or replace view my_view as select * from emp3
select * from my_view

同义词: 数据库对象的别名,方便数据库对象的访问

create synonym my_syn for scott.emp
select * from my_syn

三大范式

-- 1. 如果每列都是不可再分的最小单元,则满足第一范式
-- 2. 如果一个关系满足第一范式,并且除了主键以外的其他列都直接依赖于主键列,则满足第二范式
-- 3. 如果在满足第二范式的基础上,非主键列都不传递依赖于主键列,则满足第三范式

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/202507.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!