이코리아텍 실습과 함께하는 데이터베이스 MYSQL 강의 정리1/3

Posted by HULIA(휴리아)
2018. 9. 29. 23:30 백엔드개발/데이터베이스

2018년 9월 

이코라이텍

실습과 함께하는 데이터베이스 MYSQL편


검색에 최적화된 시스템은 RDBMS계열

쓰기에 최적화된 시스템은 Nosql(Not only SQL)계열


모델링

-정규화:중복정보를 최소화시킴


이진검색은 비교하는 값이 하나라서 작다 크다만 가능

B-Tree(비트리)는 이진검색에서 비교하는 값이 2개라서 작다 크다 중간에 있다까지 가능

상용디비에서는 비트리를 쓴다고 생각하면 됨


DML(CRUD)

DDL(스카마 정의 수정) - CREATE / DROP / 

DCL(접근권한 정의) - GRANT(권한부여) / REVOKE(권한취소)



MYSQL은

INNER JOIN

LEFT JOIN

RIGHT JOIN

까지만 지원하며


FULL JOIN은 지원하지 않는다 ->각각 JOIN해서 UNION으로 합쳐야 함


VIEW는 내부 컬럼의 조건에 따라 변하기도 하고 변하지 않기도 한다

컬럼이 바로 맵핑된 경우는 원테이블이 변경되면 변경되고

가공을 거쳤다면 변경되지 않는다


LIKE검색 %와 _가 있다



NULL함수

IFNULL(MYSQL)

NVM(오라클)


집합함수

SUM

COUNT

등등



다중행 서브쿼리(다중행 연산자)

ALL -> 가장 큰값보다 큰(maximum효과)

ANY -> 가장 작은 값보다 큰(minimum효과)

IN - OR효과

EXISTS - if문효과


MYSQL은 합집합만 지원함

교집합과 차집합은 지원하지 않음


UNION은

두 쿼리의 결과 형식이 동일해야 함

다른테이블이라도 결과값의 형식만 잁치하면 됨


UINION ALL->중복허용



MYSQL 자료형

1)정수형

TINYINT(1BYTE)

INT(4BYTE)

BIGINT


2)실수형

FLOAT(4BYTE)

DOUBLE(8BYTE)

DECIMAL(십진법)


3)문자열

CHAR 고정길이 문자열(최대 255자)

VARCHAR 가변길이 문자열(최대 65,535자)


4)TEXT문자열

TEXT(2BYTE)

MEDIUMTEXT(3BYTE)

LONGTEXT(4BYTE)


5)BLOB(이미지 및 파일을관리)

BLOB(2GBYTE)

MEDIUMBLOB(3GBYTE)

LARGEBLOB(4GBYTE)



6)시간관련

DATE(YYYY-MM-DD)

TIME(HH:MI:SS)

DATETIME(YYYY-MM-DD HH:MI:SS)

TIMESTAMP(YYYY-MM-DD HH:MI:SS)




입력데이터 제약조건

NOT NULL

UNIQUE(테이블에 동일한 값 받아들여지지않음)

PRIMARY KEY(UNIQUE + NOT NULL)

FOREIGN KEY

CHECK(해당 조건일때만 입력 가능 - MYSQL지원안함)

DEFAULT(컬럼값이 입력되지 않으면 기본값 입력)

AUTO INCREMENT(MYSQL만 있음)


정규화(중복성 제거-무결성 유지)

->그리고 조인을 한다


정규형(중복을 제거하기 위한 테이블 정의 규칙)

1정규형:나눌 수 있을만큼 쪼개라

2정규형:테이블의 컬럼들이 기본키와 직접 연관되는 컬럼만으로 구성하라

3정규형:컬럼들간의 종속관계가 있으면 안됨