安装过程网上有 可以搜索
Oracle的集群
Oracle体系介绍
开启oracle需要在服务中开启OracleService。。。和Listeer的服务 前者是主服务 后者是使用网络连接的服务
基本查询
SQL> --清屏
SQL> host cls
SQL> /*host +命令 相当于不是在oracle执行的命令而是在客户机上执行的命令*/
SQL> --查看当前用户
SQL> show user
USER 为 "SCOTT"
SQL>
SQL>
SQL> --当前用户下的表
SQL> select * from tab;
SQL> -- tab数据字典(管理员提供的表)
SQL> desc emp
SQL> --查询所有员工的所有信息
SQL> select * from emp;
SQL> --设置行宽
SQL> set linesize 120
SQL> --设置列宽
SQL> col ename for a8
SQL> col sal for 9999
SQL> --/代表执行缓存区中的上一条select语句
SQL> /
SQL> --通过列名查询
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno
2 from emp;
SQL> /*
SQL> SQL优化:
SQL> 1. 尽量使用列名代替*
SQL> Oracle 9i之后,可以*的速度和列名的速度基本一样
SQL> */
SQL> -------------------------------------------------------
SQL>--以下讲解如果在sqlplus中输入错的命令 默认系统的光标是在上一条select命令的第一行
SQL>--如果第二行出现错误 我们可以先输入2 然后会调到错误的那一行 执行c命令更改
QL> --查询员工号 姓名 月薪
SQL> select empno,ename,sal
2 fomr emp;
fomr emp
*
第 2 行出现错误:
ORA-00923: 未找到要求的 FROM 关键字
SQL> --c命令 change
SQL> 2
2* fomr emp
SQL> c /fomr/from
2* from emp
SQL> /
SQL>----------/代表执行上一条select语句
下面的方式更简单修改错误 可以输入edit或者缩写 ed 修改上一条语句的错误
SQL> ed
已写入 file afiedt.buf
1 select empno as "员工号",ename "姓名",sal 月薪,sal*12 年 薪
2* from emp
SQL> /
select empno as "员工号",ename "姓名",sal 月薪,sal*12 年 薪
*
第 1 行出现错误:
ORA-00923: 未找到要求的 FROM 关键字
SQL> ed
已写入 file afiedt.buf
1 select empno as "员工号",ename "姓名",sal 月薪,sal*12 "年 薪"
2* from emp
SQL> /
SQL> --别名机制 可以使用as 如下
SQL> select empno as "员工号" ename "员工姓名" sal 薪水
SQL>--以上的区别在于as 可省略 ""也可省略 但是如果别名里面有特殊字符
SQL>-- 如空格和关键字 必须加上双引号 例 薪 水 和 薪select水 必须加上双引号
SQL> --算数表达式在select语句中的使用
SQL> --查询员工号 姓名 月薪 年薪 年收入
SQL> select empno,ename,sal,sal*12 年薪,comm 奖金,sal*12+comm 年收入
2 from emp;
EMPNO ENAME SAL 年薪 奖金 年收入
---------- -------- ----- ---------- ---------- ----------
7369 SMITH 800 9600
7499 ALLEN 1600 19200 300 19500
7521 WARD 1250 15000 500 15500
7566 JONES 2975 35700
7654 MARTIN 1250 15000 1400 16400
7698 BLAKE 2850 34200
7782 CLARK 2450 29400
7788 SCOTT 3000 36000
7839 KING 5000 60000
7844 TURNER 1500 18000 0 18000
7876 ADAMS 1100 13200
EMPNO ENAME SAL 年薪 奖金 年收入
---------- -------- ----- ---------- ---------- ----------
7900 JAMES 950 11400
7902 FORD 3000 36000
7934 MILLER 1300 15600
已选择14行。
SQL> /*
SQL> SQL中null值:
SQL> 1. 包含null的表达式都为null
SQL> 2. SQL中,null != null
SQL> */
SQL> ed
已写入 file afiedt.buf
1 select empno,ename,sal,sal*12 年薪,comm 奖金,sal*12+nvl(comm,0) 年收入
2* from emp
SQL> /
EMPNO ENAME SAL 年薪 奖金 年收入
---------- -------- ----- ---------- ---------- ----------
7369 SMITH 800 9600 9600
7499 ALLEN 1600 19200 300 19500
7521 WARD 1250 15000 500 15500
7566 JONES 2975 35700 35700
7654 MARTIN 1250 15000 1400 16400
7698 BLAKE 2850 34200 34200
7782 CLARK 2450 29400 29400
7788 SCOTT 3000 36000 36000
7839 KING 5000 60000 60000
7844 TURNER 1500 18000 0 18000
7876 ADAMS 1100 13200 13200
EMPNO ENAME SAL 年薪 奖金 年收入
---------- -------- ----- ---------- ---------- ----------
7900 JAMES 950 11400 11400
7902 FORD 3000 36000 36000
7934 MILLER 1300 15600 15600
已选择14行。
SQL>-- sql滤空函数nvl(a,b) 不为空结果为a 为空结果为b
SQL> --2. SQL中,null != null
SQL> --查询奖金为null的员工
SQL> select *
2 from emp
3 where comm=null;
未选定行
SQL> ed
已写入 file afiedt.buf
1 select *
2 from emp
3* where comm is null
SQL> /
SQL> --DISTINCT 去掉重复的记录
SQL> select deptno from emp;
SQL> select DISTINCT deptno from emp;
SQL> select DISTINCT deptno,job from emp;
SQL> --DISTINCT作用于后面所有的列
SQL> --concat 连接字符串
SQL> select concat('Hello',' World') from emp;
SQL> select concat('Hello',' World') from dual;--傻表
SQL> --dual表: 伪表
SQL> --连接符
SQL> select 'Hello'||' World' from dual;
'HELLO'||'WO
------------
Hello World
SQL> --查询员工信息: ****的薪水是****
SQL> select ename||'的薪水是'||sal 一列
2 from emp;
ISQLPLUS是oracle用浏览器管理的工具
http://localhost:5506/isqlplus/需要开启服务 11之后 没有这个工具了