oracle number 转integer_Oracle数据库

oracle number 转integer_Oracle数据库_第1张图片

数据库

所谓的数据库其实就是数据的集合。用户可以对集合中的数据进行新增、查询、更新、

删除等操作。数据库是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、

与应用程序彼此独立的数据集合。

关系型数据库

关系型数据库特点 :

关系型数据库最典型的数据结构是表,由二维表及其之间的联系所组成的一个数据组

织。支持事务一致特性。

优点 :

易于维护:都是使用表结构,格式一致;

使用方便:SQL 语言通用;

复杂操作:支持 SQL,可用于一个表以及多个表之间非常复杂的查询;

缺点 :

性能差:读写性能比较差,尤其是海量数据的高效率读写,传统关系型数据库来说,硬

盘 I/O 是一个很大的瓶颈;

存储方式不灵活:固定的表结构,灵活度稍欠;

1)Oracle

2)Mysql

3)PostgreSQL

4)DB2

5)Microsoft SQL Server

6)Microsoft Access

非关系型数据库

非关系型数据库特点 :

非关系型数据库严格上不是一种数据库,应该是一种数据结构化存储方法的集合,可以

是文档或者键值对等。不支持事务一致特性。

优点 :

格式灵活:存储数据的格式可以是 key,value 形式、文档形式、图片形式等等;

高扩展性:基于键值对,数据没有耦合性,容易扩展;

速度快:无需经过 sql 层的解析,读写性能很高;

缺点 :

不支持 SQL:不提供 sql 支持,学习和使用成本较高;

不支持事务:无事务处理能力;

不支持复杂查询:数据结构相对复杂,复杂查询方面稍欠;

Oracle 数据库定义:

所有的关系型数据库存储数据的集合就是磁盘中的文件。Oracle 数据库其实就是一组文

件的集合。Oracle 数据库分别由:数据文件、控制文件、日志文件所构成。

数据文件(.DBF)

数据文件是一个二进制文件,是用于保存用户应用程序数据和 Oracle 系统内部数据的文件,这些文件在操作系统中就是普通的操作系统文件。Oracle 在创建表空间的同时会创建数据文件。

控制文件(.CTL)

控制文件是一个二进制文件,它主要记录数据库的名称、数据库的数据文件存放位置等信息。一个控制文件只能属于一个数据库。如果控制文件丢失,这数据库就无法操作。

日志文件(.LOG)

日志文件在 Oracle 数据库中分为重做日志(Redo Log File)文件和归档日志文件两种。重做日志文件是 Oracle 数据库正常运行不可缺少的文件。重做日志文件主要记录了数据库操作过程。用于备份和还原数据库,以达到数据库的最新状态。

Oracle 实例

实例就是数据库启动后分配的内存和建立的后台进程. 数据库关闭后,物理上的文件还存在,但实例(分配的内存和建立的进程)就没有了。

Oracle 实例与数据库的关系

实例就是一组操作系统进程(或者是一个多线程的进程)以及一些内存。这些进程可以操作数据库;而数据库只是一个文件集合(包括数据文件、临时文件、重做日志文件和控制文件)。

在任何时刻,一个实例只能有一组相关的文件(与一个数据库关联)。大多数情况下,反过来也成立:一个数据库上只有一个实例对其进行操作。

SID:

System IDentifier 的缩写,是 Oracle 实例的唯一标记。在 Oracle 中一个实例只能 操作一个数据库。如果安装多个库那么就会有多个实例,我们可以通过实例 SID 来区分。由于 Oracle 中一个实例只能操作一个数据库的原因 oracle 中也会使用 SID 来作为库的名称。

数据库相关概念

1)DB:数据库。

2)DBMS:数据库管理系统(Oracle实例)。

3)DBAS:数据库应用系统。

4)DBA:数据库管理员。

5)DBS:数据库系统。

Oracle目录结构和系统用户

1) sys 用户;默认密码oracle

