一.Oracle数据库的安装(安装在虚拟机的xp系统里)
     1.安装虚拟机
     2.虚拟机内安装xp系统,以下步骤在虚拟机内进行
     3.双击setup.exe,在出现的界面中设置口令,及确认口令(此口令即为system账号的密码),点击下一步
     4.先决条件检查,将"用户已验证前面的复选框打勾,下一步
     5.概要界面,点击安装
     6.安装完成后,自动运行配置向导
     7.口令管理界面,点击"口令管理"解锁SCOTT和HR两个账户
     8.回到口令管理界面,点击确定,安装完成,点击退出.

9.设置虚拟机:编辑--虚拟网络编辑器--添加网络,添加后会自动分配IP(如,192.168.9.0)
     10.此时,本机上会多出一块虚拟网卡(网络和共享中心),设置该网卡的IP与虚拟机的ip在同一网段(如192.168.9.1)
     11.设置xp系统中ip保持在同一网段(如192.168.9.2)
     12.设置虚拟机的网络适配器,自定义为刚才添加的网卡;虚拟机-设置-网络适配器-自定义

13.修改oracal的两个核心配置文件:C:\oracle\product\10.2.0\db_1\NETWORK\ADMIN
     该文件下,listener.ora文件和tnsnames.ora文件中的ip都改为与xp系统ip一致,port=1521

14.测试sqlplus客户端连接服务器,将sqlplus所在的整个文件夹(instanclient_12_1),copy至一个没有中文,没有空格的路径里
     15.打开DOS窗口,进入该文件夹,输入命令:sqlplus system/密码@远程IP:1521/orcl;若使用powershell,则输入.\sqlplus system/密码@远程IP:1521/orcl
     远程IP:XP系统的ip;密码为安装时输入的密码
     16.quit,退出

17.测试并连接pl/sql developer.安装pl/sql,注意安装路径不能有中文,不能有空格,一直下一步直到安装完成;
     18.点击快捷方式,出现登陆界面,点击"cancel",进入界面
     19.tools--preferences,修改oracle home为:D:\instantclient_12_1;
     修改OCIlibrary为,D:\instantclient_12_1/oci.dll;
     20.copy oracle的核心文件tnsnames至一个没有中文和空格的路径里,然后添加至系统环境变量,变量名:TNS_ADMIN,变量值为:D:\instantclient_12_1
     21.使用system账户进入系统;

22.进入数据库后,重置及解锁SCOTT账户,命令如下:alter user  scott identified by tiger account unlock;对于HR账户同样操作;

注:
     --解决中文乱码问题
     --1.查看服务器端编码
     select userenv('language') from dual;
     --2.查看以下语句执行后的第一个参数与服务器端编码是否一致
     select * from V$NLS_PARAMETERS;
     --3.若不一致,添加环境变量:变量名:NLS_LANG,变量值:第1步查到的值
     --4.重启pl/sql Devloper

二.Oracle数据库的体系结构
     1.数据库:oracle数据库是数据的物理存储,包括数据文件ora或者dbf,控制文件,联机文件,日志文件,参数文件.oracle数据库在一个操作系统中只有一个库,这是与其它数据库的区别之处;
     2.实例:一个实例由一系列的后台进程和内存结构组成,一个数据库可以有n个实例,一般只设置一个;
     3.数据文件(dbf):数据库的物理存储单位;
     4.表空间:数据文件的逻辑映射.一个数据库在逻辑上被划分成一个或多个表空间;表空间由磁盘上的一个或多个数据文件(datafile)组成,一个数据文件只能属于一个表空间.
     5.用户:用户是在实例下建立的,不同实例中可以建相同名字的用户.

三.基本查询语句(SCOTT账户)

select * from emp;

1.--去重 distinct

select distinct job from emp;

select job from emp;

2.--字符串连接 ||  每个员工的信息用一句话显示:“员工编号是XXXX,姓名是XXX,职位是XXX”

select '员工编号是' || empno || ',姓名是' || ename || ',职位是' || job from emp;

3.--四则运算

select sal*12 from emp;

4.--条件查询

4.1--查询工资大于等于1500并且小于等于3000的员工

select * from emp where sal >= 1500 and sal <= 3000;

4.2--between and 含头含尾

