[Spring] DB, SQL 정리

JunWoo An·2023년 10월 31일
0

스파르타코딩클럽

목록 보기
9/46
post-thumbnail

데이터베이스(Database)

데이터베이스는 우리가 흔히아는 데이터들의 집합으로 데이터를 효율적으로 관리하기위해 만들어진 데이터의집합이라고 볼수있다. 이러한 데이터베이스는 DBMS(Database Management System)으로 불리는 관리소프트웨어로 운영하게 되는데 DBMS는 관계형DBMS와 비관계형DBMS로 나뉘게 되는데 두가지의 차이점은 테이블(table)의 최소단위로 데이터가 구성되있는가 아닌가의 차이이다. 이번 Spring부트캠프에서는 RDBMS의 한종류인 MySQL을 통해 공부를 시작하였다.

SQL의 기본적언어를 정리하였다.

DDL : 'Data Definition Language'의 약자로 테이블이나 관계의 구조를 생성하는데 사용합니다

CREATE : 새로운 데이터베이스 및 테이블 생성

CREATE DATABASE 데이터베이스이름;
CREATE TABLE 테이블이름
(
		필드이름1 필드타입1,
    필드이름2 필드타입2,
    ...
);

추가적인 조건을 추가해서 기존에 테이블의 이름이 중복되지않을시에만 생성할수있게 가능

CREATE TABLE IF NOT EXISTS 테이블이름

ALTER : 데이터베이스와 테이블의 내용을 수정할 수 있습니다.

ALTER TABLE 테이블이름 ADD 필드이름 필드타입;
ALTER TABLE 테이블이름 DROP 필드이름;
ALTER TABLE 테이블이름 MODIFY COLUMN 필드이름 필드타입;

DROP : 데이터베이스와 테이블을 삭제할 수 있습니다. 데이터 및 테이블 전체를 삭제합니다.

DROP DATABASE 데이터베이스이름;
DROP TABLE 테이블이름;

TRUNCATE : 데이터베이스와 테이블을 삭제할 수 있습니다. 최초 테이블이 만들어졌던 상태 즉, column값만 남깁니다.

TRUNCATE DATABASE 데이터베이스이름;
TRUNCATE TABLE 테이블이름;

DCL : ‘Data Control Language’ 의 약자로 데이터의 사용 권한을 관리하는데 사용합니다.

GRANT : 사용자 또는 ROLE에 대해 권한을 부여할 수 있습니다.

GRANT [객체권한명] (컬럼)
ON [객체명]
TO { 유저명 | 롤명 | PUBLC} [WITH GRANT OPTION];
 //ex
GRANT SELECT ,INSERT 
ON mp
TO scott WITH GRANT OPTION;

REVOKE : 사용자 또는 ROLE에 부여한 권한을 회수할 수 있습니다.

REVOKE { 권한명 [, 권한명...] ALL}
ON 객체명
FROM {유저명 [, 유저명...] | 롤명(ROLE) | PUBLIC} 
[CASCADE CONSTRAINTS];
 //ex
REVOKE SELECT , INSERT
ON emp
FROM scott
[CASCADE CONSTRAINTS];

DML: ‘Data Manipulation Language’ 의 약자로 테이블에 데이터를 검색, 삽입, 수정, 삭제하는데 사용합니다.

INSERT : 테이블에 새로운 row를 추가할 수 있습니다.

INSERT INTO 테이블이름(필드이름1, 필드이름2, 필드이름3, ...) VALUES(데이터값1, 데이터값2, 데이터값3, ...);
INSERT INTO 테이블이름 VALUES(데이터값1, 데이터값2, 데이터값3, ...);

SELECT : 테이블의 row를 선택할 수 있습니다.

SELECT 필드이름 FROM 테이블이름 [WHERE 조건];

UPDATE : 테이블의 row의 내용을 수정할 수 있습니다. 필드의 내용수정

UPDATE 테이블이름 SET 필드이름1=데이터값1, 필드이름2=데이터값2, ... WHERE 필드이름=데이터값;

DELETE : 테이블의 row를 삭제할 수 있습니다.

DELETE FROM 테이블이름 WHERE 필드이름=데이터값;

CREATE(제약조건)

  1. AUTO_INCREMENT : colum값이 중복되지않게 1씩증가하게하여 고유번호생성
  2. NOT NULL : 해당 필드는 NULL값 저장x
  3. UNIQUE : 해당 필드는 서로 다른값 == colum의 값들이 같은값 허용 x
  4. PRIMARY KEY : NOT NULL과 UNIQUE 제약조건 둘다 가지게됨 == NULL허용x, 다 다른값
  5. FOREIGN KEY : 테이블간의 연결고리 형성 데이터 무결성보장
CREATE TABLE 테이블이름
(
    필드이름 필드타입,
    ...
		FOREIGN KEY(필드이름)
    REFERENCES 테이블이름(필드이름)   // 대상테이블의 필드는 반드시 PK제약조건설정되어야함
);
  1. CASCADE : FK로 연관데이터 삭제 및 변경가능
CREATE TABLE 테이블이름
(
    필드이름 필드타입,
    ...
		FOREIGN KEY(필드이름)
    REFERENCES 테이블이름(필드이름) ON DELETE CASCADE 
														 //ON UPDATE CASCADE
);
profile
도전하는 사람

0개의 댓글