Oracel笔记第一天

sqlplus sys/sys as sysdba;

oracel 特点

  • 收费

  • 安全性高

  • 存储量大,处理快

  • 可移植型强

  • 检查当前用户环境编码
    select userenv(‘language’) from dual;

oracel 数据库中用户的角色

  • connect
  • resoucrce
  • dba

oracel体系结构

  • 1数据库–>多个实例(进程)
  • 2实例包含多个表空间和多个用户,用户和表空间是同级的
  • 3用户管理表

MySQL和Oracel的区别

mysql:一个用户–>多个库–>表
oracel:一个数据库–>多个用户–>表

oracel空间表的操作

创建表空间
create tablespace itheima10  -- 创建表空间
datafile 'c:\itheima10.dbf'  -- 表空间的物理文件地址
size 100m                    -- 表空间的默认物理大小
autoextend on                -- 自动扩展
next 10m;                    -- 每次扩展的大小

--删除表空间
drop tablespace itheima;


--创建用户
create user itheima10            -- 用户名
identified by itheima10          -- 密码
default tablespace itheima10;    -- 用户默认使用的表空间

--用户授权 
grant dba to itheima10;           --授权给用户

表结构

--创建表
create table person (id number,username varchar2(24),adderss varchar2(32)); --same

--修改表结构  
alter table 表名
add   modify  rename column...to....  drop column 


-- 删除表
drop table person;

数据类型

varchar2 number date clob blob

表数据的修改 注意事务的提交
insert update select delete

delete和truncate的区别
delete可以回滚,会产生碎片
truncate 直接删除表,然后再创建表

序列

  • 序列不属于任何一张表,逻辑上可以和表绑定,连续增长的数字,作用是生成和主键作用一样的
    序列第一次使用必须next ,打印的第一个值
    create sequence 序列名
    increment by n
    start with n

  • dual 虚标,为了补全语法

  • 解锁scott用户和密码
    alter user scott account unlock;
    alter user scott identified by tiger; 可以重置密码

函数

  • 单行函数:
    round trunc mod(m,n)

  • 数值函数
    sysdate months_between

  • 转化函数
    to_char to_date

  • 通用函数
    nvl(null,3)=3 nvl(4,5)=4

条件表达式

条件表达式
1
select e.ename
(case e.ename
when ‘tom’ then ‘刘德华’
when…then…
else…
end) 中文名
from emp e;
2
select e.sal,(
case
when e.sal>3000 then ‘high’
when e.sal>1500 then ‘mid’
else ‘low’
end

) “工资等级” from emp e;

查询

  • 分组查询
    1select * from 表 where 分组前条件 group by 分组条件 having 分组后条件;
    2分组查询出现在group by 后面的列,才能出现在select的后面

  • 聚合函数(多表函数)特点:把多行记录变成一个值

  • 所有的条件后面不能单独的使用别名(select后面的别名),因为select是在where的后面,having后面可以跟聚合函数的比较条件
    sql执行顺序:
    from where group by having select order by

  • 多表查询
    内连接:显式/等值(where),隐式(select * from table1 inner join table2)
    外连接:左外,右外

  • oracel的专用外连接
    (+)显示对面的所有数据

  • 子查询:把子查询的结果/结果集当作条件
    – where条件
    select * from emp e where e.sal>(select e.sal from emp e where e.ename = ‘ALLEN’)

    – select条件:只能有一个结果
    select e.*,(select d.dname from dept d where e.deptno = d.deptno) 部门名称 from emp e where e.ename = ‘ALLEN’

    – from 条件:返回多条记录的子查询可以把它的结果集当做一张表,给起个别名
    select msal,e.ename,d.dname
    from emp e,dept d,
    (select deptno,min(sal)msal from emp group by deptno) a
    where e.sal=msal and a.deptno=d.deptno;

  • 自连接:一个表的两个字段有关系,这个表可以当作两张表,但是必须使用别名。

  • rownum 称为伪列,是在where之前生成的,rownum则是在内存中当你查询结果集生成后追加到结果集上的一个列,这个列从1开始递增,当你过滤掉第一条数据时rownum的编号会继续从1开始排序,强调的是在你查询结果集经过过滤读入内存后追加在结果集上的列,只要有rownum就必须有rownum=1这个值。我们结合是用例子继续理解rownum

  • 任何时候想把 rownum = 1 这条记录抛弃是不对的,它在结果集中是不可或缺的。

分页的格式:

select * from
(select rownum r,e1.* from
(select * from emp e order by e.sal desc) e1) e2 where r>5 and r<11

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值