select * from emp where sal between 1500 and 3000;

4.3--查询工资不大于1500 not

select * from emp where not sal > 1500;

4.4--查询员工编号是 7566,7788,7369 in

select * from emp where empno in(7566,7788,7369);

4.6--查询奖金为空的员工信息 is

select * from emp where comm is null;

5.--模糊查询 like

--通配符%,占位符_

--查询员工姓名中第二个字符带m的,此时,Oracle数据库大小写敏感的

select * from emp where ename like '_M%';

6.--查询员工姓名中带_,需要转义 escape       注:%/&/中文字符不可作为转义字符使用

select * from emp where ename like '%a_%' escape 'a';

7.--排序 order by asc desc

--按照奖金的降序排序

select * from emp order by comm desc nulls last;

select 1+1 from dual;

8.--单行函数

--字符函数:
        lower()转小写;
        upper()转大写;
        initcap()首字母大写;
        replace()替换;
        substr()截取;
        length()长度;
        concat()连接;

select lower('ABC') from dual;

select upper('abc') from dual;

select initcap('abcd') from dual;

select replace('abcdef','ab','MM') from dual;

select substr('abcdef',0,3) from dual;--从第1个开始取(含),取3个;

select substr('abcdef',1,3)from dual;--从第1个开始取(含),取3个;

select substr('abcdef',2,3) from dual;--从第2个开始取(含),取3个;

select length('abcdefg') from dual;

select concat('abc','def') from dual;

select 'abc'||'def' from dual;

9.--数值函数

round()四舍五入

trunc()去尾/截断

mod()取模

select round(12.56,1) from dual;--12.6

select round(12,-1) from dual;--10

select round(16,-1) from dual;--20

select trunc(12.56,-1) from dual;--10

select trunc(16.5,-1) from dual;--10

select mod(10,3) from dual;--1

10.--日期函数

10.1--当前系统时间 sysdate

select  sysdate from dual;

10.2--两个日期的月份差months_between

select ename, round(months_between(sysdate,hiredate)) from emp;

10.3--add_months n个月后的时间

select add_months(sysdate,4) from dual;

11--转换函数

--字符转数字

select '12'+'12' from dual;

select to_number('12')+to_number('12') from dual;

12--  查询 '1980-12-17'入职的员工

select * from emp where to_char(hiredate,'yyyy-MM-dd') = '1980-12-17';

select * from emp where hiredate = to_date('1980-12-17','yyyy-MM-dd');

13--通用函数 nvl

--null如果参与运算,则结果恒为null,需使用nvl函数将其转为0

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

14--翻译函数 decode    把员工表中的职位显示成中文

select ename,job,decode(job,
        'CLERK','店员',
        'SALESMAN','销售员',
        '其它') from emp; 

select ename, job,

case job when 'CLERK' then '店员'
          when 'SALESMAN' then '销售员'
          else '其他'
          end
          from emp;

15.--组函数

--计算每个部门的平均工资

select deptno, trunc(avg(sal)) from emp group by deptno having avg(sal) > 2000;

16.--统计每个部门的人数,无人部门显示为0

SELECT D.DEPTNO, COUNT(E.DEPTNO)
   FROM EMP E
  RIGHT JOIN DEPT D
     ON E.DEPTNO = D.DEPTNO
  GROUP BY D.DEPTNO;

