初步体验Oracle
oracle 与mysql 对比:
mysql: 免费;小型企业;仅是数据库;轻
oracle:收费, 中大型企业;数据库服务(权限,并发,事务,一致性);更适合集群;重
共同点:都属于关系型数据库 rdbms
非关系型数据库nosql(not only sql ):
redis,mongodb,ssdb,hbase
redis 基于内存存储,key-value数据库,使用比率较高
ssdb 基于硬盘(内存辅助),企图替代redis
mongodb 基于分布式文档存储,集群部署
hbase 基于hdfs存储,是大数据hadoop的子项目,列存储
两种连接方式:
1. 在cmd命令行输入sqlplus
2. plsql/developer连接,操控数据的工具,官方推荐
oracle服务:
oracleservicesid
oracle的核心服务,要启动oracle实例,必须启动该服务
oracleoradb11g_hometnslistener
oracle服务器的监听程序
oraclejobschedulersid
任务调度服务,负责对用户创建的作业按预先设置的时间周期性地进行调度执行,从而实现oracle服务器的自动管理功能
oracledbconsolesid
负责在windows平台下启动oracle企业管理器。oracle 11g企业管理器是一个功能完善的oracle数据库管理工具,可以管理本地数据库环境和网格环境
默认账户:
sys 系统账户,oracle中的超级用户,主要用于维护系统信息和管理实例,数据库中数据字典的所有表和视图都存储在sys模式中
system 用户是oracle中默认的管理员,它拥有dba权限。该用户拥有oracle管理工具使用的内部表和视图,通常通过system用户管理oracle数据库的用户、权限和存储等
scott oracle数据库的一个示范账号。scott用户模式包含4张示范表,scott用户的默认口令为scott
hr 用户,类似于scott用户,示例表更多
常用数据类型:
字符类型
char类型
char表示固定长度字符串,长度不够的用空格补充,最多可以存储2000字节
char类型区分中英文,中文在char中占两个字节,而英文只占一个字节
varchar2类型
varchar2表示可变长度字符串,最多可以存储4000字节,在定义该数据类型时,应该指定其大小。与char类型相比,使用varchar2可以节省磁盘空间
数值类型
number类型可以存储正数、负数、零、定点数和精度为38位的浮点数
number(m,n)。其中,m表示精度,代表数字的总位数;n表示小数点右边数字的位数
日期类型
date类型
用于存储表中的日期和时间数据,取值范围是公元前4712年1月1日至公元9999年12月31日,长度是7,7个字节分别表示年、月、日、时、分和秒
timestamp类型
用于存储日期的年、月、日以及时间的小时、分和秒值。其中,秒值精确到小数点后6位,该数据类型同时包含时区信息
大对象类型
clob大字符串对象类型
clob(character large object)数据类型用于存储可变长度的字符数据,最多可存储4gb数据,用于存储varchar2类型不能存储的长文本信息
blob大二进制类型
blob(binary large object)数据类型用于存储较大的二进制对象,如图形、视频剪辑和声音剪辑等,最多可以存储4gb数据
测试常规crud:
alter使用:
n 向已经创建的表中增加一个新列
n alter table tablename add columnname datatype;
n alter table tb_shop add memo varchar2(100);
n 修改表中指定列的数据类型和类型长度
n alter table tablename modify columnname datatype;
n alter table tb_shop modify memo varchar2(50);
n 删除表中指定的列
n alter table tablename drop column columnname;
sql查询语言主要包括以下4种:
(1)数据定义语言(data definitionlanguae,ddl):用于创建、修改和删除数据库对象,如create table、alter table、drop table等。
(2)数据操纵语句(data manipulation language,dml):用于操纵数据,包括insert、update、delete、select等。
(3)数据控制语言(data control language,dcl):用于执行授予权限和撤销权限的操作,包括grant(授予权限)、revoke(撤销权限)两条命令。dcl语句可以自动提交事务。
(4)事务控制语言(transactional control language,tcl):用于维护数据的一致性,包括commit(提交事务)、rollback(回滚事务)和savepoint(设置保存点)3条语句。
哑表dual
单行单列的表,用于特殊数据的查询
select sysdate from dual;
select sys_guid() from dual;
序列
n 是一个命名的顺序编号生成器,它能以串行的方式生成一系列顺序整数
create sequence seq_name start with 1;
nextval列返回序列生成的下一个值
currval列返回序列生成的当前值
示例:
rownum
是一个伪列,它会根据返回的记录生成一个序列化的数字。分页
select rownum rn,t.* from tablename;
可以使用rownum列返回查询结果集中前n条记录
分页
select * from (
select rownum rn,t.* from emp t
)where rn<10 and rn>5
rowid
rowid就是唯一标志记录物理位置的一个id
jdbc(java database connectivity,java数据库连接)
java和数据交互的通道, jdbc体系结构是用于java应用程序连接数据库的标准方法。
java只需要提供一套统一接口,而数据库厂商提供对应自己厂商的驱动程序,也是就对应到jar包
oracle的jar包对应的 ojdbc6.jar , ojdbc14.jar
jdbc参数
n string driverclass = "oracle.jdbc.driver.oracledriver";
n string url = "jdbc:oracle:thin:@localhost:1521:orcl";
n string user = "scott";
n string password = "123456";
eclipse测试连接
1. 选择 window – show view – data source explorer
2. 新建数据连接
选择oracle模板
3. 选择对应oracle版本
添加本地jar包
4. 添加jar包后,回退上一步窗口,补充jdbc连接数据
测试一下
5. 打开open sql scrapbook,测试真实sql语句
jdbc编程
1. 创建java项目
2. 导入参数文件 .properties
3. 导入jdbc工具类
4. 调用工具类,测试查。步骤:
3.1 调用工具类,打开数据库连接
3.2 准备sql
3.3 预装载sql
3.4 执行sql
3.5 收集返回参数
3.6 关闭对应流
5. 复制代码到dao层,完成crud操作
查 对应 ps.executequery(),返回结果集
修改 对应 ps.executeupdate(),返回受影响行数