您的位置:首页 > 数据库 > Oracle

Oracle基本概念和介绍

2013-02-05 17:13 405 查看

Oracle基本概念

Oracle Database的基本概念

一个Oracle服务器

是一个数据管理系统,它提供开放的,全面的,近乎完整的信息管理

Oracle服务器有两大部分组成

一个Oracle实例

一个Oracle数据库组成

Oracle数据库

位于硬盘上实际存放数据的文件,这些文件组织在一起,成为一个逻辑整体,即为Oracle数据库。因此在Oracle看来,数据库是指硬盘上文件的逻辑集合,必须要与内存里实例合作,才能对外提供数据管理服务

Oracle实例

位于物理内存里的数据结构,它由一个共享的内存池和多个后台进程所组成,共享的内存池可以被所有进程访问,用户如果要存取数据库(也就是硬盘上的文件)里的数据,必须通过实例才能访问,不能直接读取硬盘上的文件。

注意!!!

实例可以操作数据库,在任何时刻一个实例只能与一个数据库关联,大多数情况下,一个数据库只有一个实例对其进行操作。





表空间和数据文件

表空间由多个数据文件组成,逻辑概念

数据文件只能属于一个表空间,物理概念





段,区,块概念

段存在于表空间中

段是区的集合

区是数据块的集合

数据块会被映射到磁盘块





数据库的逻辑和物理结构





Oracle基本sql select语句

学完基本select语句应掌握

1. 书写select语句

2. 返回表中的全部数据

3. 返回表中指定列的数据

4. 使用别名

5. 使用sql*plus环境,书写,保存和执行sql语句和sql*plus命令

语句格式:(读完本节后就能看懂啦,亲)

SELECT *|{[DISTINCT] column|expression [alias],...}

FROM table;

SQL语句注意事项

SQL语句大小写不敏感

SQL可以写在一行或多行

关键字不能被缩写也不能被分行

各子句一般要分行写

使用缩进提供语句的可读性

基本select语句

select 标识选择那些列

选择全部列*





选择特定列,指定列名





选择表达式

+ - * /





from 标识从那个表中选择

下图为基于那张表





列的别名

J 重命名一个列

J 便于计算

J 紧跟列名,也可以在列名和别名之间加入关键字as,别名使用双引号,以便在别名中包含空格和特殊字符并区分大小写(面试有的时候会问到,使用双引号和不使用的)

J as可以省略

使用别名





连接符

J 把列于列,列与字符连接在一起

J 用“||”表示

J 可以用来合成列





记得终止只组合成了一列





字符串

J 字符串可以是select列表中的一个字符,数字,日期

J 日期和字符只能在单引号中出现

J 每当返回一行,字符串被输出一次

重复行

默认情况下,查询返回全部行,包括重复行

删除重复行,在select子句中使用关键字“distinct”删除重复行





显示表结构

desc简写

describe 表名

SQL语句与SQL*Plus命令

SQL语句对比SQL*Plus
一种语言
一种环境
ANSI标准
Oracle的特性之一
关键字不能缩写
关键字可以缩写
使用语句控制数据库中的表的定义信息和表中的数据
命令不能改变数据库中的数据值
集中运行

SQL*Plus功能

功能
描述表结构
编辑SQL语句
执行SQL语句
将SQl保存在文件中并将SQL语句执行结果保存在文件中
在保存的文件中执行语句
将文本文件装入SQL*Plus编辑窗口
本机上Http://localhost:5560/isqlplus/

Oracle过滤和排序数据

通过学习完本节,要掌握如下功能

使用where子句过滤数据

使用比较运算符

操作符
含义
=
等于(不是==,赋值使用:=符号)
>
大于
>=
大于,等于
<
小于
<=
小于,等于
<>
不等于(也可以是!=)
使用between and,in,like和null运算

操作符
含义
between…and…
两个值之间(包含边界)
in(set)
等于值列表中的一个
like
模糊查询
is null
空值
使用逻辑运算符and,or和not

操作符
含义
and
逻辑并
or
逻辑或
not
逻辑否
优先级
1
算术运算符
2
连接符
3
比较符
4
is null,like,not in,in
5
between
6
not
7
and
8
or

使用order by子句进行排序

asc(ascend)
升序
desc(descend)
降序
order by子句在select语句的末尾

排序的规则
1
可以按照select语句中的列名排序
2
可以按照别名列名排序
3
可以按照select语句中的列名的顺序值排序
4
如果按照多列进行排序,则规则是先按照第一列排序,如果相同,按照第二列排序依次类推
5
desc

使用转义符将%转为\%,-转为\-,然后再加上escape \

语法格式:

SELECT *|{[DISTINCT] column|expression [alias],...}

FROM table

[WHERE condition(s)]

[ORDER BY {column, expr, alias} [ASC|DESC]];

具体操作示例

查询10号部门的员工



查询KING的员工,字符大小写敏感




如果改为king则失败(字符和日期必须完全匹配)




查询入职日期为17-11月-81的员工




如果查询1981-11-17则出现文字与格式字符串不匹配




查看日期格式




其中

PARAMETER

----------------------------------------------------------------

VALUE

----------------------------------------------------------------

NLS_DATE_FORMAT

DD-MON-RR

NLS_DATE_LANGUAGE

SIMPLIFIED CHINESE

NLS_CHARACTERSET

ZHS16GBK

格式化:





修改日期格式




between and工资在多少之间,包含边界,小值在前面,大值在后面




in 在集合中,存在于部门10或20的员工




不存在与部分10或20的员工




需要注意,如果集合中含有null,不能使用not in,但可以使用in
not in 不可以使用null




in可以使用null




模糊查询%,_,多个和一个




模糊查询_,查询4个字母的名称




查询存在下划线的名称
插入带下划线的名称




查询结果有误





正确的查询方式:





SQL> --转意字符

SQL> rollback;

回退已完成。

and or 左边和右边,从右到左顺序执行

排序order by默认升序排序




order by降序排序




order by 后面可以跟随 列名 表达式 别名 序号




order by 排序别名




order by 后面加序号




order by 后面存在多列,这里需要注意先排序deptno,再根据deptno排序sal




一个默认排序,一个降序排序




desc只作用于临近,需要写两次




查询员工奖金,按奖金排序




查询员工奖金,降序排序排列




查询员工奖金排序,把null都放置在最后


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: