oracle学习浓缩笔记

发布 2021-05-11 23:42:28 阅读 7180

set timing on;——打开显示操作时间的开关。

create user 用户名 identified by 密码 --创建用户。

alter user 用户名 identified by 新密码 --修改用户密码。

grant connect, resource, dba to 用户名1 [with admin option] -授权系统权限。

grant select on to xiaoming [with grant option] —授权用户权限。

revoke select on emp from xiaoming ——收回权限。

create table student (xh number(4), xm varchar2(20), sex char(2), birthday date, sal number(7,2));建表。

alter table student add (classid number(2));添加一个字段。

alter table student modify (xm varchar2(30));修改字段长度。

drop table student;——删除表。

insert into student values ('a001', 张三', 男', 01-5月-05', 10);

—插入数据。

insert into users (userid,uname,upassw) select * from users;——从自己复制。

alter session set nls_date_format ='yyyy-mm-dd';—修改日期格式。

update aaa set job=null where name='scott'

update aaa set job='clerk' where job is null;——修改字段,null处理。

delete from student;——删除数据。

drop table student;——删除表的数据及结构。

desc emp;——查看表结构。

select count (*from users;——统计行数。

select distinct deptno, job from emp;——distinct取消重复行。

select sal*13+nvl(comm, 0)*13 "年薪" ,ename, comm from emp;——nvl处理null

select ename,sal from emp where ename like '_o%';like操作符。

select * from emp where empno in (7844, 7839,123,456);—where … in()

select * from emp order by deptno, sal desc;——order by排序。

显示平均工资低于2000的部门号和它的平均工资?

select **g(sal), max(sal), deptno from emp group by deptno h**ing **g(sal) <2000;——分组函数的应用。

select from emp e, dept d where = order by 多表查询,order by中deptno也需要加上表名。

select '的上司是'||员工关系表" from emp a1,emp a2 where 自连接。

查询和部门10的工作相同的雇员的名字、岗位、工资、部门号。

select * from emp where job in (select distinct job from emp where deptno = 10);

显示高于自己部门平均工资的员工的信息

select emp.* from emp,(select **g(sal) asal,deptno from emp group by deptno) a1 where > and

—其中,平均工资必须取别名,否则后面比较时不能用分组函数,给查询的结果定义名字为a1

select * from (select a1.*,rownum rn from (select * from emp) a1 where rownum<=10) where rn >=6;

—分页查询。

create table mytable (id, name, sal, job, deptno) as select empno, ename, sal, job, deptno from emp;——用查询结果创建新表。

合并查询:union 并集,取消重复行。

union all 并集,不取消重复行,不排序。

intersect 交集。

minus 差集,第一个集合减去第二个集合。

select ename, sal, job from emp where sal >2500

minus

select ename, sal, job from emp where job = manager';

insert into emp values (9998, 'xiaohong', manager', 7782, to_date('1988-12-12', yyyy-mm-dd'),78.9, 55.33, 10);—to_date函数。

insert into kkk (myid, myname, mydept) select empno, ename, deptno from emp where deptno = 10; —直接把查询结果导入表中。

update emp set(job, sal, comm)=(select job, sal, comm from emp where ename='smith') where ename='scott';—直接用查询结果更新数据。

commit——提交事务。

字符函数:lower(char):将字符串转化为小写的格式。

upper(char):将字符串转化为大写的格式。

length(char):返回字符串的长度。

substr(char,m,n):m是指从第m个开始取, n代表取n个的意思,不是代表取到第n个

replace(char,search_string,replace_string) 用replace_string替换search_string显示(并不修改库里内容)。

instr(char1,char2,[,n[,m]])取子串在字符串的位置。

数学函数:round(n,[m]) 该函数用于执行四舍五入。

trunc(n,[m]) 该函数用于截取数字。

mod(m,n) 取余数。

floor(n) 返回小于或是等于n的最大整数(向下取整)

ceil(n) 返回大于或是等于n的最小整数 (向上取整)

日期函数:sysdate: 该函数返回系统时间

对于每个员工,显示其加入公司的天数。

sql> select floor(sysdate-hiredate) "入职天数",ename from emp;

add_months(d,n) 增加月份。

查找已经入职8个月多的员工

sql> select * from emp where sysdate>=add_months(hiredate,8);

last_day(d):返回指定日期所在月份的最后一天

找出各月倒数第3天受雇的所有员工。

sql> select hiredate,ename from emp where last_day(hiredate)-2=hiredate;

转换函数:to_char

yy:两位数字的年份 2004-->04

yyyy:四位数字的年份 2024年

mm:两位数字的月份 8月-->08

dd:两位数字的天 30号-->30

hh24: 8点-->20

hh12:8点-->08

mi、ss-->显示分钟\秒

9:显示数字,并忽略前面0

0:显示数字,如位数不足,则用0补齐

:在指定位置显示小数点

:在指定位置显示逗号

显示薪水的时候,把本地货币单位加在前面

sql>select ename,to_char(hiredate,'yyyy-mm-dd hh24:mi:ss'),to_char(sal,'l99,999.

99') from emp;

显示所有12月份入职的员工

sql> select * from emp where to_char(hiredate, 'mm')=12;

to_date

函数to_date用于将字符串转换成date类型的数据。

sql> select * from emp where hiredate=to_date('2015-01-04 18:20:46','yyyy-mm-dd hh24:

mi:ss');

导出。导出具体的分为:导出表,导出方案,导出数据库三种方式。

导出使用exp命令来完成的,该命令常用的选项有:

userid: 用于指定执行导出操作的用户名,口令,连接字符串

tables: 用于指定执行导出操作的表

owner: 用于指定执行导出操作的方案

full=y: 用于指定执行导出操作的数据库

inctype: 用于指定执行导出操作的增量类型

rows: 用于指定执行导出操作是否要导出表中的数据

file: 用于指定导出文件名

导出scott的表。

exp userid=system/manager@myoral tables=( file=d:\

ORACLE学习笔记

rac real application clusters 真实应用集群。ohs oracle http server sga system global area 系统全局区,是系统为实例分配的一组共享缓冲存储区,用于存放数据库数据和控制信息,以实现对数据库数据的管理和操作。实例 存取和控制数据数...

Oracle学习笔记

参数文件 记录了控制文件的位置,控制文件是一个非常小的二进制文件,最大。可以增长到 64mb,控制文件包括如下主要信息 数据库的名字,检查点信息,数据库创建的时间戳 所有的数据文件,联机日志文件,归档日志文件信息 备份信息等 有了这些信息,oracle 就知道那些文件是数据文件,现在的重做日志文件是...

ORACLE学习笔记

目录。oracla管理 1 1.登录sqlplus 1 1.1.sysdba 身份登陆 1 1.2.普通用户登陆sqlplus 1 2.常用命令 1 3.格式化提示符 2 4.查看系统状态 2 4.1.查看实例状态 2 4.2.查看表 2 5.关闭 启动 2 6.创建表空间 3 7.用户和权限 3 ...