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
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测试连接
选择 Window – show view – Data Source Explorer
新建数据连接
选择Oracle模板
选择对应Oracle版本
添加本地jar包
添加jar包后,回退上一步窗口,补充jdbc连接数据
测试一下
打开Open SQL Scrapbook,测试真实SQL语句
JDBC编程
创建java项目
导入参数文件 .properties
导入JDBC工具类
调用工具类,测试查。步骤:
3.1 调用工具类,打开数据库连接
3.2 准备sql
3.3 预装载sql
3.4 执行sql
3.5 收集返回参数
3.6 关闭对应流
复制代码到dao层,完成CRUD操作
查 对应 ps.executeQuery(),返回结果集
修改 对应 ps.executeUpdate(),返回受影响行数