반응형
자료형의 차이에 대해서
실행하는 단축키
실행
1. 현재 커서의 명령 실행 : Ctrl + Enter
2. 지정블럭 실행 : Ctrl + Shift + Enter
Oracle vs MySql
1. 문자자료형
# Oravle # MySQL
char() char()
varchar2() varchar()
clob text or longtext
2. 숫자
number(p,s) tinyint
number(p) int
int longint
3. 날짜
date datetime
sysdate now(),sysdate()
4. 일련번호
sequence auto_increment <= 자동증가 속성
위의 자료형을 참고해서 MySQL을 사용하여, table을 만들어보자
create table tb1
(
idx int primary key auto_increment,
name varchar(100) not null,
age int default 0,
gender varchar(100) ,
birthday datetime
)
참고로, table을 추가할 때는 Schemas에서 내가 저장할 DB공간을 더블클릭하거나 Set as Default Schema 해주어서, table이 저장될 DB를 지정한다.
주석 남길때의 주의점 : 무조건 한 칸 띄우고 주석을 남긴다.
[ 제약 조건과 insert로 데이터 넣기 ]
-- 성별에 대한 제약조건
alter table tb1
add constraint check_tb1_gender check(gender in ('남자','여자'));
-- sample data
insert into tb1(name,age,gender,birthday) values('일길동',20,'남자','1999-12-31');
-- sample data2
insert into tb1 values(null,'이미자',30,'여자','1995-1-1');
[ MySQL에서의 전체컬럼에서 추가 컬럼 사용 ]
전체 컬럼에서 추가적인 컬럼을 넣으려고 했을때, Oracle SQL문에서는 s로 전체를 지정해놓고, 추가적인 컬럼을 작성해주어야 했다. 허나 MySQL문에서는 s로 전체지정을 해주지 않아도, 추가 연산 컬럼을 넣을 수 있다.
-- 기존 Oracle SQL (MySQL에서도 사용가능)
select
s.*, sapay*0.1 as bonus
from
(select * from sawon)s
-- MySQL
select *, sapay*0.1 as bonus from sawon
[ MySQL에서의 rank() 함수 사용 ]
Oracle SQL에서는 as rank가 예약어로 인식되지 않아서 가능했지만, MySQL에서는 as rank를 사용할 시에, 예약어로 판단되어서 오류가 발생한다.
- MySQL heading 포함 예약어는 사용할 수 없다(rank,avg,....)
정상 실행 완료 (rank1)로 수정
select
s.*, sapay*0.1 as bonus,
rank() over(order by sapay desc) as rank1
from
(select * from sawon)s
MySQL문도 SQL문의 순서는 항상 따른다.
Inline View의 table alias명은 반드시 넣어야한다.
반응형
'데이터베이스↗' 카테고리의 다른 글
DBeaver 초보자드루와 사용방법 (1) | 2024.08.28 |
---|---|
MySQL) 기존 Photo Gallery - Spring Boot , MySQL로 변경 (0) | 2024.08.14 |
MySQL 사용기 (0) | 2024.08.14 |
MySQL 설치 가이드 / 사용하기 (0) | 2024.08.14 |
게시판 페이징 처리 (1) | 2024.07.12 |