[ Database ] MySQL) SQL파일 생성, SCHEMA생성, 기본적인 문법과 데이터타입 정리

duck-ach·2022년 12월 13일
0

DATABASE

목록 보기
4/7

SQL 생성


왼쪽 상단의 SQL + 아이콘을 누르면 새로운 sql파일이 생성된다.

SCHEMA 생성

일반적으로 쿼리를 작성할 때 관리자 계정으로 실행하지 않고 Oracle에서는 SCOTT과 같은 계정을 만들어 사용하였는데, MySQL에서는 SCHEMA라는 것을 사용한다.


Schemas를 눌러주면 이미 생성되어 있는 스키마들을 볼 수 있다.


스키마를 생성해주겠다. 스키마 창에서 마우스 오른쪽을 클릭하여 Create Schema...를 눌러준다.


Name을 설정해주고, charset을 UTF-8로 설정해준다. 그리고 Apply를 클릭해준다.

Default로 Apply를 해주면된다.

스키마 사용

-- team 스키마 사용
USE team;

위 명령을 입력해주면

이렇게 실행이 완료되는것을 Action Output 창에서 볼 수 있다.

SEQUENCE

MySQL에서 SEQUENCE는 존재하지 않는다.
시퀀스와 같은 역할을 하는 것은 AUTO_INCREMENT이다.
컬럼을 선언하면서 해당 컬럼 옆에 선언해주면 된다.

주의할 점 : AUTO_INCREMENT를 사용하기 위해서는 PK가 필요해서 PK를 CREATE문 안쪽에 선언해주어야 한다.

DROP TABLE

-- DROP TABLE
DROP TABLE IF EXISTS ATTACH;
DROP TABLE IF EXISTS UPLOAD;

Oracle 때와 달리 '존재한다면'을 뜻하는 IF EXISTS 를 붙여주어야 한다.

CREATE TABLE

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가 있다.

데이터 타입

Number Type

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). 보통 크기의 부동소수점을 표현한다.

String Type

데이터타입정의
CHAR(n)고정 길이 데이터 타입(최대 255byte)- 지정된 길이보다 짦은 데이터 입력될 시 나머지 공간 공백으로 채워진다.
VARCHAR(n)가변 길이 데이터 타입(최대 65535byte)- 지정된 길이보다 짦은 데이터 입력될 시 나머지 공간은 채우지 않는다.
TINYTEXT(n)문자열 데이터 타입(최대 255byte)
TEXT(n)문자열 데이터 타입(최대 65535byte)
MEDIUMTEXT(n)문자열 데이터 타입(최대 16777215byte)
LONGTEXT(n)문자열 데이터 타입(최대 4294967295byte)
JSONJSON 문자열 데이터 타입 - JSON 형태의 포맷을 꼭 준수해야 한다.

Date Type

데이터타입정의
DATE날짜를 표현하는 타입 (3byte). 1000-01-01 ~ 9999-12-31
DATETIME날짜와 시간을 같이 나타내는 타입 (8byte). 1000-01-01 00:00:00 ~ 9999-12-31 23:59:59
TIMESTAMPINSERT, 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)
profile
자몽 허니 블랙티와 아메리카노 사이 그 어딘가

0개의 댓글