오라클 SQL MySQL - olakeul SQL MySQL

들어가며


오라클 디비와 mysql  디비의 사용에 따라 차이점을 비교 정리한다.

1. 공백치환 함수 ( NULL값 확인 함수 )

ORACLE에서는 NVL함수를 사용하지만 MYSQL에서는 IFNULL을 사용한다.

Oracle : SELECT NVL('컬럼명', '') FROM DUAL;

MySql : SELECT IFNULL('컬럼명', '') FROM DUAL;

2. 현재 날짜시간

ORACLE에서는 SYSDATE를 사용하지만 MYSQL에서는 NOW()함수를 사용한다.

Oracle : SYSDATE

Mysql  : NOW() 

3. 날짜포멧 

ORACLE에서는 날짜를 STRING으로 변경시 TO_CHAR()함수를 사용하지만 MYSQL에서는 DATE_FORMAT()함수를 사용한다.

Oracle : TO_CHAR(sysdate,'MMDDYYYYHH24MISS')

Mysql  : DATE_FORMAT(now(),'%Y%m%d%H%i%s')  -> 여기서 대문자Y는 4자리 년도(2021), 소문자 y는 2자리 년도(21)

4. 날짜 포멧 : 요일

Oracle : 요일이 1~7로 인식함  -> TO_CHAR(SYSDATE 1, 'D') 

Mysql : 요일이 0~6으로 인식   -> DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 1 DAY), '%w')

* 참고로 자바스크립트가 0~6으로 인식하기에 Oracle 쿼리에서 -1을 해서 맞추는 경우가 많다.

* 요일 순서 : 일,월,화,수,목,금,토

5. Like절 '%' 사용법

ORACLE에서는 문자와 문자를 합칠때 '||'을 사용하고, MYSQL에서는 문자와 문자를 합칠때 CONCAT()함수를 사용합니다.

Oracle : SELECT USER_ID FROM KGON WHERE USER_ID LIKE '%' || '문자' || '%'

Mysql : SELECT USER_ID FROM KGON WHERE USER_ID LIKE CONCAT('%','문자','%')

6. 형변환

ORACLE에서는 TO_CHAR, TO_NUMBER을 사용하여 형을 변환하지만 MYSQL에서는 CAST를 사용하여 형을 변환합니다.

Oracle : SELECT TO_CHAR(632) FROM DUAL (To_char, To_number 등)

Mysql : SELECT CAST(1234 AS CHAR) FROM DUAL

7. 대소문자 구분함

Oracle : 구분없음

Mysql : 기본적으로 구분하나, 설정으로 변경 가능하다.

8. ROWNUM

오라클 SQL MySQL - olakeul SQL MySQL

Oracle : where 절에 rownum > 5 and rownum =< 10 

Mysql : where절 없이 limit 5,10

9. Sequence(시퀀스)는 둘 다 사용자함수를 만들어서 아래와 같이 사용

Oracle : 시퀀스명.nextval

Mysql : 시퀀스명.currval

10. 문자열 자르기

Oracle: SUBSTR(문자열, 1, 10)

Mysql: SUBSTRING(문자열, 1,10), LEFT(문자열, 3), RIGHT(문자열, 3)

11. 문자열 합치기 ( - 문자열을 연결한다고 가정)

Oracle: 문자열(또는 컬럼) ||' - '

Mysql: CONCAT(문자열(또는 컬럼), ' - ')

12. 예약어가 컬럼명일 때

