왼쪽 상단의 SQL + 아이콘을 누르면 새로운 sql파일이 생성된다.
일반적으로 쿼리를 작성할 때 관리자 계정으로 실행하지 않고 Oracle에서는 SCOTT
과 같은 계정을 만들어 사용하였는데, MySQL에서는 SCHEMA
라는 것을 사용한다.
Schemas를 눌러주면 이미 생성되어 있는 스키마들을 볼 수 있다.
스키마를 생성해주겠다. 스키마 창에서 마우스 오른쪽을 클릭하여 Create Schema...
를 눌러준다.
Name을 설정해주고, charset을 UTF-8
로 설정해준다. 그리고 Apply를 클릭해준다.
Default로 Apply를 해주면된다.
-- team 스키마 사용
USE team;
위 명령을 입력해주면
이렇게 실행이 완료되는것을 Action Output 창에서 볼 수 있다.
MySQL에서 SEQUENCE는 존재하지 않는다.
시퀀스와 같은 역할을 하는 것은 AUTO_INCREMENT
이다.
컬럼을 선언하면서 해당 컬럼 옆에 선언해주면 된다.
주의할 점 :
AUTO_INCREMENT
를 사용하기 위해서는 PK가 필요해서 PK를 CREATE문 안쪽에 선언해주어야 한다.
-- DROP TABLE
DROP TABLE IF EXISTS ATTACH;
DROP TABLE IF EXISTS UPLOAD;
Oracle 때와 달리 '존재한다면'을 뜻하는 IF EXISTS
를 붙여주어야 한다.
CREATE TABLE UPLOAD
(
UPLOAD_NO INT NOT NULL AUTO_INCREMENT, -- AUTO_INCREMENT를 사용하기 위해서는 PK가 필요해서 PK를 CREATE문 안쪽에 선언해주어야 한다.
TITLE VARCHAR(100), -- 제목
CONTENT VARCHAR(100), -- 내용
CREATE_DATE TIMESTAMP, -- 작성일
MODIFY_DATE TIMESTAMP, -- 수정일
CONSTRAINT PK_UPLOAD PRIMARY KEY(UPLOAD_NO)
);
CREATE TABLE ATTACH
(
ATTACH_NO INT NOT NULL AUTO_INCREMENT, -- SEQ = AUTO_INCREMENT
PATH VARCHAR(300), -- 파일의 경로
ORIGIN VARCHAR(300), -- 파일의 원래 이름
FILESYSTEM VARCHAR(42), -- 파일의 저장된 이름
DOWNLOAD_CNT INT, -- 다운로드 횟수
HAS_THUMBNAIL INT, -- 썸네일이 있으면 1, 없으면 0
UPLOAD_NO INT, -- 게시글번호, FK
CONSTRAINT PK_ATTACH PRIMARY KEY(ATTACH_NO),
CONSTRAINT FK_ATTACH_UPLOAD FOREIGN KEY(UPLOAD_NO) REFERENCES UPLOAD(UPLOAD_NO)
);
데이터타입만 바꿔주면 크게 바뀌는 것은 SEQUENCE가 있다.
1) 정수타입
정수타입은 MySQL에서 크게 3가지로 구분할 수 있다.
INT
,SMALLINT
,BIGINT
데이터타입 | 정의 |
---|---|
TINYINT(n) | 정수형 데이터 타입(1byte). 0~255수를 표현할 수 있다. |
SMALLINT(n) | 정수형 데이터 타입(2byte). 0~65536수를 표현할 수 있다. |
MEDIUMINT(n) | 정수형 데이터 타입(3byte). 0~16777215수를 표현할 수 있다. |
INT(n) | 정수형 데이터 타입(4byte). 0~4294967295수를 표현할 수 있다. |
BIGINT(n) | 정수형 데이터 타입(8byte). 무제한 수를 표현할 수 있다. |
2) 고정 소수점타입
데이터타입 | 정의 |
---|---|
DECIMAL(전체길이,소수점아래길이) | 고정 소수점 데이터 타입(전체길이만큼의 정수와 소수점아래길이(소수점)으로 표현하여 최대 65자리까지 표현할 수 있다.) |
3) 부동 소수점타입
데이터타입 | 정의 |
---|---|
FLOAT(전체길이,소수점아래길이) | 부동 소수점 데이터 타입(4byte). 정밀도가 작은 부동소수점을 표현한다. |
DOUBLE(전체길이,소수점아래길이) | 부동 소수점 데이터 타입(8byte). 보통 크기의 부동소수점을 표현한다. |
데이터타입 | 정의 |
---|---|
CHAR(n) | 고정 길이 데이터 타입(최대 255byte)- 지정된 길이보다 짦은 데이터 입력될 시 나머지 공간 공백으로 채워진다. |
VARCHAR(n) | 가변 길이 데이터 타입(최대 65535byte)- 지정된 길이보다 짦은 데이터 입력될 시 나머지 공간은 채우지 않는다. |
TINYTEXT(n) | 문자열 데이터 타입(최대 255byte) |
TEXT(n) | 문자열 데이터 타입(최대 65535byte) |
MEDIUMTEXT(n) | 문자열 데이터 타입(최대 16777215byte) |
LONGTEXT(n) | 문자열 데이터 타입(최대 4294967295byte) |
JSON | JSON 문자열 데이터 타입 - JSON 형태의 포맷을 꼭 준수해야 한다. |
데이터타입 | 정의 |
---|---|
DATE | 날짜를 표현하는 타입 (3byte). 1000-01-01 ~ 9999-12-31 |
DATETIME | 날짜와 시간을 같이 나타내는 타입 (8byte). 1000-01-01 00:00:00 ~ 9999-12-31 23:59:59 |
TIMESTAMP | INSERT, UPDATE 연산에 유리하다.(4byte). 1970-01-01 00:00:00 ~ 2037-01-19 03:14:07 |
TIME | 시간을 표현하는 타입 (3byte). -838:59:59 ~ 838:59:59 |
YEAR | 연도를 나타낸다. (1byte). 1901 ~ 2155, 70 ~ 69 (1970~2069) |