sys 是 Oracle 中的超级账户,拥有的权限最大。可以完成数据库的所有管理任务。

2)system 用户;oracle

没有 sys 权限大,通常用来创建一些用户查看管理信息的表或视图。不建议使用 system 用户来创建一些与管理无关的表或者视图。

3)scott 用户;oracle

是 oracle 提供的示例用户,提供了一些学习 oracle 操作的数据表。如:emp、dept、

salgrade、bonus 表 。

Oracle常用目录并说明作用:

1)admin 目录 :记录 Oracle 实例的配置,运行日志等文件。每个实例一个目录。

2)oradata 目录 :存放数据库数据文件。

3)product 用来存放Oracle实例。

4)Flash_recovery_area 用来存放一些特定的恢复文件。

Oracle的常用客户端

1)自带客户端工具 SQL Plus。

sys 用户登录命令: sys as sysdba|sysoper

system 用户登录命令:system

2)第三方工具 PL/SQL Developer。

sys 用户登录命令: sys as sysdba|sysoper

system 用户登录命令:system

Oracle 的表空间分类

永久表空间

表空间是数据库的逻辑划分,一个表空间只能属于一个数据库。所有的数据库对象都存放在指定的表空间中。但主要存放的是表,所以称作表空间。

临时表空间

Oracle 临时表空间主要用来做查询和存放一些缓冲区数据。临时表空间消耗的主要原因是需要对查询的中间结果进行排序。重启数据库可以释放临时表空间。

分配用户权限

1)对象权限(Object privileges)

对象权限是指在指定的表,视图,序列上制定执行动作的权限或权利。

2)角色权限(Role privileges)

角色是可以授予用户的相关权限的组,该方法使权限的授予,撤回更加容易管理。

3)系统权限(System privileges)

为用户分配创建表、创建用户、创建视图、创建存储过程等权限。

Oracle 中的数据类型

1)字符类型

字符串数据类型还可以依据存储空间分为固定长度类型(CHAR) 和可变长度类型 (VARCHAR2/NVARCHAR2)两种。

CHAR 类型

CHAR 类型,定长字符串,会用空格填充来达到其最大长度。非 NULL 的 CHAR(12)

总是包含 12 字节信息。CHAR 字段最多可以存储 2,000 字节的信息。如果创建表时,不指

定 CHAR 长度,则默认为 1。

VARCHAR2 类型

变长字符串,与 CHAR 类型不同,它不会使用空格填充至最大长度。VARCHAR2 最多

可以存储 4,000 字节的信息。

2)数字类型

1NUMBER 类型

NUMBER(P,S)是最常见的数字类型。P 是 Precision 的英文缩写,即精度缩写,表示有效数字的位数,最多不能超过 38个有效数字。S 是 Scale 的英文缩写,表示小数点数字的位数。

INTEGER 类型

INTEGER 是 NUMBER 的子类型,它等同于 NUMBER(38,0),用来存储整数。若插

入、更新的数值有小数,则会被四舍五入。

3)浮点数

BINARY_FLOAT 类型

BINARY_FLOAT 是 32 位、 单精度浮点数字数据类型。可以支持至少 6 位精度,每个

BINARY_FLOAT 的值需要 5 个字节,包括长度字节。

BINARY_DOUBLE

BINARY_DOUBLE 是为 64 位,双精度浮点数字数据类型。每个 BINARY_DOUBLE

的值需要 9 个字节,包括长度字节。

4)日期类型

DATE 类型

DATE 是最常用的数据类型,日期数据类型存储日期和时间信息。

TIMESTAMP 类型

这是一个 7 字节或 12 字节的定宽日期/时间数据类型。它与 DATE 数据类型不同,因为

TIMESTAMP 可以包含小数秒,带小数秒的 TIMESTAMP 在小数点右边最多可以保留 9 位。

TIMESTAMP WITH TIME ZONE 类型

这是 TIMESTAMP 类型的变种,它包含了时区偏移量的值。

