♣ 2주차 목표 : 프로그래밍 기초 SQL 학습
- SQL 코드 카타 31-40번 풀이 복습
- 'SQLD 자격증 대비반' 5-8주차 강의 수강
'엑셀보다 쉽고 빠른 SQL' 강의에선 이미 생성되어 있는 테이블에서 Column들을 조회하고 다루는 법을 배웠다면 이번 강의에서는 백지 상태에서 테이블을 다루는 언어를 배워서 DDL 부분이 조금 어려웠다.
- DDL
- 주로 데이터를 저장하는 테이블을 다루는 언어로 구성 - 대표적 데이터 유형
- CHARACTER (CHAR) : 고정 길이의 문자열 정보, 남는 부분은 공백으로 채워짐
- VARCHAR (VARCHAR2) : 가변 길이의 문자열 정보, 남는 부분 없이 가변적으로 길이 조정
- NUMERIC (NUMBER) : 정수, 실수 등 숫자 정보
- DATETIME (DATE) : 날짜, 시각 등과 관련된 정보 - 제약 조건
- 컬럼의 속성처럼 사용, 고유의 이름을 지정해야함(지정하지 않으면 DBMS가 자동으로 부여)
- NOT NULL : 해당 컬럼에 필수로 데이터 입력
- UNIQUE : 중복값 허용 X
- PRIMARY KEY : 테이블의 기본키 설정, 여러 컬럼을 묶어 하나의 기본키로 사용 가능
- FOREIGN KEY : 외래키 지정
- DEFAULT : 값을 입력하지 않을 경우 부여될 기본 값 지정
- CHECK : 미리 지정한 조건에 맞는 데이터 입력, 주로 특정한 값이나 범위 지정
-- 테이블 생성
CREATE TABLE table_name (
column_1 data_type constraints,
column_2 data_type constraints,
column_3 data_type constraints
);
-- COLUMN 추가
ALTER TABLE 테이블명 ADD 칼럼명 데이터_유형;
-- CONSTRAINT(제약조건) 추가
ALTER TABLE 테이블_이름 ADD CONSTRAINT 제약_조건_이름 제약조건 (컬럼_이름);
-- COLUMN 삭제
ALTER TABLE 테이블_이름 DROP COLUMN 삭제_할_컬럼_이름;
-- CONSTRAINT 삭제
ALTER TABLE 테이블_이름 DROP CONSTRAINT 제약_조건_이름;
-- COLUMN 수정
ALTER TABLE 테이블_이름 MODIFY (
컬럼_이름_1 데이터_유형 [DEFAULT 식] [NOT NULL],
컬럼_이름_2 데이터_유형 [DEFAULT 식] [NOT NULL]
...);
-- COLUMN 이름 변경
ALTER TABLE 테이블_이름 RENAME COLUMN 변경_할_컬럼_이름 TO 새로운_컬럼_이름;
-- TABLE 이름 변경
RENAME 기존_테이블_이름 TO 새로운_테이블_이름;
- 참조 무결성
- DB 상의 참조가 모두 유효함을 말함
- CASCADE : 참조가 걸려있는 값을 수정/삭제할 때, 해당 값을 참조하고 있는 모든 레코드 역시 종속적으로 수정/삭제
-- 참조하고 있는 모든 레코드도 함께 수정
ALTER TABLE ORDERS ADD FOREIGN KEY (product_id) REFERENCES Product(id) ON UPDATE CASCADE;
-- 참조하고 있는 모든 레코드도 함께 삭제
ALTER TABLE ORDERS ADD FOREIGN KEY (product_id) REFERENCES Product (id) ON DELETE CASCADE;
-- 참조하던 레코드가 사라지면 NULL 값으로 변경
ALTER TABLE ORDERS ADD FOREIGN KEY (product_id) REFERENCES Product (id) ON DELETE SET NULL;
- DROP / TRUNCATE TABLE
-- TABLE 삭제
DROP TABLE 테이블_이름 [CASCADE CONSTRAINT];
-- TABLE은 남기고 데이터만 삭제
TRUNCATE TABLE 테이블_이름;
'Today I Learned' 카테고리의 다른 글
240102 / 데이터 분석 부트캠프 10일차 (내일배움캠프 Data_1기) (0) | 2024.01.02 |
---|---|
231229 / 데이터 분석 부트캠프 9일차 (내일배움캠프 Data_1기) (0) | 2023.12.29 |
231227 / 데이터 분석 부트캠프 7일차 (내일배움캠프 Data_1기) (0) | 2023.12.27 |
231226 / 데이터 분석 부트캠프 6일차 (내일배움캠프 Data_1기) (0) | 2023.12.26 |
231222 / 데이터 분석 부트캠프 5일차 (내일배움캠프 Data_1기) (0) | 2023.12.22 |