위 글은 edwith 강의를 기반으로 작성했습니다
SQL은 Structured Query Language의 약자이며, 관계형 데이터베이스가 이해할 수 있는 구조화된 질의어이다
RDB
는 Relational Database의 약자이며, 행과 열로 구성된 테이블이 다른 테이블과 관계를 맺고 모여있는 집합체를 의미한다
위 질문에 답하기 위해서는 회원 테이블, 주문 테이블에서 데이터를 뽑아야 하는데 이를 위해서는 테이블이 다른 테이블과 관계를 맺고 있어야 한다
관계형 테이블은 관계형 데이터베이스에 저장되는 데이터의 집합이며, 행과 열로 구성되어있다
테이블은 각 열마다 반드시 1가지 데이터 타입으로 정의되어야 한다
<숫자형>
데이터 형식 | 바이트 수 | 숫자 범위 | 설명 |
---|---|---|---|
BIT | 1 | 0 or 1 or NULL | 논리형. True/False로 사용 |
INT | 4 | ~ | 정수 |
BIGINT | 8 | ~ | 정수 |
FLOAT | 4 | - ~ | 소수 |
DOUBLE | 8 | - ~ | 소수 |
<문자형>
데이터 형식 | 바이트 수 | 설명 |
---|---|---|
CHAR(n) | 0 ~ 8,000 | 고정길이 문자형 |
NCHAR(n) | 0 ~ 8,000 | 유니코드 고정길이 문자형 cf.한글 0~4000자 |
VARCHAR(n) | 0 ~ | 가변길이 문자형 |
NVARCHAR(n) | 0 ~ | 유니코드 가변길이 문자형 |
<날짜형>
데이터 형식 | 바이트 수 | 설명 |
---|---|---|
DATETIME | 8 | YYYY-MM-DD-시:분:초 |
DATE | 3 | YYYY-MM-DD |
TIME | 5 | 시:분:초 |
테이블은 각 열마다 제약 조건
을 정의할 수 있다
SQL 기본 명령어는 4가지로 분류된다
데이터 정의어는 테이블을 생성, 변경 삭제할 때 사용하는 명령어이다
CREATE TABLE [테이블 명](
[컬럼 1][데이터 타입] [제약조건]-생략가능
[컬럼 2][데이터 타입]
[컬럼 3][데이터 타입]
);
CREATE TABLE 회원테이블(
회원번호 INT PRIMARY KEY, # 고유키 설정(중복 허용X)
이름 VARCHAR(20), # 20 : BYTE 수 (최대 20 바이트)
가입일자 DATE NOT NULL, # 제약조건 -> NULL 값 허용 X
수신동의 BIT # BIT : BOOLEAN (논리형)
);
ALTER TABLE [테이블 명] ADD [추가 컬럼 명][데이터 타입];
ALTER TABLE 회원테이블 ADD 성별 VARCHAR(2);
ALTER TABLE [테이블 명] MODIFY [컬럼 명][데이터 타입];
ALTER TABLE 회원테이블 MODIFY 성별 VARCHAR(5);
테이블 명 변경
ALTER TABLE [기존 테이블 명] RENAME [바꿀 테이블 명];
ALTER TABLE 회원테이블 RENAME 회원정보;
테이블 삭제
ALTER TABLE [테이블 명];
DROP TABLE 회원테이블;