TIMESTAMP WITH LOCAL TIME ZONE 类型

将时间数据以数据库时区进行规范化后进行存储。

5)LOB 类型

CLOB 类型(Character Large Object)

二进制数据,存储单字节和多字节字符数据。最大长度 4G。

BLOB 类型(Binary Large Object)

它存储非结构化的二进制数据大对象,它可以被认为是没有字符集语义的比特流,一般是图像、声音、视频等文件。最大长度 4G。

NCLOB 数据类型

存储 UNICODE 类型的数据 ,最大长度 4G。

6)LONG & RAW & LONG RAW 类型

LONG 类型

它存储变长字符串(超长字符串),最多达 2G 的字符数据(2GB 是指 2 千兆字节, 而不

是 2 千兆字符)。

LONG RAW 类型

能存储 2GB 的原始二进制数据,可存放多媒体图象声音等。

RAW 类型

用于存储二进制或字符类型数据,必须制定长度。这种数据类型存储的数据不会发生字

符集转换。可存放多媒体图象声音等。

oracle 表名命名规则

1)必须以字母开头 。

2)长度不能超过 30 个字符 。

3)避免使用 Oracle 的关键字 。

4)只能使用 A-Z、a-z、0-9、_#$ 。

5)Oracle 在创建表时,表名会自动转换大写。Oracle 对表名大小写不敏感。如果在定义表名时含有特殊符号,或者用小写字母来定义表名则需要在表名两侧添加双引号。

数据库中的约束类型

1)主键约束(Primay Key Constraint)

唯一性,非空性。

2)唯一约束 (Unique Constraint)

唯一性,可以空,但只能有一个。

3)检查约束 (Check Constraint)

对该列数据的范围、格式的限制(如:年龄、性别等)。

4)非空约束 (Not Null Constraint)

该列不允许包含空值。

5)外键约束 (Foreign Key Constraint)

需要建立两表间的关系并引用主表的列。

简单的SQL语句操作

代码示例:

--DQL(Data Query Language):数据查询语言,使用select 语句
-- 语法: select 列名1,列名2... from 表名 [where 子语句]
--1.查询员工编号,名字,姓氏(查询部分列)
select employee_id,first_name,last_name from employees 
--2.查询员工表中的所有列(使用*代替所有列)
select * from employees
--3.查询员工的编号,名字,姓氏(支持四则运算)
select employee_id,last_name,first_name from employees
select (1*1-100+200)/101 from employees
--4.查询员工的工号,名字,姓氏,年薪,并且为列命名别名(as关键字)
select employee_id as 工号,last_name as 名字,first_name as 姓氏,salary*12 as 年薪 from employees
select employee_id 工号,last_name as名字,first_name as 姓氏, salary*12 年薪 from employees
--5.查询员工的工号和姓名(使用||连接查询内容)
select employee_id 编号,first_name||' '||last_name 姓名 from employees
--6.精确查找/(等值查找)(where 列名=值)(需求:查找工号为100的员工)
select * from employees where employee_id=100
--7.范围查找/(非等值查找)
select * from employees  where salary>=2000 and salary<=3000
select * from employees where salary between 2000 and 3000
--8.模糊查找:使用like关键字,(%:代表任意长度,任意字符, _:代表任意字符)
--a.查询以M开头的员工名字
select * from employees where last_name like 'M%'
--b.查询以s结尾的员工名字
select * from employees where last_name like '%s'
--c.查询含有o的员工名字
select * from employees where last_name like'%o%'
--d.查询姓氏中以P开头后边跟3个字符的员工信息
select * from employees where last_name like'P___'
--9.查询员工的薪水,去掉重复行(distinct)
select * from employees 
--10.查询manager_id 为空的员工信息
select * from employees where manager_id is null
--11.查询manager_id 不为空的员工信息
select * from employees where manager_id is not null

你可能感兴趣的:(oracle,number,转integer)