Oracle与Oracle的SQL操作语句

Oracle 也是一种数据库管理系统

存储结构分类:逻辑存储结构,物理存储结构

逻辑存储结构:


数据块:数据块是Oracle逻辑存储结构的最小逻辑结构,一个数据块对应一个或多个物理块,

数据块的结构包括块头和存储区的两个部分

    块头包括:数据块标题,表目录,行目录

    存储区:自由空间,行数据

    数据区:数据区是由连续的数据块结合而成的,数据区是Oracle存储分配的最小单位

段:

    数据段:存储表中所有的数据

    索引段:存储表上最佳查询的所有索引数据

    临时段:存储表排序操作期间建立的临时表的数据

    回滚段:存储修改之前的位置和值

表空间:表空间是数据库的最大逻辑划分区域,一个表空间由一个或多个数据文件组成,一个数据文件只属于一个表空间,表空间的大小是它所对应的数据文件大小的总和

    默认创建的表空间有:

        系统表空间(system tablespace)辅助表空间(sysaux tablespace)

        撤销表空间(undo tablespace)  用户表空间(users tablespace)

物理存储结构:

    物理存储结构包含三种数据文件:控制文件,数据文件,日志文件

逻辑存储结构与物理存储结构的交互方式有两种:1.表空间与数据文件2.块与os块


    数据文件:系统数据文件(SYSTEM01.DBF和SYSAUX01.DBF)回滚数据文件(UNDOTBS01.DBF)

                    用户数据文件(USERS01.DBF、TBSP_1.DBF)临时数据文件(TEMP02.DBF)

    控制文件:是数据库中最小的文件但也是非常的重要的文件

    日志文件:包括重做数据文件(记录所有的数据变化,提供恢复机制)和归档日志文件等等

我自己安装的Oracle 版本是Oracle11g

oracle11g提供了    SQLPlus    SQLDeveloper    Oracle企业管理器    数据库配置助手(DBCA)


目前先使用SQL*Plus工具:在Oracle 11g数据库系统中,用户对数据库的操作主要是通过SQL *Plus来完成的。SQL *Plus作为Oracle的客户端工具,既可以建立位于数据库服务器上的数据连接,也可以建立位于网络中的数据连接。

SQL*Plus工具的特点为:

        可以用它运行SQL查询和PL/SQL代码块并接受结果信息;
        可以发布DBA命令并自动工作;
        可以启动和关闭数据库;
        一种创建数据库管理报告的便利方法;

Oracle的常用SQL语句

列别名:列别名可以使检索出来的表更加美观易懂

例如:

1.检索emp表员工的编号、姓名和年基本工资、日基本工资信息,并为查询结果设置列别名 

select empno as "员工编号",ename as "员工名称",sal*12 as "年基本工资",sal/30 as "日基本工资" from emp;  

2.检索emp表的指定列(empno、ename、job),不使用任何关键字而直接为这些列指定中文的别名

    select empno "员工编号",ename "员工名称",job "职务"  from emp;

            如果别名中包含了特殊字符,或想让别名原样显示,就要使用双引号把别名括起来


去重:使查询结果中排出重复行可以使用关键字distinct

distinct的作用是消除重复内容,但是所谓的消除重复的内容,是指一条完整的数据全部是重复的,如果多行记录只有一列重复而其他列不重复,那么也是无法消除的。

例如:在SCOTT模式下,显示emp表中的job(职务)列,要求显示的“职务”记录不重复

        select distinct job from emp;

        也可以使用分组group by 来达到去重的目的

        select job from emp group by job;

查询

查询单个表中的所有数据

select  *  from scott.emp;

查询多个表中的所有数据(将表用逗号隔开就行了)

select * from scott.emp,dept;

查询指定(/多个)数据

select job,sal,ename,empno from emp;

伪列:是一种数据类型,唯一标识一条记录,物理位置的一条id,它之所以被称为伪列就是因为他不是正式存在的,伪列可以从表中查询,但是不可以插入,更新或者删除。

        伪列的用途:1.能以最快的方式访问表中的一行

                            2.能显示表的行是如何存储的

                            3.作为表中的唯一标识

        常用的伪列:rowid和rownum

                rowid:数据库中的每一行都有一个行地址,rowid伪列返回该行地址。可以使用rowid值来定位表中的一行,通常情况下,rowid值可以唯一地标识数据库的一行。

             rownum:对于一个查询返回的每一行,rownum伪列返回一个数值代表的次序。返回第一行的rownum值为1,第二行的rownum值为2,以此类推。通过使用rownum伪列,用户可以限制查询返回的行数

例如:1.查询emp表的rowid列---select rowid from emp;

          2.从emp表中查询前5条数据---select * from emp where rownum < 6;

模式匹配: like以及两个通配符“%”表示0或多个字符,“_”表示一个且只有一个字符

例如:查询表中名字中含有张的人名字

        select * from biaoge where ename like "%张%";

空值:oracle中的空值(null)是不存在的值,而不是空字符串,























猜你喜欢

转载自blog.csdn.net/xiongzhouxiong/article/details/79791334