기본키와 외래키
키( key )
조건에 맞는 데이터를 찾기 위한 식별자
기본키
- Primary Key , PK
- 행을 특정 지을 수 있는 데이터
- 중복 불가 , 고유해야함 , NOT NULL
고유키
- Unique Key
- 기본키와 유사하나 Null 가능
외래키
- Foreign Key
- 다른 테이블을 연결(참조)하기 위한 키
참조한 테이블이 변경/삭제 될 경우 SET NULL : 전부 NULL 값으로 채움 CASCADE : 같이 변경( 삭제 , 업데이트 같이 적용 ) RESTRICT : 삭제,업데이트 자체를 제한
데이터 베이스와 테이블 생성하기
데이터 베이스
데이터 베이스 생성
create database xxx
데이터 베이스 조회
데이터 베이스 (스키마) 사용
데이터 베이스 (스키마) 삭제
테이블
테이블 생성
테이블 조회
테이블 구조 조회
테이블 이름 변경
테이블 삭제
자료형
숫자 데이터 타입
TINYINT
: -128부터 127 (부호 있음), 0부터 255 (부호 없음)SMALLINT
: -32,768부터 32,767 (부호 있음), 0부터 65,535 (부호 없음)MEDIUMINT
: -8,388,608부터 8,388,607 (부호 있음), 0부터 16,777,215 (부호 없음)INT
: -2,147,483,648부터 2,147,483,647 (부호 있음), 0부터 4,294,967,295 (부호 없음)BIGINT
: -9,223,372,036,854,775,808부터 9,223,372,036,854,775,807 (부호 있음), 0부터 18,446,744,073,709,551,615 (부호 없음)FLOAT
: 약 -3.402823466E+38부터 3.402823466E+38DOUBLE
: 약 -1.7976931348623157E+308부터 1.7976931348623157E+308DECIMAL(M, D)
: M은 전체 자릿수, D는 소수점 이하 자릿수. 예를 들어,DECIMAL(10, 2)
는 -99,999,999.99부터 99,999,999.99까지의 값을 가질 수 있음.
문자열 데이터 타입
CHAR(M)
: M은 최대 255자. 고정 길이로, 지정된 길이보다 짧으면 공백으로 채워짐.VARCHAR(M)
: M은 최대 65,535자. 가변 길이로, 실제 길이에 따라 저장 공간이 다름.TEXT
: 최대 65,535자. 긴 문자열 데이터에 사용.BLOB
: 최대 65,535바이트. 바이너리 데이터에 사용.
날짜 및 시간 데이터 타입
DATE
: ‘1000-01-01’부터 ‘9999-12-31’까지.TIME
: ‘-838:59:59’부터 ‘838:59:59’까지.DATETIME
: ‘1000-01-01 00:00:00’부터 ‘9999-12-31 23:59:59’까지.TIMESTAMP
: ‘1970-01-01 00:00:01’ UTC부터 ‘2038-01-19 03:14:07’ UTC까지.YEAR
: 1901부터 2155까지.
기타 데이터 타입
ENUM
: 최대 65,535개의 값 중 하나를 선택할 수 있는 문자열.SET
: 최대 64개의 값 중 조합으로 선택할 수 있는 문자열.
데이터 입력_INSERT
데이터 추가
데이터 조회_SELECT
!=
,<>
같은 의미
where 절 조합해서 쓰기 and
데이터 조회_세부적으로 검색하기
연산 및 집계 함수
- count
- sum
- avg
- max
- min
LIKE를 이용한 패턴 검색 LIKE
- 부분적으로 일치해도 검색 가능
- 사용 가능한 와일드 카드
%
: 임의의 문자열_
: 임의의 문자
GROUP BY & HAVING
GROUP BY
- 테이블 내 데이터를 그룹으로 묶어 조회하고 싶을 때 주로 집계 함수와 함께 사용
- where 조건식을 사용할 수 없음
HAVING
- GROUP BY 의 결과를 통해 필터링을 하고 싶을 때 사용
서브 쿼리
- 쿼리 속의 쿼리 (쿼리 속의 select)
데이터 수정_UPDATE
- where 절을 이용해 특정 행을 식별 ( 조건에 일치하는 모든 행을 대상으로 업데이트 )
- where 절이 생략된 경우 모든 행이 갱신
on update 제약 조건
- cascade : 참조 데이터 업데이트 시 상대방 데이터도 함께 업데이트
- set null : 참조 데이터 업데이트 시 상대방 테이블의 참조 컬럼을 Null로 업데이트
- set default : 참조 데이터 업데이트 시 상대방 테이블의 참조 컬럼을 Default 값으로 업데이트
- restrict : 참조 하고 있는 경우 , 업데이트 불가
- no Action : Restrict와 동일 , 옵션을 지정하지 않았을 경우 자동으로 선택됨
데이터 삭제_DELETE
제약 조건 on delete
- cascade : 참조 데이터 업데이트 시 상대방 데이터도 함께 삭제
- set null : 참조 데이터 업데이트 시 상대방 테이블의 참조 컬럼을 Null로 업데이트
- set default : 참조 데이터 업데이트 시 상대방 테이블의 참조 컬럼을 Default 값으로 업데이트
- restrict : 참조하고 있을 경우, 삭제 불가
- no Action : Restrict와 동일 , 옵션을 지정하지 않았을 경우 자동으로 선택됨