oracle数据库应用

1.分页 查询雇员表中第4-6条记录 每页显示3条记录
select * from
(
select temp.*,rownum rn from
(
select emp.* from emp order by sal desc
) temp where rownum<=6
)
where rn>=4

select * from
(
select temp.*,rownum rn from
(
select emp.* from emp order by sal desc
) temp
)
where rn BETWEEN 4 and 6

select * FROM
(
select EMP.*,row_number() over(order by empno) as myid from emp
) temp
where myid BETWEEN 4 and 6
2.解锁用户
alter user hr account unlock
3.表空间
概念:是逻辑上的一个单元,一个DB可以有1个或者多个表空间,一个表空间下有1张或者多张表
创建表的同时指定表空间
create table xxxx
()
tablespace 表空间名字
表空间分类:永久性 临时 撤销表空间

默认table使用的表空间是users表空间,users是永久表空间

4.SQL操作符
集合操作符
1.联合操作符 union union all
2.交集 intersect A结果集 1 10 20 30 40 B结果集 10 20 30 结果10 20 30
3.减集 minus

5.函数 字符串,lower() upper() initcap()
字符串处理函数 concat('A','B')
substr('好人一生平安',2) 从1开始数

6.创建学生的备份表
create table studentbak
as
select * from student
7.用户A去访问用户B的表
方案一:直接授权法
使用B登录,给A授权

方案二:自定义角色,角色和权限绑定,授予用户角色

8.删除重复记录 保留其他列相同信息记录最大编号者。
delete from emp where empno not in
(
select max(empno) from emp group by stuname,stuage
)

1.函数
单行函数
--字符函数 伪表
select substr('Springboot Springcloud SpringMvc',2,9) from dual;
select length('好人') from dual;

select lengthb('好人') from dual;

select userenv('language') from dual;

select instr('Springboot Springcloud SpringMvc','ing') from dual;

select instr('Springboot Springcloud SpringMvc','ing',3,2) from dual;--15

select instr('Springboot Springcloud hehe','ing',-3,2) from dual; --4

select rpad('Happy',10,'*') from dual;

select trim(' A BC ') from dual;

select trim('a' from 'ahappyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa') from dual;
日期函数:

select floor("MONTHS_BETWEEN"(SYSDATE, "TO_DATE"('1998-01-01', 'yyyy-MM-dd'))) from dual;

SELECT floor(SYSDATE-"TO_DATE"('1998-01-01', 'yyyy-MM-dd')) from dual;

select "ADD_MONTHS"(SYSDATE, 1) from dual;


select sysdate from dual;

select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;
select to_char(sal,'L9,999.99') from emp;

select round('12.45',1) from dual;

--nvl和nvl2 滤空函数

select sal*12 工资,comm 奖金,sal*12+nvl(comm,0) from emp;
select sal, sal+NVL2(COMm,comm*2,0) from emp;

--decode
select ename,decode(deptno,10,'开发部',20,'测试部',30,'财务部','保洁部') from EMP

分组函数 sum() count() avg() max() min()
分析函数

2.表空间
首先用system登录,对用户授权
grant create,drop tablespace to HAPPYY2165

create tablespace y2165tabspace
datafile 'E:\app\Happy\oradata\orcl\y2165tabspace_1.dbf' size 10m,
'E:\app\Happy\oradata\orcl\y2165tabspace_2.dbf' size 10m
autoextend on next 32m maxsize unlimited


select tablespace_name from user_tablespaces; 

--删除表空间
drop tablespace y2165tabspace2
--删除表空间的同时清除物理文件
drop tablespace y2165tabspace including contents and datafiles
3.序列
序列和表是平级的。
create tablespace y2165tabspace
datafile 'E:\app\Happy\oradata\orcl\y2165tabspace_1.dbf' size 10m
autoextend on next 32m maxsize unlimited
--Oracle没有自增列 ,用的就是序列
create table dept
(
deptno number primary key not null,
deptname nvarchar2(32)
) tablespace y2165tabspace


create table emp
(
empno number primary key not null,
empname nvarchar2(32)
) tablespace y2165tabspace

insert into dept values(1,'开发部')
commit
select * from dept

insert into emp values(1,'微冷的雨')
insert into emp values(seq_num.nextval,'微冷的雨')
commit
select * from emp

insert into dept values(seq_num.nextval,'开发部')

select seq_num.nextval from dual;

--当前序列中存储的值是多少
select seq_num.currval from dual;
--GUID和UUID

select SYS_GUID() from dual;

posted @ 2017-09-18 09:19  易烊千鹿  阅读(144)  评论(0编辑  收藏  举报