Database
: 데이터의 집합. 정보를 저장하고 관리해줌
DBMS (Database Management System)
: DB를 관리하고 운영하는 소프트웨어
RDBMS
: 관계형 데이터 베이스.
- 행과 열로 이루어진 테이블이라는 최소 단위로 구성됨.
- Foreign Key를 통해 다른 데이터를 조합해 함께 볼 수 있음.
RDBMS 종류
- MySQL
- PostgreSQL
- Oracle Database
SQL (Structured Query Language)
: RDBMS에서 사용되는 언어.
- 국제표준화 기구에서 SQL에 대한 표준을 정해서 발표하고 있지만, 회사마다 약간의 차이 존재
- DDL, DCL, DML 3가지로 분류됨.
DDL (Data Definition Language)
: 테이블이나 관계의 구조를 생성하는데 사용
- CREATE
: 새로운 데이터베이스 및 테이블 생성 - ALTER
: 데이터베이스와 테이블의 내용 수정 - DROP
: 데이터베이스와 테이블 삭제 - TRUNCATE
: 데이터베이스와 테이블 삭제
DCL (Data Controller Language)
: 데이터의 사용 권한 관리할 때 사용
- GRANT
: 사용자 또는 ROLE에 대해 권한을 부여 - REVOKE
: 사용자 또는 ROLE에 부여한 권한 회수
DML (Data Manipulation Language)
: 테이블에 데이터를 검색, 삽입, 수정 삭제시 사용
- INSERT
: 테이블에 새로운 열(row) 추가 - SELECTE
: 열 선택 - UPDATE
: 열 내용 수정 - DELETE
: 열 삭제
DELETE vs TURNCATE vs DROP 차이
DELETE | TURNCATE | DROP |
- WHERE절을 사용해 데이터를 선택해 제거 - COMMIT 명령어 사용 전이라면 ROLLBACK 명령어를 통해 되돌리기 가능 |
- 전체 데이터를 한 번에 삭제 - 삭제한 데이터 되돌리기 불가 (자동 COMMIT 되기 때문) |
- 테이블 자체를 삭제 - 삭제한 데이터 되돌리기 불가 (자동 COMMIT 되기 때문) |
CREATE
- 제약조건
- AUTO-INCREMENT : 컬럼의 값이 중복되지 않게 1씩 자동으로 증가해 고유번호 생성
- NOT NULL : 해당 필드는 NULL 값 저장 불가
- UNIQUE : 해당 필드는 서로 다른 값 가져야 함
- PRIMARY KEY : NOT NULL과 UNIQUE 제약 조건의 특징을 모두 가짐
- 사용이유 : 데이터 중복 방지 / 빠른 검색
- FOREIGN KEY : 하나의 테이블을 다른 테이블에 의존하게 만들며 데이터의 무결성 보장
- FK를 가지는 테이블이 참조하는 기준 테이블의 열은 반드시 PK나 UNIQUE 제약조건이 설정되어 있어야 함.
- CASCADE : FK로 연관된 데이터를 삭제, 변경
ALTER
ALTER TABLE EXAM ADD PRIMARY KEY(student_code, exam_seq);
ALTER TABLE EXAM ADD CONSTRAINT exam_fk_student_code FOREIGN KEY(student_code) REFERENCES STUDENT(student_code);
→ ALTER 명령어를 통해 EXAM 테이블의 PK를 설정
→ ALTER 명령어를 통해 EXAM 테이블의 FK를 설정
- STUDENT 테이블의 student_code를 참고해 FK 설정. FK는 exam_fk_student_code 라는 이름을 가짐.
INSERT
INSERT INTO STUDENT VALUES('s11', '변정섭', '20220222', 'M', '01000000020', 'm2');
INSERT INTO STUDENT(student_code, name, gender, major_code) VALUES('s12', '권오빈', 'M', 'm3');
→ 테이블명 뒤에 소괄호를 하지않고 그냥 VALUES를 통해 데이터를 넣는 것은 모든 필드에 대한 데이터를 넣는 것
→ 소괄호을 해 넣는 것은 일부 필드에 대한 데이터를 넣는 것
UPDATE
INSERT INTO STUDENT VALUES('s0', '수강생', '20220331', 'M', '01000000005', 'm1');
UPDATE STUDENT SET major_code= 'm2' where student_code= 's0';
→ STUDENT테이블의 student_code가 s0인 것의 major_code를 m2로 수정
DELETE
DELETE FROM STUDENT WHERE student_code = 's0';
→ STUDENT 테이블의 student_code가 s0인 것 삭제
SELECT
SELECT * FROM STUDENT;
SELECT * FROM STUDENT WHERE STUDENT_CODE = 's1';
SELECT name, major_code FROM STUDENT WHERE student_code = 's1';
→ STUDENT 테이블의 모든 필드 선택해서 보여주기
→ STUDENT 테이블의 STUDENT_CODE가 s1인 필드 모두 선택해서 보여주기
→ STUDENT 테이블의 student_code가 s1인 것의 name, major_code 필드 선택해서 보여주기
JOIN
: 2개 이상의 테이블을 하나로 합치기 위한 기능
- 하나이상의 컬럼이 서로 공유되어야 함.
- ON 키워드를 통해 기준이 되자 공유되고 있는 컬럼을 선택해 2개의 테이블을 합쳐줌.
SELECT s.name, s.major_code, m.major_name FROM STUDENT s JOIN MAJOR m on s.MAJOR_CODE = m.MAJOR_CODE;
위의 코드와 아래의 코드 결과 같음
SELECT s.name, s.major_code, m.major_name FROM STUDENT s, MAJOR m WHERE s.MAJOR_CODE = m.MAJOR_CODE;
👉 참고 사이트
1. https://chiefcoder.tistory.com/58
'내일배움캠프(Sparta) > Spring' 카테고리의 다른 글
[Spring] 3 Layer Architecture (0) | 2023.11.03 |
---|---|
[Spring] JDBC (1) | 2023.11.03 |
[Spring] DTO (0) | 2023.11.02 |
HTTP 데이터를 객체로 처리하는 방법 (0) | 2023.11.02 |
[Spring] Jackson / Path Variable / Request Param (1) | 2023.11.02 |