Oracle学习笔记

发布 2021-05-11 23:08:28 阅读 8979

我的计算机上oracle的。

服务器名:wang

用户名:scott

密码:123456 (tiger较多)

在cmd上打开oracle客户端的命令:sqlplus

在浏览器上打开oracle的ip地址:

本机ip:127.0.0.1)(5560是oracle的默认端口号)

以管理员身份登录 : sqlplus sys/123456 as sysdba

管理员身份登陆后可更改(解锁)用户:

alter user scott account unlock;(注意有分号)

sql语言(结构化查询语言(structured query language)):

1、查询语句:select语句。

2、dml(数据操作语句)语句:

3、ddl(数据定义语句)语句:

4、事物控制语句:

注:0不同于空值,任何含有空值的运算表达式其结果为空值)

清屏指令:host cls

1、select语句:(注:语句后要有分号)

1)熟悉oracle数据库scott用户自带的表。

(1)desc emp(雇员)

注:empno雇员编号 ename雇员姓名 job雇员工作 mgr雇员的经理人 hiredate入职时间 sal工资 comm津贴 deptno所属部门编号)

注:number(7,2)代表7位数2位为小数)

(2)desc dept(部门表)

注:depyno部门编号 dname部门名称 loc部门地址)

(3)desc salgrade(薪水等级)

(4)desc dual(空表)(oracle自带空表)

2)select 列名/运算函数/别名 from 表名;

从这张表中取出代表所有例: select * from xx)

例:select * from salgrade;

3)select enamel,sal*2 from emp;

不同列名用逗号分开;(注:此时*代表乘法)

4)select 3*2 from dept;

select后可以直接是运算语句。

此时会有重复,用select 3*2 from dual;(灵活运用空表)

5)select 关键字 from 表名;

select后可跟关键字如:select sysdate from dual;(系统时间)

6)select enamel,sal*12 “anuuna sal”from emp;

为sal*12 取别名 (sal*12与别名中间没有逗号,用空格分离)加上双引号则保存双引号中的形式,不加双引号则不保存格式但是不能有特殊字符(如,空格等)。

select enamel,sal*12 anuuna_sal from emp;

列名自动换为大写)(注意此时anuuna_sal中间不能有空格)

7)select enamel||sal from emp;

|为字符串连接符(相当于j**a中的+号)

select enamel||’xxxxx’ from emp;

与字符串连接用单引号;字符串中有单引号用两个单引号代替单引号(注意不是一个双引号);

8)select distinct deptno,job from emp;

distinct关键字,消除其后面组合(deptno,job)中重复的内容。

9)select * from emp where deptno=10 ;

where关键字,筛选条件的语句。

where后面可以是等式也可以是不等式大于小于不等于。

不等于用<>表示)

把deptno等于10的显示出来)

select * from emp where ename=’clark’;

字符串要加单引号,单引号内要注意大小写)

select * from emp where sal between 800 and 1500;

between,,and,,关键字,在两者之间(包括两者)

相当于where sal >=800 and sal <=1500;

and关键字,连接条件;

10)空值的处理。

select ename,sal,comm from emp where comm is null;

comm是空值的取出来。

comm不是空值的取出来:

select ename,sal,comm from emp where comm is not null;

11)in语句。

select ename,sal,comm from emp where sal in(800,1500,2000);

sal是800的或1500的或2000的取出来。

12)日期的处理。

select ename,sal,hiredate from emp where hiredate >‘20-2月-81’;(入职时间在81年2月20日之后)单引号把日期的特有格式引起来。

13)and,or,not

and:连接条件;or:或者;not取反。

例:select ename,sal,comm from emp where sal not in(800,1500,2000);

14)模糊查询 like

select ename from emp where ename like ‘%all%’;

在ename中只要有all就取出来(%代表任意多个),;

select ename from emp where ename like ‘_a%’;

_’下划线代表一个字母,把a之前有一个字母的ename取出来;

select ename from emp where ename like ‘%

反斜杠代表默认转义字符,把包含%的ename取出来;

select ename from emp where ename like ‘%escape &;

escape代表制定转义字符;

15)order by 排序。

select * from dept order by deptno desc;

desc降序排序(默认是asc升序);

select * from dept where deptno <>10 order by deptno desc;

先筛选在排序。

select ename,sal,deptno from emp order by deptno asc,sal asc; deptno先排序,有相等的情况下在sal排序;

16)sql function 函数单行函数。

select lower(ename) from emp;将ename转换成小写取出;

select substr(ename,2, 3) from emp;从第二个字符开始截取3个字符;

select chr(65) from dual;将数字转换成对应的字符。

select ascii(‘a’) from dual;将字符转换成对应的数字;

select round(25.66) from dual;四舍五入。

select round(25.66666, 2) from dual;四舍五入到小数点后2位;还可以是负数,如-2,四舍五入到十位;

select to_char(sal ,‘99,999.9999’) from emp;

将sal转换成特定格式输出;

select to_char(sal ,‘l99,999.9999’) from emp;

l:本地货币,select to_char(sal ,‘l00000.0000’) from emp;

重要:select to_char(hiredate ,‘yyyy-mm-dd hh:mi:

ss’) from emp;把时间按指定格式输出;(hh是12进制时间,hh24是24进制时间)

select to_char(sysdate,‘yyyy-mm-dd hh24:mi:ss’) from emp;

select ename, hiredate from emp where hiredate>to_date(‘1981—2-20 12:34:56’ ,yyyy-mm-dd hh24:

mi:ss’)

to_date()函数,把字符串转换成日期格式。

select ename, sal from emp where sal>to_number(‘¥1,250.00’,‘9,999.99’);

to_number()函数把字符串按指定格式转换成数字;

select ename, sal*12+nvl(comm,0) from emp;

nvl()函数,comm若为null 则当成0看,若不为null,则用cumm自己的值(注:0不同于空值,任何含有空值的运算表达式其结果为空值);

select ename, sal*12+ comm from emp;(没用nvl函数)

17)sql function 函数多行函数。

好多条数据组合成一条输出;

select max(sal) from emp;

select min(sal) from emp;

select **g(sal) from emp;

select to_char(**g(sal),‘999999.99’) from emp;

select round(**g(sal),4) from emp;

select sum(sal) from emp;

select count(*)from emp;这张表里共有多少条信息。

count() 函数,凡是不是空值的字段有多少。

select count(comm) from emp;

select count(deptno) from emp;

select count(distinct deptno) fromemp;共有多少部门编号。

18)group _by语句。

求每个部门的平均薪水:

select **g(sal) from emp group by deptno;

select deptno, **g(sal) from emp group by deptno;

select deptno, job, max(sal) from emp group by deptno, job;

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