이코리아텍 실습과 함께하는 데이터베이스 MYSQL 강의 정리1/3
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정규형:컬럼들간의 종속관계가 있으면 안됨
'백엔드개발 > 데이터베이스' 카테고리의 다른 글
이코리아텍 실습과 함께하는 데이터베이스 MYSQL 강의 정리3/3 (0) | 2018.10.09 |
---|---|
이코리아텍 실습과 함께하는 데이터베이스 MYSQL 강의 정리2/3 (0) | 2018.10.08 |
앱)create sql sample (0) | 2018.07.05 |
앱)Mysql 내장함수 정리 (0) | 2018.06.22 |
앱)sql 쿼리 mysql mybatis 샘플 (0) | 2018.06.05 |