什么是数据库
数据库的英文是DataBase,简称DB,顾名思义,就是数据(包括数字、文字、图像、声音、视频等)存放的地方。因此,数据库的主要作用就是用来存储数据的。
什么是关系型数据库管理系统(RDBMS)
关系型数据库管理系统(Relational Database Management System),是将数据组织为相关的行和列的系统,而管理关系型数据库的计算机软件就是关系数据库管理系统,常用的数据库软件有Oracle,Microsoft SQL Server,DB2,MySQL,ProgresSQL等等。
什么是关系型数据库
关系型数据库是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。
什么是Oracle
Oracle,全称甲骨文股份有限公司(甲骨文软件系统有限公司),是全球最大的企业级软件公司,总部位于美国加利福尼亚州的红木滩。1989年正式进入中国市场。2013年,甲骨文已超越 IBM ,成为继 Microsoft 后全球第二大软件公司。Oracle公司的网址为http://www.oracle.com。Oracle在企业的大型应用、海量存储、高性能、高并发、安全性等方面都相当不错,被广泛应用于各个领域。Oracle不仅有数据库产品,而且也是ERP软件的供应商。
Oracle服务端安装
参照其他博客资料,我安装的是Oracle10g简化版,这里要注意的是Oracle XE http端口8080的修改(会与tomcat的端口冲突),解决办法如下:
1.以dba身份登录XE
2.执行下列语句
begin
dbms_xdb.sethttpport('7000');
dbms_xdb.setftpport('0');
end;
/
这样就把默认的8080端口改成7000了,不用重启oracle服务,即时生效!
Oracle的服务端口,默认是1521;sys和system是系统的管理员帐号,默认密码是安装Oracle时指定的口令。
测试是否安装成功:
在安装有oracle的机器上,运行cmd,输入:sqlplus sys/口令@localhost:1521/xe as sysdba
Oracle的服务的了解
数据库实例服务和监听服务必须启动,其他都可以禁用。(如果安装到本机,那么建议全手动。)
数据库实例服务:Oracle+Service+SID,简化版的Oracle默认的sid是xe(邪恶),完整版的Oracle默认的SID是orcl。
监听服务:Oracle+SID+TNSListener。
建议先启动实例服务:OracleServiceXE,再启动监听服务
提醒:每次重启或开启服务的时候,需要等一会再连接。
Oracle客户端的安装和配置
PL/SQL Developer 工具安装,我安装的是绿色免安装版本,网上搜搜,下载安装完毕后,用户名sys和密码登陆,默认库xe,按照SYSDBA连接
Tools->Preferences->工具可以设置SQL行号,关键字自动大写,取消自动升级,设置检查连接等等
Oracle客户端连接知识(客户端连接验证机制、客户端登录身份)
1、客户端连接验证机制
Oracle有三种连接验证机制:
- 操作系统验证(具有sysdba和sysopera的用户)
- 密码文件验证(具有sysdba和sysopera的用户)
- 数据库密码验证(普通用户和超级用户)
超级管理员连接数据库的方式:sqlplus sys/口令@localhost:1521/xe as sysdba
,免登录必须在安装有Oracle服务的服务器上才有效。
免密码登录的原因:oracle安装时自动创建了一个ora_dba的组,并将当前用户放入该组。如果你连接oracle的时候,会优先使用来查找当前用户是否在组中。如果在组中,则不需要密码就可以登录。
免登录要求:必须在安装有Oracle的本机上才能使用。
注意:我们平时用的连接机制是数据库密码验证的机制。
关于验证的优先级顺序:
对于 SYSDBA身份 和 SYSOPER来说,OS验证优先于密码文件认证。因此,在服务器的机器上,你可以无需指定登录用户名或者任意指定登录用户名,均可以登录。
该特性的一个应用场景就是免登录解锁用户:sqlplus / as sysdba
案例:通过超级管理员对Oracle用户解锁和找回密码
先通过超级管理员免密登陆:sqlplus / as sysdba
修改用户密码:alter user 用户名 identified by 密码;
给用户加锁:该用户不能登陆:alter user 用户名 account lock;
给用户解锁:该用户可以登陆:alter user 用户名 account unlock;
提示:
因为不需要密码是不安全的,所以一般用作服务器的话,要在计算机管理中的用户组ora_dba把administrator删除,删除之后登录就需要输入密码了。
conn / as sysdba连接时,使用的是当前登陆操作系统的用户名和密码认证。如果oracle是由当前用户安装的,那它可以成功登陆,通俗点说,当你用“as sysdba”登录时是按照操作系统用户验证的,也就是说oracle认为你都已经是这台电脑的老大了,我oracle没法限制你。
2、客户端登录的身份
Oracle有三种身份登录方式:Normal、sysdba、sysoper
- normal:普通用户身份,默认选项(默认可以不写),用于普通用户登录使用。—记录日志(你的任何操作oracle都会记录一份日志)。
sqlplus scott/tiger@localhost:1521/xe
- sysdba:数据库管理员身份,用于给拥有DBA权限的用户登录使用。(拥有数据库)
该身份可以进行的操作: 打开、关闭数据库服务器, 备份、恢复数据库, 日志归档,会话限制,管理功能,创建数据库等。----操作是不计日志的。 - sysoper:数据库操作员身份,用于给拥有DBA权限的用户登录使用。
该身份可以进行的操作: 打开、关闭数据库服务器, 备份、恢复数据库, 日志归档,会话限制等。----记录日志
作为开发人员,如何选择Oracle的登录身份?
- 普通用户进行数据操作,就用normal。(默认值)
- Sys用户就用sysdba。–(sys相当于mysql:root)
用户和表
默认情况下,完整版的Oracle安装完成后,只解锁两个有效用户:sys,system; scott用户需要解锁。而简化版的Oracle安装完成之后,无scott用户。
【新建Scott用户】
需要我们手动建立和导入:
1、先建立scott用户(必须是sys用户登录进的)
2、右键users,新建,然后设置用户名和密码:用户名为scott密码为tiger
3、添加两个角色
4、完成后,点击apply,使用该用户登录(普通用户登录)
5、登录进去之后,导入表tools->import tables
6、然后就可以查询数据
导入的表结构分析:
ORACLE常用数据类型
说明:
Char类型:定义长度时,如果存储的数据小于长度,空位补空格。固定长度的类型
- 缺点:浪费存储空间,char(3) m 空格空格m,Char类型中存在空格,那么在程序取值比较时容易出错,在ORACLE中使用trim()函数,会造成char类型字段上的索引失效
- 优点:char类型在效率上比着其它字符类型的会快一点
Varchar2类型: 可变长度。存储时如果数据小于长度,varchar的长度按实际存储长度计算
- 优点:节省存储空间 varchar2(3) 你好 你好
- 缺点:效率比char类型低。
注意:varchar2只有Oracle才有的。带2的是Oracle自己增强的数据类型,不是sql99规范中的。
Clob类型:是longtext类型的代替品,存储超大量的字符串。如果varchar存储不了,可以用这个。但效率很低下,而且不能使用上索引。这玩意的存储大小不是按长度存储,按字节数存储的。
- 优点:Blob 存储海量二进制类型。例:电影、音乐、高清图片。
- 缺点:每次存储时都需要转换为二进制进行存储,获取时把二进制转为数据,通常存储电影、音乐时存储的是文件的路径
Oracle所有的数据类型: