首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >oracle,postgre和mysql数据库学习

oracle,postgre和mysql数据库学习

作者头像
IT咸鱼
发布2025-05-20 18:43:19
发布2025-05-20 18:43:19
6550
举报

每天分享技术栈,开发工具等

一、数据库简介与核心区别

‌特性‌

‌Oracle‌

‌PostgreSQL‌

‌MySQL‌

‌类型‌

商业数据库(企业级)

开源数据库(企业级扩展性强)

开源数据库(轻量级)

‌适用场景‌

大型企业、金融、高并发事务处理

复杂查询、地理数据、JSON支持

Web应用、中小型系统

‌事务支持‌

ACID,强一致性

ACID,支持高级事务

ACID(InnoDB引擎)

‌存储引擎‌

单一存储引擎

单一存储引擎(可扩展插件)

多引擎(InnoDB、MyISAM等)

‌开源协议‌

商业授权

MIT许可证

GPL(部分商业版)


二、安装与配置(简化版)

1. Oracle

安装‌:

  • 下载Oracle XE(免费版):Oracle官网
  • Windows需运行安装向导,Linux需配置内核参数。

验证安装‌:

代码语言:javascript
复制
sqlCopy Code


sqlplus sys as sysdba  -- 登录
SELECT * FROM v$version;  -- 查看版本
2. PostgreSQL

安装‌:

  • 下载地址:PostgreSQL官网
  • 安装后默认创建postgres用户,使用psql命令行工具。

验证安装‌:

代码语言:javascript
复制
bashCopy Code


psql -U postgres  -- 登录
SELECT version(); -- 查看版本
3. MySQL

安装‌:

  • 下载社区版:MySQL官网
  • macOS推荐用Homebrew安装:brew install mysql

验证安装‌:

代码语言:javascript
复制
bashCopy Code


mysql -u root -p  -- 登录
SELECT VERSION();  -- 查看版本

三、基础操作对比(以“学生表”为例)

1. 创建表
代码语言:javascript
复制
sqlCopy Code


-- Oracle
CREATETABLE student (
    id NUMBER() PRIMARY KEY,
    name VARCHAR2() NOTNULL,
    birthdate DATEDEFAULT SYSDATE
);

-- PostgreSQL
CREATETABLE student (
    id SERIAL PRIMARY KEY,  -- 自增主键
    name VARCHAR() NOTNULL,
    birthdate TIMESTAMPDEFAULT NOW()
);

-- MySQL
CREATETABLE student (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR() NOTNULL,
    birthdate DATETIME DEFAULTCURRENT_TIMESTAMP
);

区别‌:

  • 自增字段‌:Oracle需手动创建序列(CREATE SEQUENCE),PostgreSQL用SERIAL,MySQL用AUTO_INCREMENT
  • 时间函数‌:Oracle用SYSDATE,PostgreSQL用NOW(),MySQL用CURRENT_TIMESTAMP
2. 插入数据
代码语言:javascript
复制
sqlCopy Code


-- Oracle(需手动指定自增ID)
INSERT INTO student (id, name) VALUES (, '张三');

-- PostgreSQL(自动生成ID)
INSERT INTO student (name) VALUES ('李四');

-- MySQL(自动生成ID)
INSERT INTO student (name) VALUES ('王五');
3. 查询数据
代码语言:javascript
复制
sqlCopy Code


-- Oracle
SELECT*FROM student WHERE id =;

-- PostgreSQL(不区分大小写查询)
SELECT*FROM student WHERE name ILIKE '李%';

-- MySQL(区分大小写查询)
SELECT*FROM student WHERE name LIKE'王%';

区别‌:

  • 字符串查询‌:PostgreSQL支持ILIKE,MySQL仅支持LIKE(默认区分大小写)。

四、核心概念对比

‌功能‌

‌Oracle‌

‌PostgreSQL‌

‌MySQL‌

‌事务隔离级别‌

支持所有SQL标准级别

支持所有级别

默认REPEATABLE-READ

‌JSON支持‌

12c+版本支持

原生JSON类型

5.7+版本支持JSON

‌地理数据‌

需安装Spatial插件

原生支持PostGIS

需第三方扩展

‌存储过程‌

PL/SQL

PL/pgSQL

语法类似SQL


五、今日练习

  1. 安装一种数据库‌(推荐PostgreSQL或MySQL),完成以下操作:
    • 创建student表。
    • 插入3条数据。
    • 编写查询:查找名字包含“张”的学生。
  2. 对比思考‌:
    • 如果需要一个支持地理数据的数据库,你会选哪个?
    • 自增ID的实现方式为何不同?

六、学习建议

  • 重点理解‌:三类数据库的设计哲学(企业级 vs 功能丰富 vs 轻量高效)。
  • 动手实践‌:所有示例必须亲自执行,观察报错信息(如Oracle的VARCHAR2长度限制)。
  • 延伸阅读‌:
    • Oracle官方文档:Oracle Docs
    • PostgreSQL教程:PG Exercises
    • MySQL手册:MySQL Tutorial

通过第一天的学习,你已经掌握了三种数据库的基础操作和核心差异。明天我们将深入SQL高级查询(如JOIN、子查询)的对比!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-03-24,如有侵权请联系 cloudcommunity@tencent.com 删除
目录
  • 一、数据库简介与核心区别‌
  • ‌二、安装与配置(简化版)‌
    • ‌1. Oracle‌
    • ‌2. PostgreSQL‌
    • ‌3. MySQL‌
  • ‌三、基础操作对比(以“学生表”为例)‌
    • ‌1. 创建表‌
    • ‌2. 插入数据‌
    • ‌3. 查询数据‌
  • ‌四、核心概念对比‌
  • ‌五、今日练习‌
  • ‌六、学习建议‌
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档