SQL 명령어는 표준이 제정되며 각 관계형 DB 회사는 표준을 90% 따름
10% 정도에 대해 일부 사용법이 틀려질 수 있으며 각각의 차이점을 아래에 정리함
강의는 오라클을 기본으로 진행되며 Mysql 은 오라클기준으로 달라진 차이점만 체크하기로 함
- Mysql Workbench
- Mysql SQL
- Oracle SQL
| 구분 | oracle | mysql |
|---|---|---|
| 정수 | number | int |
| 실수 | number | double |
| 문자 | varchar2, char | varchar, char |
| 날짜 | date | datetime, date, time |
| 2진데이터 | blob | mediumblob, longblob |
-- 테이블 정보 보기
select * from user_tables;
-- 인덱스 정보 보기
select * from user_indexes;
예)
-- 테이블 정보 보기
select * from information_schema.tables;
-- 유저 정보 보기
use mysql;
select * from user;
select nvl(null,0) from dual;
select ifnull(null,0) from dual;
select sysdate from dual;
select sysdate() from dual;
select now() from dual;
select decode('a', 'a','A', 'B') from dual;
select case when 'a'=='a' then 'A'
else 'B'
end
from dual;
select to_number('1') from dual;
select cast('1' as char) from dual;
create sequence sq_sample
increment by 1
start with 1
minvalue 1
maxvalue 99999999;
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;
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;
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;