前言
已经入职几个月的时间了,不同于平常学习使用的 MySQL,公司内使用的是 Oracle 数据库。针对以前 MySQL 的学习笔记,这里主要总结下 Oracle 数据库,以及其与 MySQL 的一些区别。
用户与存储区别
mysql:
- 对数据的管理可以有很多个用户,登录用户后可以看到该用户权限下的所有的数据库
- 一般来讲都是一个项目对应着一个数据库,该数据库下存放着所有该项目所要用到的表,视图等东西
- 查看所有的数据库命令:show databases;
- 查看某数据库下的所有表命令:show tables;
oracle:
- 对数据的管理同样有着很多个用户,同样的登录用户后可以看到该用户权限下的所有东西
- 数据库只有一个,但是可以有很多个表空间
【表空间就像是mysql中的一个个的数据库,用来区分项目与项目之间的所属东西】 - oracle多了一个东西叫做数据字典,这其实就是系统字典表,我们只有查看的权限。系统字典表有很多张,需要细致的去学习
- 查看所有表空间命令:select tablespace_name from dba_tablespaces;
【dba_tablespaces – 所有表空间数据字典,user_tablespaces --当前用户权限下的所有表空间】 - 查看当前用户下的所有表及对应的表空间命令:select table_name,tablespace_name from dba_tables;
总结
Oracle通过数据库用户,实现了对象级控制数据库访问和使用的机制。而数据库用户是定义在数据库中一个名称,是Oracle数据库的基本访问机制,且每一个数据库用户都拥有自己的数据库,拥有不同的权限,能够根据权限访问其他用户的数据库信息。一个实例有多个用户,每个用户默认拥有一个表空间,也可以操作多个表空间,多个用户可以同时用一个表空间。
字段数据类型区别
mysql:
- 数值型:tinyint(超小整数)、smallint(小整数)、mediumint(中整数)、int(整数)、bigint(大整数)、float(单精度浮点型)、double(双精度浮点型)
- 字符型:char(定长字符串)、varchar(变长字符串)、blob(二进制长文本)、text(长文本)、longblob(二进制超长文本)、longtext(超长文本)
- 日期类型:date(日期)、time(时间)、year(年份)、datetime(时期加时间)、timestamp(时间戳)
oracle:
- 数值型:number(m,n) 表示数据长度,n表示小数点位数;
- 字符型:char(n) 用于标识固定长度的字符串;varchar2(n) 可变长度的字符串类型,最长为4000,不可以存储空字符串"",没有数据时为null;blob 相当于 mysql 的 longblob;clob 相当于mysql的 longtext
- 日期类型:date、timestamp