[MYSQL] 이론 정리 – 계속 추가될 예정

1. 데이터 정의 언어 (DDL : Data Definition Language)

- 데이터베이스를 정의하는 언어이며, 데이터를 생성, 수정, 삭제하는 등의 데이터의 전체의 골격을 결정하는 역할을 하는 언어
- DDL에서는 대부분 데이터베이스나 테이블 이름, 컬럼 이름에 대해 따옴표가 아닌 백틱(`)으로 감싸준다. (속성명은 따옴표 가능)

 

1 ) CREATE : 데이터베이스, 테이블 생성

- 데이터베이스 생성
`CREATE DATABASE `DATABASENAME`;`
- 테이블 생성
`CREATE TABLE `DB_TABLENAME`(
‘속성명 1’ 타입,
‘속성명 2’ 타입,
...
)`

 

ㄱ ) 타입 종류

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

 

- 숫자형 데이터 타입
데이터 유형 정의
TINYINT(n) 정수형 데이터 타입(1byte) -128 ~ +127 또는 0 ~ 255수 표현할 수 있다.
SMALLINT(n) 정수형 데이터 타입(2byte) -32768 ~ 32767 또는 0 ~ 65536수 표현할 수 있다.
MEDIUMINT(n) 정수형 데이터 타입(3byte) -8388608 ~ +8388607 또는 0 ~ 16777215수 표현할 수 있다.
INT(n) 정수형 데이터 타입(4byte) -2147483648 ~ +2147483647 또는 0 ~ 4294967295수 표현할 수 있다.
BIGINT(n) 정수형 데이터 타입(8byte) - 무제한 수 표현할 수 있다.
FLOAT(길이, 소수) 부동 소수형 데이터 타입(4byte) -고정 소수점을 사용 형태이다.
DECIMAL(길이, 소수) 고정 소수형 데이터 타입고정(길이+1byte) -소수점을 사용 형태이다.
DOUBLE(길이, 소수) 부동 소수형 데이터 타입(8byte) -DOUBLE을 문자열로 저장한다.

 
- 날짜형 데이터 타입

데이터 유형 정의
DATE 날짜(년도, 월, 일) 형태의 기간 표현 데이터 타입(3byte)
TIME 시간(시, 분, 초) 형태의 기간 표현 데이터 타입(3byte)
DATETIME 날짜와 시간 형태의 기간 표현 데이터 타입(8byte)
TIMESTAMP 날짜와 시간 형태의 기간 표현 데이터 타입(4byte) -시스템 변경 시 자동으로 그 날짜와 시간이 저장된다.
YEAR 년도 표현 데이터 타입(1byte)

 

- 이진 데이터 타입
데이터 유형 정의
BINARY(n) & BYTE(n) CHAR의 형태의 이진 데이터 타입 (최대 255byte)
VARBINARY(n) VARCHAR의 형태의 이진 데이터 타입 (최대 65535byte)
TINYBLOB(n) 이진 데이터 타입 (최대 255byte)
BLOB(n) 이진 데이터 타입 (최대 65535byte)
MEDIUMBLOB(n) 이진 데이터 타입 (최대 16777215byte)
LONGBLOB(n) 이진 데이터 타입 (최대 4294967295byte)

 

2 ) ALTER : 데이터베이스, 테이블 수정

- 컬럼 추가
ALTER TABLE `추가하고자 하는 테이블 이름` ADD COLUMN `추가하고자 하는 컬럼 명` `속성값`;
- 컬럼 삭제
ALTER TABLE `삭제하고자 하는 테이블 이름` DROP COLUMN `삭제하고자 하는 컬럼 이름`;
- 컬럼 이름 변경
ALTER TABLE `변경하고자 하는 컬럼이 있는 테이블 이름` CHANGE COLUMN `변경하고자 하는 컬럼 명` `새로운 컬럼 명` 변경하고자 하는 속성값;
- 테이블 이름 변경
ALTER TABLE `변경하려는 테이블 이름` RENAME `새로운 테이블 이름`;

 

3 ) DROP : 데이터베이스, 테이블 삭제

- 데이터베이스 삭제
DROP DATABASE `DATABASE NAME`;
- 테이블 삭제
DROP TABLE `TABLE NAME`;

 

4 ) TRUNCATE : 테이블 초기화

- DELETE문과 다른점 : 조건없이 모두 삭제한다는 것
TRUNCATE TABLE [TABLE NAME];

 

2. 데이터 조작어 (DML : Data Manipulation Language)

- 데이터베이스에 등록된 레코드를 조회, 수정, 삭제하는 등의 역할을 하는 언어
- 처리 순서 : WHERE > GROUP BY > HAVING > SELECT > ORDER BY
- 구문 작성 순서 : SELECT -> FROM -> WHERE -> GROUP BY -> HAVING -> ORDER BY

1) SELECT : 데이터 조회

ㄱ ) 기본

- 전체 데이터 조회

SELECT * FROM [TABLE NAME];

- 원하는 컬럼 조회

SELECT [COLUMN1], [COLUMN2], ... FROM [TABLE NAME];

- 출력 개수 지정

SELECT * FROM [TABLE NAME] LIMIT [원하는 개수];

- 오름차순

SELECT [COLUMN1] FROM [TABLE NAME] ORDER BY [기준 컬럼] ASC;

- 내림차순

SELECT [COLUMN1] FROM [TABLE NAME] ORDER BY [기준 컬럼] DESC;

- 조건 걸기

SELECT [COLUMN1], [COLUMN2], ... FROM [TABLE NAME] WHERE [기준 컬럼] = ‘조건값’;

- AS -> 컬럼 이름이 AS 뒤에 나온 이름으로 출력 됨.

SELECT [COLUMN1] AS A FROM [TABLE NAME];
 

ㄴ ) 집계함수(SUM, AVG, MIN, MAX, COUNT)

A ) 기본

SELECT 집계함수(컬럼 이름) FROM [TABLE NAME];

- SUM : 합산

SELECT SUM(컬럼 이름) FROM [TABLE NAME];

- AVG : 평균

SELECT AVG(컬럼 이름) FROM [TABLE NAME];

- MIN : 최소값

SELECT MIN(컬럼 이름) FROM [TABLE NAME];

- MAX : 최대값

SELECT MAX(컬럼 이름) FROM [TABLE NAME];

- COUNT : 데이터 개수

SELECT COUNT(컬럼 이름) FROM [TABLE NAME];

- ROUND(컬럼명, 숫자) : 컬럼을 숫자만큼만 볼 수 있도록 소수점을 반올림해줌

SELECT ROUND(컬럼 이름, 2) FROM [TABLE NAME];
-> 소수점 3번째 자리에서 반올림해서 소수점 둘째 자리까지만 보여줌
 

B ) 2개 이상의 컬럼을 합쳐서 조회하기
- || ' ' || 사용

SELECT [COLUMN1] || ' ' || [COLUMN2] FROM [TABLE NAME];

SELECT [COLUMN1] || ' ' || [COLUMN2] AS COLUMN12 FROM [TABLE NAME];
 

C ) 중복 제거 조회
- DISTINCT 사용

SELECT DISTINCT(COLUMN1) FROM [TABLE NAME];
 

ㄷ ) JOIN

A ) 기본

 

B ) 기본

 

ㄹ ) 응용

A ) UNION
- 쿼리의 결과를 합쳐주는 함수
- 유의할점 : 컬럼명이 같아야함 다르다면 AS로 별칭을 같게 만들어 주기
- UNION은 중복 제거, UNION ALL은 중복 포함

 

B ) COALESCE(컬럼1, 컬럼2, ..., 컬럼n)
- 컬럼1이 NULL값이 아니면 컬럼1을 RETURN
- 컬럼1이 NULL이면 컬럼2값을 확인하여 컬럼2가 NULL이 아니면 컬럼2 RETURN
- 컬럼2가 NULL이라면 컬럼n-1까지 확인후 컬럼 n-1까지 NULL이라면 컬럼n RETURN

 

2) INSERT : 데이터 삽입

 

3) UPDATE : 데이터 수정

 

4) DELETE : 데이터 삭제

 

3. 데이터 제어어 (DCL : Data Control Language)

- 데이터베이스에 접근하거나 객체에 권한을 주는 등의 역할을 하는 언어

 

1) GRANT : 특정 데이터베이스 사용자에게 특정 작업에 대한 수행 권한을 부여

 

2) REVOKE : 특정 데이터베이스 사용자에게 특정 작업에 대한 수행 권한을 박탈, 회수

 

3) COMMIT : 트랜잭션의 작업 결과를 반영

 

4) ROLLBACK : 트랜잭션의 작업을 취소 및 원래대로 복구

 

By Dozzing

답글 남기기

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