+ 00 00 0000

Have any Questions?

20_Simple Coding – Mysql – Oracle 차이점 – 기본 요약

20_Simple Coding – Mysql – Oracle 차이점 – 기본 요약

📃 요약

SQL 명령어는 표준이 제정되며 각 관계형 DB 회사는 표준을 90% 따름
10% 정도에 대해 일부 사용법이 틀려질 수 있으며 각각의 차이점을 아래에 정리함
강의는 오라클을 기본으로 진행되며 Mysql 은 오라클기준으로 달라진 차이점만 체크하기로 함

요소 기술 :

– Basic : SQL

📃 기술 구현

스펙 :

- Mysql Workbench
- Mysql SQL
- Oracle SQL

📃 DB / DBMS 정의

1. 컬럼 자료형 비교

구분oraclemysql
정수numberint
실수numberdouble
문자varchar2, charvarchar, char
날짜datedatetime, date, time
2진데이터blobmediumblob, longblob

2. 메타데이터 비교

  • oracle : 딕셔너리 뷰 조회

    -- 테이블 정보 보기
    select * from user_tables;

— 인덱스 정보 보기
select * from user_indexes;

- mysql : mysql db, information_schema
```sql
예)
-- 테이블 정보 보기
select * from information_schema.tables;

-- 유저 정보 보기
use mysql;
select * from user;</code></pre>
<h3>3. 함수 비교</h3>
<h4>1) nvl -> ifnull</h4>
<ul>
<li>
<p>oracle</p>
<pre><code class="language-sql">select nvl(null,0) from dual;</code></pre>
</li>
<li>
<p>mysql</p>
<pre><code class="language-sql">select ifnull(null,0) from dual;</code></pre>
</li>
</ul>
<h4>2) sysdate -> sysdate(), now()</h4>
<ul>
<li>
<p>oracle</p>
<pre><code class="language-sql">select sysdate from dual;</code></pre>
</li>
<li>
<p>mysql</p>
<pre><code class="language-sql">
select sysdate() from dual;</code></pre>
</li>
</ul>
<p>select now() from dual;</p>
<pre><code>
#### 3) decode 문 -> case 문
- oracle
```sql 
select decode('a', 'a','A', 'B') from dual;
  • mysql
    select case when 'a'=='a' then 'A'
    else 'B'
    end
    from dual;

4) to_number -> cast


  • oracle


    select to_number('1') from dual;


  • mysql


    select cast('1' as char) from dual;

5) 시퀀스 -> 컬럼에 예약어 부여 : auto_increment


  • oracle


    create sequence sq_sample 
    increment by 1
    start with 1
    minvalue 1
    maxvalue 99999999;


  • mysql



    create table sample (
    id int auto_increment, // 1씩 자동증가
    name varchar(1000)
    );

— auto_increment 값 확인
show table status where name = ‘sample’;

— auto_increment 초기화
— truncate table 시에 자동 초기화 됨 : 1
alter table sample auto_increment = 1;

#### 6) 서브쿼리 -> 서브쿼리에 반드시 별칭을 붙여야함

#### 7) delete 테이블명 -> delete from 테이블명 사용

#### 8) outer join (+) -> left(right) outer join .. on 조인조건 사용(ansi 조인 사용)
- oracle
```sql 
1) left outer join
select a.*, b.* 
from a, b
where a.id = b.id(+);

2) right outer join
select a.*, b.* 
from a, b
where a.id(+) = b.id;
  • mysql

    1) left outer join
    select a.*, b.*
    from a left outer join on a.id = b.id;

2) right outer join
select a., b.
from a right outer join on a.id = b.id;


#### 9) connect by -> with 문을 이용한 재귀쿼리 사용

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다