当前位置:   article > 正文

Oracle和MySQL数据库的比较_mysql喝oracle数据量对比

mysql喝oracle数据量对比
  • 本次使用Oracle11g和MySQL5.0作比较,目的是为了整理和巩固所学的数据库知识,也为了加深印象.(本人菜鸟,请大神们多多指教)
不同点
  1. 所占内存不同
  • Oracle11g在官网上下载的时候显示大约2g大小的解压包
    在这里插入图片描述
  • 而MySQL5.0版本有windows的安装程序,差不多40m左右
    在这里插入图片描述
  1. 所支持的SQL语句略有不同
  • Oracle中除了支持标准的SQL语句之外,还定义有Oracle独有的SQL语句,例如日期函数,
  • 在Oracle中存在一个日期伪列SYSTDATE,可以通过这个日期伪列列出当前时间
  • 要在Oracle中实现emp分页,需要通过子查询的方式实现,大致如下(currentpage表示当前所在页数,linesize表示每页显示数据个数)
SELECT empno,ename,job
FROM(
	SELECT empno,ename,job,ROWNUM rn FROM emp WHERE ROWNUM <= currentpage*linesize
)temp
WHERE temp.rn > (currentpage-1)*linesize;
  • 1
  • 2
  • 3
  • 4
  • 5

在这里插入图片描述

  • 而在MySQL中实现要实现分页主需要在查询语句的后面添加一个 limit 关键字即可
  • 例如在MySQL中定义有一个news表,如果要实现news表的分页查询在MySQL中的SQL语句大致如下
select * from news limit 5,10;
  • 1

在这里插入图片描述

  1. 事务处理不同
  • 在Oracle中创建的数据表都可以使用进行事务处理,例如数据回滚,事物提交等等.
  • 而在MySQL中有两种引擎,一种是没有进行事物处理的,还有一种是可以进行事物处理的,在MySQL中创建一个数据表的时候在语句后面添加一个engine="innodb"表示可以进行事物处理
DROP TABLE news;
CREATE TABLE news(
	nid BIGINT 	AUTO_INCREMENT,
	price DOUBLE,
	title VARCHAR(50),
	CONSTRAINT pk_nid PRIMARY KEY(nid)
)engine="innodb";
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
相同点
  • 任何数据库如果要应用到程序之中都需要使用到JDBC技术,而Oracle和MySQL的jdbc操作流程基本一样.
  • MySQL在Java程序中的jdbc操作
package mao.shu.jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

public class MySQLJDBC {
	//定义mysql数据库的加载程序类
	private static final String DRIVER_MYSQL="org.gjt.mm.mysql.Driver";
	//定义jdbc的连接地址
	private static final String DBURL_MYSQL="jdbc:mysql://localhost:3306/mldn";
	//定义mysql数据库的用户名
	private static final String USER = "root";
	//定义连接用户的密码
	private static final String PASSWORD="mysqladmin";
	public static void main(String args[])throws Exception{
		//加载数据库驱动程序类
		Class.forName(DRIVER_MYSQL);
		//通过DriverManager类得到数据库连接对象
		Connection conn = DriverManager.getConnection(DBURL_MYSQL, USER, PASSWORD);
		
		//定义sql查询语句
		String sql ="SELECT nid,price,title FROM news LIMIT ?,?";
		PreparedStatement psd = conn.prepareStatement(sql);
		Long currentPage = 1L;
		Long linesize = 5L;
		psd.setLong(1, (currentPage-1)*linesize);
		psd.setLong(2, linesize);
		ResultSet rest = psd.executeQuery();
		while(rest.next()){
			System.out.println(rest.getLong(1)+"     "+rest.getDouble(2)+"      "+rest.getString(3));
		}
		//关闭数据库连接
		conn.close();
	}
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38

在这里插入图片描述

  • 示例:Oracle的jdbc操作
package mao.shu.jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;


public class OracleLJDBC {
	//定义oracle数据库的加载程序类
	private static final String DRIVER_ORACLE="oracle.jdbc.driver.OracleDriver";
	//定义jdbc的连接地址
	private static final String DBURL_ORACLE="jdbc:oracle:thin:@localhost:1521:mldn";
	//定义oracle数据库的用户名
	private static final String USER = "scott";
	//定义连接用户的密码
	private static final String PASSWORD="tiger";
	public static void main(String args[])throws Exception{   
		//加载数据库驱动程序类  
		Class.forName(DRIVER_ORACLE);
		//通过DriverManager类得到数据库连接对象
		Connection conn = DriverManager.getConnection(DBURL_ORACLE, USER, PASSWORD);
		
		//定义sql查询语句
		String sql =" SELECT empno,ename,job "
					+" FROM( "
					+" SELECT empno,ename,job,ROWNUM rn FROM emp WHERE ROWNUM <= ? "
					+" )temp "
					+"WHERE temp.rn > ?";
		PreparedStatement psd = conn.prepareStatement(sql);
		int currentPage = 1;
		int linesize = 5;
		psd.setInt(1, currentPage*linesize);
		psd.setInt(2, (currentPage-1)*linesize);
		ResultSet rest = psd.executeQuery();
		while(rest.next()){
			System.out.println(rest.getInt(1)+"     "+rest.getString(2)+"      "+rest.getString(3));
		}
		//关闭数据库连接
		conn.close();
	}
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43

在这里插入图片描述

  • 可以发现两个数据库的jdbc操作中除了基本信息外(驱动程序类,连接路径,用户名,密码,sql语句)之外,操作流程都是一样的,这也就是标准的好处.
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/喵喵爱编程/article/detail/838713
推荐阅读
相关标签
  

闽ICP备14008679号