Oracle: 컬럼명을 따옴표(")로 감싸기 (예: select "column" from tab)

Mysql: 컬럼명을 TAB 키 위에 있는 ` 키 ( Single quotation )로 감싸기

13. 저장프로시저 있는지 여부 파악해서 Create 하기

Oracle: CREATE OR REPLACE PROCEDURE 프로시저명

Mysql: DROP PROCEDURE IF EXISTS 프로시저명; 을 한 뒤에 CREATE PROCEDURE 프로시저명

14. 페이징처리가 다름

ORACLE은 ROWNUM을 이용하여 WHERE에서 BETWEEN으로 1~10번째자료를 나타내고,

MYSQL은 LIMIT를 사용하여 1~10번째자료를 나타냄

Oracle : SELECT * FROM ( SELECT ROWNUM , A.* FROM (SELECT * FROM KGON) A )WHERE ROWNUM BETWEEN 0 AND 10

Mysql : SELECT * FROM KGON LIMIT 0, 10

계속 업데이트....

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

작가: Laura McKinney

창조 날짜: 10 4 월 2021

업데이트 날짜: 17 구월 2022

오라클 SQL MySQL - olakeul SQL MySQL
동영상: SQL 대 MySQL | SQL과 MySQL의 차이점 | 인텔리파트

주요 차이점 : Oracle Database는 객체 관계형 데이터베이스 관리 시스템 (ORDBMS)입니다. MySQL은 오픈 소스 관계형 데이터베이스 관리 시스템 (RDBMS)입니다. MySQL은 세계에서 가장 많이 사용되는 RDBMS이며 여러 데이터베이스에 대한 다중 사용자 액세스를 제공하는 서버로 실행됩니다.

오라클 SQL MySQL - olakeul SQL MySQL

Oracle Database와 MySQL은 모두 Oracle Corporation에서 현재 생산 및 관리하는 데이터베이스 관리 시스템입니다. Oracle Corporation은 미국 캘리포니아 주 레드 우드 시티에 본사를 둔 다국적 컴퓨터 기술 회사입니다. 그것은 개발 및 마케팅 컴퓨터 하드웨어 시스템 및 엔터프라이즈 소프트웨어 제품 전문. 또한 미들 티어 소프트웨어, 전사적 자원 관리 소프트웨어 (ERP), 고객 관계 관리 소프트웨어 (CRM) 및 공급망 관리 (SCM) 소프트웨어의 데이터베이스 개발 및 시스템을위한 도구를 구축합니다.

Oracle Database는 객체 관계형 데이터베이스 관리 시스템 (ORDBMS)입니다. 일반적으로 Oracle RDBMS 또는 간단히 Oracle이라고합니다. SDL (Software Development Laboratories)은 오라클 소프트웨어의 원본 버전을 개발했습니다.

MySQL은 오픈 소스 관계형 데이터베이스 관리 시스템 (RDBMS)입니다. MySQL은 공식적으로 "My S-Q-L"로 발음되지만, "My Sequel"이라고도합니다. 그것은 공동 설립자 인 Michael Widenius의 딸 My의 이름을니다. SQL은 구조화 된 u 리 언어의 약자입니다. MySQL은 세계에서 가장 많이 사용되는 RDBMS이며 여러 데이터베이스에 대한 다중 사용자 액세스를 제공하는 서버로 실행됩니다. MySQL은 단일 영리 목적 회사 인 스웨덴의 MySQL AB가 소유하고 후원했습니다. MySQL AB는 현재 Oracle Corporation 소유입니다.

MySQL은 웹 애플리케이션에서 널리 사용되는 데이터베이스입니다. 이것은 널리 사용되는 'LAMP'오픈 소스 웹 애플리케이션 소프트웨어 스택과 다른 AMP 스택의 중심 구성 요소입니다. LAMP는 "Linux, Apache, MySQL, Perl / PHP / Python"의 약자입니다. MySQL은 종종 TYPO3, Joomla, WordPress, phpBB, MyBB, Drupal 등과 같이 완전한 기능을 갖춘 데이터베이스 관리 시스템을 필요로하는 자유 소프트웨어 오픈 소스 프로젝트에서 사용됩니다. MySQL은 또한 많은 유명 인사, 구글, 페이스 북, 트위터, 플리커, 노키아 닷컴, 유튜브 등 세계적인 규모의 웹 제품을 선보였다.

오라클과 MySQL의 주된 차이점은 MySQL은 오픈 소스이지만 오라클은 그렇지 않다는 사실입니다. 그러나 오라클은 MySQL보다 훨씬 강력한 소프트웨어로 간주됩니다.

오라클과 MySQL의 다른 점 :

오라클 SQL MySQL - olakeul SQL MySQL

  • 오라클은 인라인 뷰, 역할 기반 보안, 고급 복제 등을 제공하지만 MySQL은 그렇지 않습니다.
  • 오라클은 절차 적 언어를 통해 데이터베이스 내에 내장 된 프로그램의 작성을 지원하며, 독립적으로 실행되거나 특정 이벤트에 의해 트리거 될 수 있습니다.
  • 오라클은 광범위한 기능을 갖추고 있으므로 대규모 배치에 적합합니다.
  • 오라클의 대부분의 에디션에는 소프트웨어를 사용하기 위해 필요한 높은 라이센스 비용이 있습니다. Oracle Express는 무료로 제공됩니다.
  • MySQL은 무료 오픈 소스 프로그램입니다. 따라서 일반 웹 게시자 및 중소기업이 쉽게 접근 할 수 있습니다.
  • MySQL은 GNU GPL 라이센스하에 제공되며 기본적으로 누군가가 사용할 수있는 다른 저작물이 동일한 라이센스 하에서 공유되는 한 사용할 수 있습니다.
  • 오라클은 종종 거대 기업으로 제한됩니다.
  • 오라클은 SQL 외에도 Pl-SQL을 지원합니다. MySQL은 SQL 만 지원합니다.
  • Oracle은 행 잠금과 같은 보안 기능을 제공하며, MySQL은 열 잠금 기능을 제공합니다.
  • 오라클은 로깅 할 때 사용자 이름, 암호 및 프로파일 유효성 검사가 필요하고 Mysql에는 사용자 이름, 암호 및 호스트 만 필요합니다.
  • Oracle9i Database는 개별 세션에 대한 임시 테이블 사용을 지원하거나 모든 사용자에게 전역 테이블 사용을 지원합니다.
  • MySQL은 가볍고 안정적이며 다중 클라이언트 프로그램에 연결할 수 있습니다.
  • MySQL은 데이터 파티션을 지원하지 않으므로 각 데이터 파일 세트마다 서버가 필요합니다. 확장 성은 단일 서버의 크기로 제한됩니다.
  • 오라클과 비교할 때, MySQL에는 테이블 스페이스, 역할 관리, 스냅 샷, 동의어 및 패키지가 없습니다.