본문 바로가기
Back_end/JSP

JSP - 데이터베이스

by hyeon1016 2024. 10. 30.

데이터베이스

데이터베이스는 테이블, 열, 행으로 구조화된 데이터의 집합이며, 데이터의 중복을 최소화하는 것을 목표로 한다.

 

데이터베이스 관리 시스템(DBMS)

DBMS는 데이터베이스를 관리하는 소프트 웨어로 수많은 장점이 있지만 비용이 매우 많이 들어간다는 단점이 있다.

장점 단점
- 데이터의 중복 최소화
- 데이터 공유
- 일관성, 무결성, 보안성 유지
- 최신 데이터 유지
- 데이터의 표준화 가능
- 데이터의 논리적, 물리적 독립성
- 용이한 데이터 접근
- 데이터 저장 공간 절약
- 데이터 베이스 전문가가 필요함(비용++)
- 비용 부담이 크다.(서버 비용, 전기세, 토지비용 등등)
- 데이터 백업과 복구가 어렵다.
- 시스템이 복잡하다.
- 대용량 디스크로 액세스가 집중되면 과부화가 발생한다.

 

일반적으로 많이 사용하는 관계형 데이터베이스 관리 시스템(RDBMS)으로 MySQL, Ocacle Database가 있다. 

 

DTO와 DB

DTO는 DB(액셀, 스프레드 시트)의 하나의 행과 매핑될 수 있다.

 

MySQL

MySQL은 오픈 소스 관계형 데이터베이스 관리 시스템(RDBMS)으로 질의 언어 SQL을 사용한다.

 

장점

- 오픈 소스(무료)

- 높은 호환성

- 빠른 성능

 

관계형 데이터베이스 관리 시스템(RDBMS)

관계형 데이터베이스 관리 시스템은 데이터를 테이블(표)의 형식으로 저장한다.

- 테이블은 열과 행으로 구성되어 있으며, DTO의 변수가 각 열(Column)에 저장된다고 생각하면 된다.

 

 

MySQL 기본 명령어

SQL 문장 종류
DDL (D 정의) 데이터 베이스를 정의한다. / Object 관련 CREATE, ALTER, DROP...
DML (M 조작) 읽기, 삽입, 제거, 수정 / 데이터 관련 SELECT, INSERT, DELET, UPDATE...
DCL (C 제어) 권한 관련 GRANT, REVOKE, COMMIT, ROLLBACK...

 

MySQL 접근 방법

1. 커맨드라인

2. 워크벤치(이것으로 접근)

3. 이클립스

 

데이터 베이스(DDL)

새로운 데이터베이스(DB) 생성

CREATE DATABASE DB이름;

 

모든 데이터베이스(DB) 확인

SHOW DATABASES;

 

데이터베이스(DB)를 선택하여 사용한다.(선택하지 않으면 명령어를 사용할 수 없다.)

USE DB이름;

 

 

테이블(DDL)

테이블 생성

CREATE TABLE 테이블이름(
       컬럼1 자료형 속성,
       컬럼2 자료형 속성 
);

 

자료형의 종류

자료형 설명
INT 정수를 저장한다.
VARCHAR(n) 문자열을 저장한다., 최대길이 (n)
TEXT 긴 문자열을 저장한다.
DATE 날짜 형식을 저장한다.
FLOAT 소숫점 숫자를 저장한다.
BOOLEAN true/false 값을 저장한다.

 

테이블 목록 조회

SHOW TABLES;

 

테이블 세부 조회

DESC 테이블이름;

 

테이블 제거

DROP TABLE 테이블이름;

 

테이블 이름 변경

RENAME TABLE 테이블이름 TO 새테이블이름;

 

컬럼 추가

ALTER TABLE 테이블이름 ADD 컬럼명 자료형;

 

컬럼 제거

ALTER TABLE 테이블이름 DROP COLUMN 컬럼명;

 

컬럼 수정

ALTER TABLE 테이블이름 CHANGE 기존컬럼명 새컬럼명 자료형;

 

 

데이터 조작(DML)

CRUD

명령어 설명
INSERT 데이터를 등록한다.
SELECT 데이터를 조회한다.
UPDATE 데이터를 수정한다.
DELETE 데이터를 제거한다.

 

데이터 등록(삽입)

생성된 테이블에 새로운 데이터를 삽입한다.

*컬럼은 생략 가능하나 모든 컬럼에 순서대로 값을 제공해줘야 한다.

INSERT INTO 테이블이름(컬럼1, 컬럼2...) VALUES('값1', '값2'...);

 

데이터 조회(읽기)

테이블의 특정 컬럼 조회

SELECT 컬럼1, 컬럼2 FROM 테이블이름; ==> 테이블의 컬럼1, 컬럼2의 데이터만 조회

 

테이블의 모든 데이터 조회

SELECT * FROM 테이블이름;

 

테이블의 데이터를 내림차순, 오름차순으로 정렬하여 조회

SELECT * FROM 테이블이름 ORDER BY 컬럼 DESC; / 내림차순 : 파일이 내려가면서 커짐 aㅡ>A
SELECT * FROM 테이블이름 ORDER BY 컬럼 ASC; / 오름차순 : 파일이 내려가면서 작아짐 Aㅡ>a

 

데이터 수정

SET 앞의 컬럼이 수정대상, WHERE 앞의 컬럼이 주는 값이다.

*바꿀 컬럼이 중복되어 있으면 중복된 모든 컬럼이 변경된다.

UPDATE 테이블이름 SET  컬럼B='a' WHERE 컬럼A='1';  
==> 컬럼A의 데이터가 1인 행의 컬럼B의 데이터를 a로 변경한다.

 

데이터 삭제

DTO단위 즉 행(row)단위로 삭제된다.

DELETE FROM 테이블이름 WHERE 컬럼A='1';
=> 컬럼A의 데이터가 1인 행을 삭제한다.

 

 

CRUD에 필요한 정보 요약

명령어 재료
삽입 TABLE, 컬럼, 데이터
읽기 컬럼, TABLE (WHERE)
수정 TABLE, 컬럼, 데이터 (WHERE)
삭제 TABLE (WHERE)

 

 

SQL 작성 순서

Step 1. 데이터 베이스 생성(DDL)

- DB생성 / CREATE DATABASE A;

- DB확인 / SHOW DATABASES;

- DB사용 / USE A;

 

Step 2. 테이블 생성(DDL)

- 테이블 생성 / CREATE TABLE B(id VARCHAR(10), age INT);

- 확인 / SHOW TABLES;

          / DESC B;

 

Step 3. 데이터 삽입(DML)

- 데이터 삽입 / INSERT INTO B VALUES('admin', 100);

- 확인 / SELECT * FROM B;

'Back_end > JSP' 카테고리의 다른 글

JSP - CRUD  (1) 2024.11.04
JSP - JDBC  (0) 2024.10.31
JSP - 쿠키  (0) 2024.10.30
JSP - 세션  (0) 2024.10.30
JSP - 필터  (0) 2024.10.28