Oracle和MySQL同为数据库区别如下:
MySQL:免费,安装使用都相对比较简便,适合小型企业使用,属轻级。
Oracle:收费,相比较MySQL比较复杂,不过数据库服务更完善(权限,并发,事务,一致性);更适合中大型企业使用,属重级。
共同点:都属于关系型数据库 RDBMS。
关系型数据库与非关系型数据库区别如下:
一、关系型数据库
关系型数据库最典型的数据结构是表,由二维表及其之间的联系所组成的一个数据组织
优点:
1、易于维护:都是使用表结构,格式一致;
2、使用方便:SQL语言通用,可用于复杂查询;
3、复杂操作:支持SQL,可用于一个表以及多个表之间非常复杂的查询。
缺点:
1、读写性能比较差,尤其是海量数据的高效率读写;
2、固定的表结构,灵活度稍欠;
3、高并发读写需求,传统关系型数据库来说,硬盘I/O是一个很大的瓶颈。
二、非关系型数据库
非关系型数据库严格上不是一种数据库,应该是一种数据结构化存储方法的集合,可以是文档或者键值对等。
优点:
1、格式灵活:存储数据的格式可以是key,value形式、文档形式、图片形式等等,文档形式、图片形式等等,使用灵活,应用场景广泛,而关系型数据库则只支持基础类型。
2、速度快:nosql可以使用硬盘或者随机存储器作为载体,而关系型数据库只能使用硬盘;
3、高扩展性;
4、成本低:nosql数据库部署简单,基本都是开源软件。
缺点:
1、不提供sql支持,学习和使用成本较高;
2、无事务处理;
3、数据结构相对复杂,复杂查询方面稍欠。
非关系型数据库的优势:
1.性能:NOSQL是基于键值对的,可以想象成表中的主键和值的对应关系,而且不需要经过SQL层的解析,所以性能非常高。
2.可扩展性:同样也是因为基于键值对,数据之间没有耦合性,所以非常容易水平扩展。
关系型数据库的优势:
1.复杂查询:可以用SQL语句方便的在一个表以及多个表之间做非常复杂的数据查询。
2.事务支持:使得对于安全性能很高的数据访问要求得以实现。
对于这两类数据库,对方的优势就是自己的弱势,反之亦然。
非关系型数据库的分类和比较:
1、文档型
2、key-value型
3、列式数据库
4、图形数据库
连接方式:
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和HR需要登录SYSTEM解锁权限设置密码
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数据
———————————————————分割线———————————————————
2020-02-21PM
alter使用:
向已经创建的表中增加一个新列
alter table tableName add columnName dataType;
alter table tb_shop add memo varchar2(100);
修改表中指定列的数据类型和类型长度
alter table tableName modify columnName dataType;
alter table tb_shop modify memo varchar2(50);
删除表中指定的列
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;
序列
是一个命名的顺序编号生成器,它能以串行的方式生成一系列顺序整数
create sequence seq_name start with 1;
NEXTVAL列返回序列生成的下一个值
CURRVAL列返回序列生成的当前值
分页SQL
使用RowNum实现排序功能
RowNum是一个伪列,它会根据返回的记录生成一个序列化的数字。分页
select rownum rn,t.* from tableName;
示例:select * from (
select rownum rn,t.* from emp t
)where rn<10 and rn>5
———————————————————分割线———————————————————
1. JDBC的含义
JDBC就是Java中连接数据库的一个桥梁
JDBC: java database connectivity的简称是SUN公司提供的一套操作数据库的标准规范,各大数据库厂商按此规范(接口)来实现操作数据库的驱动。JDBC和数据库驱动之间的关系是接口和实现类的关系。
JDBC技术就是使用java代码(程序)发送sql语句的技术
Java和数据交互的通道, JDBC体系结构是用于Java应用程序连接数据库的标准方法。
JAVA只需要提供一套统一接口,而数据库厂商提供对应自己厂商的驱动程序,也是就对应到jar包 Oracle的jar包对应的ojdbc6.jar、ojdbc14.jar
2. Eclipse连接Oracle服务端
1.选择 Window – show view – Data Source Explorer
2.新建数据连接,选择Oracle模板
3.选择对应Oracle版本 添加本地jar包
4. 添加jar包后,回退上一步窗口,补充jdbc连接数据 测试一下
5. 打开Open SQL Scrapbook,测试真实SQL语句.
3. JDBC编程
1. 创建java项目
2. 导入参数文件 .properties(注意用户名和密码是否正确)
3. 导入JDBC工具类
4. 调用工具类,测试查。步骤:
//调用工具类,打开数据库连接
//准备sql
//预装载sql
//执行sql
//收集返回参数(结果集或受影响行数)
//关闭对应流
5. 复制代码到dao层,完成CRUD操作
查 对应 ps.executeQuery()查询需要返回结果集
增、删、改 对应 ps.executeUpdate()增删改需要返回受影响行数