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 ...