`

oracle基础知识1_单表查询

    博客分类:
  • DB
阅读更多

 

本机安装成功后,访问链接: http://localhost:5560/isqlplus/

 

 

前提: 本机win7下安装oracle10g_32, 安装过程见

oracle 10g 安装 和 常遇到的错误 (http://chengjianxiaoxue.iteye.com/blog/2074281)

安装后仅限于学习个人学习oracle之用

 

0 oracle数据库和oracle实例的区别:

 

   a) oracle服务器 = oracle数据库 + oracle实例

   b) oracle数据库: 用于实际存放数据的文件,存储在硬盘中这些文件组织在一起形成的逻辑整体叫做数据库

   c) oracle实例: 位于物理内存的数据结构中,  = 一个共享内存池 + 多个后台进程组成

   d) 用户存取数据库中的数据(硬盘文件),必须通过oracle实例操作。

   e) 任何时刻,一个实例只能与一个数据库关联;大多数情况下,一个数据库上只有一个实例对其操作

  

 

1 表空间和数据文件:

 

   a) 数据文件:  1) 用于存储物理数据; 2)后缀是 .dbf;

   b) 表空间 :  是一个逻辑概念,表名称  eg: table user;

   c) 一个user表可以有多个数据文件,eg: USER01.dbf,  USER02.dbf; 是一对多的关系

 

 

2 本机安装oracle后,将开机自动启动修改成手动启动(如果安装后是为了学习之用,节省本机资源)

 



 

 

3 学习中需要操作的表:


 


 4 基本指令:

 

    1 显示当前用户: show user   结果: USER 为 "SCOTT"

    2 显示当前用户的表: select * from tab; (区别于mysql的 show tables;)

 

TNAME TABTYPE CLUSTERID
DEPT TABLE  
EMP TABLE  
BONUS TABLE  
SALGRADE TABLE  

 

    3  显示表结构(和mysql写法一样) : desc emp;

名称 是否为空? 类型
EMPNO NOT NULL NUMBER(4)
ENAME   VARCHAR2(10)
JOB   VARCHAR2(9)
MGR   NUMBER(4)
HIREDATE   DATE
SAL   NUMBER(7,2)
COMM   NUMBER(7,2)
DEPTNO   NUMBER(2)

 

    4 查询表数据: select  columnname1, columnname2... from tablename (建议查询语句中用字段名称取代*,在oracle9i低版本的oracle查询时,使用*作为查询会耗费oracle判断时间,效率会降低)

 

   5 sql语句中的null:

     a) 包含null的表达式都为null

     b) null != null

     c) 如果集合中含有null,不能使用not in,可以使用 in

     eg1: 查询emp表的年薪:

select empno, ename,sal, comm ,sal*12 + comm as 年薪  from emp; 结果会发现,在comm(奖金)为null时,年薪结果为null;

EMPNO ENAME SAL COMM 年薪
7369 SMITH 800    
7499 ALLEN 1600 300 19500
7521 WARD 1250 500 15500
7566 JONES 2975    
7654 MARTIN 1250 1400 16400

 

 改进方式是使用 nal(a,b)函数

(NVL( string1, replace_with)。它的功能是如果string1为NULL,则NVL函数返回replace_with的值,否则返回string1的值,如果两个参数都为NULL ,则返回NULL)

 

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

EMPNO ENAME SAL COMM 年薪
7369 SMITH 800   9600
7499 ALLEN 1600 300 19500
7521 WARD 1250 500 15500
7566 JONES 2975   35700
7654 MARTIN 1250 1400 16400

 

 

   eg2: 查询奖金为null的员工:

select empno, ename,sal from emp where comm is null;    不能用 = 和 !=,用 is null / is not null取代

 

  eg3: select * from emp where deptno in (10,20,null);

 

  6  字符串和日期   a) 这两者需要放在单引号内  b) 对于字符串,大小写敏感区分  c) 日期格式敏感,默认格式为 DD-MON-RR(日-月-年);

  eg:

select empno, ename,sal from emp where ename = 'KINg';   查询不到结果

select empno, ename,sal from emp where ename = 'KING';   查询出结果

select empno, ename,sal from emp where hiredate = '17-11月-81';  查询的出结果

 

  7 查看系统默认日期类型

 select sysdate from dual;

SYSDATE
04-6月 -14

 

 

  8  between and :  小值在前,大值在后。

 

  9  in/not in(num1,num2...)

select * from emp where deptno not in (10,20);

  10  like   %代表多个长度, _代表一个长度

    eg1: 查询名字是四个字的员工

select * from emp where ename like '____';  (要用单引号,引号内内容为4个_)

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
7521 WARD SALESMAN 7698 22-2月 -81 1250 500 30
7839 KING PRESIDENT   17-11月-81 5000   10
7902 FORD ANALYST 7566 03-12月-81 3000   20

  

   eg2: 查询名称中含有_的员工信息(取_字符本身,而不是取_在模糊查询的含义):

insert into emp(empno,ename,sal,deptno) values(1001,'Tom_ABCD',6000,10);

select * from emp where ename like '%\_%' escape '\';

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
1001 Tom_ABCD       6000   10

 

  11 order by 后面+ 列名/表达式/别名

  eg1: select ename, sal*12 as 年薪 from emp  order by 年薪

  eg2: select ename, deptno,sal*12 as 年薪 from emp  order by deptno, sal;  先按照第一列排序,如果相同,再按照第二列排序,以此类推

  eg: 降序排列时,如果有空值,如何将空值排在后面(按照人们的习惯来显示数据,office好用就在于按照人的使用习惯排列按钮让人去点)

 

 select * from emp  order by comm desc nulls last;

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
7654 MARTIN SALESMAN 7698 28-9月 -81 1250 1400 30
7521 WARD SALESMAN 7698 22-2月 -81 1250 500 30
7499 ALLEN SALESMAN 7698 20-2月 -81 1600 300 30
7844 TURNER SALESMAN 7698 08-9月 -81 1500 0 30
7782 CLARK MANAGER 7839 09-6月 -81 2450   10
7788 SCOTT ANALYST 7566 19-4月 -87 3000   20
7839 KING PRESIDENT   17-11月-81 5000   10

 

 

 

 

 

 

12 DISTINCT 排除重复,如果放在多个字段前,那么这多个字段是作为一个比较条件来进行排重

 

select DISTINCT deptno,job from emp;

DEPTNO JOB
20 CLERK
30 SALESMAN
20 MANAGER
30 CLERK
10 PRESIDENT
30 MANAGER
10 CLERK
10  
10 MANAGER
20 ANALYST

 

 

 

 

 

 

 

 

  • 大小: 18.4 KB
  • 大小: 174.6 KB
  • 大小: 19 KB
  • 大小: 15.8 KB
分享到:
评论

相关推荐

    oracle基础知识考试题_答案.zip

    这个"oracle基础知识考试题_答案.zip"压缩包文件包含了关于Oracle数据库的基础知识学习材料,特别是针对初学者或者准备Oracle相关资格考试的人员。 首先,Oracle数据库的核心概念包括SQL(结构化查询语言)的使用,...

    Oracle基础知识总结_oracle_

    Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性...

    oracle_instantclient_19_3_windows_x64_19.3.zip

    综上所述,"oracle_instantclient_19_3_windows_x64_19.3.zip"是一个针对64位Windows系统的Oracle数据库客户端工具,它提供了字符集兼容性增强,以及用于数据库连接、查询和管理的基础组件。正确配置和使用Oracle ...

    Oracle数据库基础知识_ISSUE1.0.doc

    这份文档"Oracle数据库基础知识_ISSUE1.0.doc"旨在介绍Oracle数据库的基础知识,帮助初学者理解和掌握Oracle数据库的核心概念。 课程说明部分可能包含课程的目标、教学方法以及相关资料的提供,为学习者提供了整体...

    oracle基础知识入门

    对于初学者来说,掌握Oracle基础知识是进入数据库领域的第一步。本文将深入浅出地介绍Oracle数据库的一些核心概念和基本操作,帮助你快速入门。 一、Oracle数据库系统概述 Oracle数据库是由美国Oracle公司开发的,...

    oracle基础知识整理

    以下是一些Oracle基础知识的详细解释: 1. SQL*Plus工具:这是Oracle数据库管理员(DBA)和开发人员常用的命令行界面,用于执行SQL查询和其他数据库操作。`set linesize` 和 `set pagesize` 用于调整输出的行宽和每...

    odt.rar_odt_oracle_oracle O_oracle ODT

    学习和掌握Oracle ODT,开发者需要了解Oracle数据库的基本概念,如SQL语言、PL/SQL编程,以及Visual Studio的基础知识。此外,对于想要深入使用ODT的开发者,还需要熟悉Oracle的其他相关技术,比如Oracle Data ...

    oracle基础知识以及多表查询笔记

    自学oracle时的笔记,oracle基础入门,常用函数,多表查询范例

    oracle 基础知识整理

    本文将深入探讨Oracle基础知识,包括其架构、安装、数据类型、SQL语句、表空间管理以及备份与恢复策略。 一、Oracle数据库架构 Oracle数据库采用客户/服务器(Client/Server)模式,由多个组件构成。主要包括数据库...

    Oracle基础知识

    Oracle 基础知识是学习 Oracle 的基础,它包括了 SQL 概述、数据库概念、表结构、SQL 分类、数据结构、查询语句等内容。 内容 -------- ### SQL 概述 SQL(Structured Query Language)是一种标准化的数据库...

    oracle基础知识回顾与练习.zip

    本资料“oracle基础知识回顾与练习.zip”是针对Oracle数据库的基础知识进行整理,采用纯SQL语句的形式,适合初学者及需要巩固基础的用户进行学习和实践。 1. SQL基础 SQL(Structured Query Language)是用于管理...

    Oracle-DSI.rar_Oracle-DSI_oracle_oracle dsi_oracle pdf

    Oracle DSI,全称为Oracle Data Services Infrastructure,是Oracle数据库系统中的一个重要组成部分,主要涉及数据服务的基础设施和性能优化。在11gR2版本中,Oracle对DSI进行了显著的改进,以提升整体数据库的性能...

    SQL(oracle).rar_oracle_oracle sql_oracle 总结_pl sql_sql

    `oracle_总结`标签提示,这份资料可能是对Oracle数据库使用和管理的关键知识点的汇总,可能包括表的创建、索引的使用、事务管理、视图的创建与应用、数据库备份与恢复策略等。数据库性能优化也是Oracle管理的重要...

    ORACLE-select-query.rar_oracle_多表查询

    本压缩包“ORACLE-select-query.rar”专注于讲解Oracle数据库中的查询技术,特别是多表查询、子查询以及高级子查询。下面将详细探讨这些关键知识点。 首先,基础查询SQL语句是所有数据库操作的基础,它涵盖了SELECT...

    oracle 基础知识总结初学者必备

    ### Oracle基础知识总结初学者必备 Oracle数据库作为一款广泛使用的数据库管理系统,在企业和开发领域扮演着重要的角色。对于初学者而言,掌握其基础知识是非常必要的。本文将根据提供的内容进行深入解析,并结合...

    oracle数据库基础知识

    这是我学习过程中整理的oracle数据库基础知识,里面包含了DML、DDL等相关语句。还解释了什么情况下该用什么样的SQL。包含了很多基础知识。欢迎大家收藏。

    oracle基础知识考试题_答案借鉴.pdf

    oracle基础知识考试题_答案借鉴.pdf

    Oracle_PL-SQL.rar_ORACLE PL_oracle_oracle sql_oracle 教程_pl sql

    以下是一些关于Oracle PL/SQL的基础知识点: 1. **变量与数据类型**:PL/SQL支持多种数据类型,包括数值类型(如NUMBER)、字符类型(如VARCHAR2、CHAR)、日期时间类型(如DATE)以及布尔类型(BOOLEAN)等。声明...

Global site tag (gtag.js) - Google Analytics