oracle笔记1:-安装-体系结构-基本查询的更多相关文章

  1. Oracle笔记(1) 简单查询、限定查询、数据的排序

    Oracle笔记(四) 简单查询.限定查询.数据的排序   一.简单查询 SQL(Structured Query Language) 结构化查询语言,是一种数据库查询和程序设计语言,用于存取数据以及 ...

  2. Oracle笔记(八) 复杂查询及总结

    一.复杂查询 1. 列出至少有一个员工的所有部门编号.名称,并统计出这些部门的平均工资.最低工资.最高工资. 1.确定所需要的数据表: emp表:可以查询出员工的数量: dept表:部门名称: emp ...

  3. Oracle笔记(四) 简单查询、限定查询、数据的排序

    一.简单查询 SQL(Structured Query Language) 结构化查询语言,是一种数据库查询和程序设计语言,用于存取数据以及查询.更新和管理关系数据库系统.ANSI(美国国家标准学会) ...

  4. 【oracle笔记3】多表查询

    *多表查询 分类:1.合并结果集 2.连接查询 3.子查询 *合并结果集:要求被合并的表中,列的类型和列数相同. *UNION,去除重复行.完全相同的行会被去除 *UNION ALL:不去除重复行. ...

  5. Oracle笔记 多表查询

    Oracle笔记  多表查询   本次预计讲解的知识点 1. 多表查询的操作.限制.笛卡尔积的问题: 2. 统计函数及分组统计的操作: 3. 子查询的操作,并且结合限定查询.数据排序.多表查询.统计查 ...

  6. 学习笔记:oracle之win10安装卸载oracle 11gR2步骤及常见问题解决

    1.win10下安装oracle11g 1.1 工具原料 oracle11g安装包(64位) 1.2 步骤方法 1.在Oracle官网下载安装包,下载后,得到的文件如图所示: 2.将两个文件进行解压缩 ...

  7. OCA读书笔记(2) - 安装Oracle软件

    Objectives: •Describe your role as a database administrator (DBA) and explain typical tasks and tool ...

  8. Oracle笔记(一) Oracle简介及安装

    一.轨迹 二.Oracle简介 Oracle是现在全世界最大的数据库提供商,编程语言提供商,应用软件提供商,它的地位等价于微软的地位. Oracle在古希腊神话中被称为“神谕”,指的是上帝的宠儿,在中 ...

  9. Oracle笔记 目录索引

    Oracle笔记 一.oracle的安装.sqlplus的使用 Oracle笔记 二.常用dba命令行 Oracle笔记 三.function .select Oracle笔记 四.增删改.事务 Or ...

随机推荐

  1. 转载《centos6安装nginx最详细步骤》

    出处:https://www.cnblogs.com/hltswd/p/6956264.html 第一步:在centos下面下载 nginx          wget http://nginx.or ...

  2. loj #6261 一个人的高三楼 FFT + 组合数递推

    \(\color{#0066ff}{ 题目描述 }\) 一天的学习快要结束了,高三楼在晚自习的时候恢复了宁静. 不过,\(HSD\) 桑还有一些作业没有完成,他需要在这个晚自习写完.比如这道数学题: ...

  3. SP8791 DYNALCA - Dynamic LCA

    \(\color{#0066ff}{ 题目描述 }\) 有一个森林最初由 n (\(1 \le n \le 100000\))n(\(1\leq n\leq 100000\)) 个互不相连的点构成 你 ...

  4. oracle ,mysql,postgres jdbc配置文件

    #db mysql #jdbc.driver=com.mysql.jdbc.Driver #jdbc.url=jdbc:mysql://localhost:3306/mysql?&useUni ...

  5. Java内存区域与内存溢出异常---运行时数据区域

    运行时数据区域 Java虚拟机所管理的内存将会包括以下几个运行时数据区域 线程私有区域 1.程序计数器   程序计数器记录的是当前正在执行的虚拟机字节码指令所在的地址.在虚拟机的概念模型中,字节码解释 ...

  6. java修饰符的一些知识点

    1.java默认的修饰符是不加任何标志,默认为包修饰符,在同一个包下的类都可以对其进行调用.若需要进行跨包调用,往往需要加上修饰符public2.public修饰符对需要调用其的消费者都是可见的,一个 ...

  7. Educational Codeforces Round 53 (Rated for Div. 2) C. Vasya and Robot(二分或者尺取)

    题目哦 题意:给出一个序列,序列有四个字母组成,U:y+1,D:y-1 , L:x-1 , R:x+1;   这是规则 . 给出(x,y) 问可不可以经过最小的变化这个序列可以由(0,0) 变到(x, ...

  8. java反射之一

    public static void main(String[] args) { try { Class cla = Class.forName("com.money.test.Employ ...

  9. C:foreEach

    c:forEach用法   <c:foreach>用法   <c:foreach>类似于for和foreach循环   以下是我目前见过的用法:1.循环遍历,输出所有的元素.& ...

  10. 匿名类与lambda区别

    第一种是继承Thread, 重写了Thread.run()    getClass()返回的是匿名类 java.long.Thread$1 第二种是lambda, 重写了Runnable.run()  ...