시작에 앞서 H2 데이터베이스 설치가 필요하다.
https://www.h2database.com/html/main.html에 접속하여 최신 버전의 H2 DB를 내려받아 설치하자.
설치를 마치면 윈도우 시작버튼에서 H2 console 앱을 실행하자.
실행하면 웹으로 아래와같이 실행이된다.
우측 하단의 시스템 트레이에 h2 아이콘에 우클릭 해주자.
Create a new database... 를 클릭해주자.
그리고 아래와 같이 입력해주자.
- Database path: ~/jwbookdb
- Username: jwbook
- Password: 1234
그리고 Create를 클릭하자. 그럼 DB가 생성이 된다.
이제 콘솔화면으로 돌아와 [연결 시험]을 눌러보자.
1️⃣ H2 콘솔 활용
위에서 연결시험에 성공했다면 연결을 해보자.
2️⃣ DDL 실습
DDL이란? Data Definition Language. 테이블 생성, 수정, 삭제 같은 관리기능을 제공하는 SQL문을 뜻함.
CREATE TABLE
학생정보 테이블을 생성해보자.
CREATE TABLE student (
id INT NOT NULL Primary Key AUTO_INCREMENT,
username VARCHAR(20),
univ VARCHAR(40),
birth DATE,
email VARCHAR(40)
);
- NOT NULL : 테이블에 데이터 추가할때 반드시 데이터를 넣어야 하는 속성.
- Primary Key : 기본키로 설정
- AUTO_INCREMENT : 자동 증가 칼럼(시퀀스)으로 지정하는 속성. 중복되지 않는 순차 증가값으로 기본기 칼럼에 주로 사용된다.
이제 H2콘솔에 쿼리문을 넣고 실행해보자. 이후부터는 Run Selected을 눌러 실행할것이다.
테이블이 생성되었다면 성공.
ALTER TABLE
생성된 STUDENT 테이블에 tel 칼럼을 추가하고
username의 크기를 20 > 10으로 조정할것이다ㅣ.
그리고 id 칼럼에 지정되었던 기본키 제약 조건을 제거해보자.
ALTER TABLE student ADD(tel VARCHAR(30) NOT NULL);
ALTER TABLE student ALTER username VARCHAR(10);
ALTER TABLE student DROP PRIMARY KEY;
위 코드를 Run Selected를 해보자.
이제 변경된 테이블 구조를 확인하기 위해 SHOW 구문을 실행해 비교해보자.
SHOW COLUMNS FROM student;
DROP TABLE
테이블을 삭제할때 삭제하고자 하는 테이블과 연관된 테이블이 있다면,
CASCADE를 함께 사용해야 삭제가 가능하다.
이번에는 앞에서 만든 단일 테이블 student를 삭제하기 때문에 CASCADE를 사용하지않는다.
테이블이 삭제되면 왼쪽 트리에서도 삭제된다.
DROP TABLE student;
실행하면 테이블이 삭제된다.
이제 이전에 사용했던 CREATE TABLE로 다시 테이블을 만들어주자.
3️⃣ DML 실습
DML이란? Data Manipulation Language. 테이블의 데이터를 조작할때 사용하는 SQL문.
INSERT
student 테이블의 id 칼럼에는 auto_increment 속성이 부여되어있기 때문에
다음과 같이 칼럼을 지정한다음 데이터를 부분적으로 추가해야한다.
INSERT INTO student(username, univ, birth, email) VALUES('김길동', 'AA대학교', '1999-10-21', 'kim@aa.com');
이제 4개의 데이터를 더 추가할것이다.
INSERT INTO student(username, univ, birth, email) VALUES('박사랑', 'BB대학교', '2000-10-21', 'park@bb.com');
INSERT INTO student(username, univ, birth, email) VALUES('나최고', 'CC대학교', '1998-7-11', 'na@cc.com');
INSERT INTO student(username, univ, birth, email) VALUES('김길동', 'BB대학교', '1999-03-21', 'kim@bb.com');
INSERT INTO student(username, univ, birth, email) VALUES('홍길동', 'AA대학교', '1999-12-21', 'hong@aa.com');
SELECT
위에서 추가한 값들을 살펴보자.
SELECT * FROM student;
- *는 전체 칼럼을 모두 보여준다.
특정 칼럼을 조회 하고 싶으면 아래처럼 해보자.
SELECT username, email FROM student;
이번엔 WHERE 조건절을 사용해서 데이터를 조회해보자.
AND, OR을 이용해 조건 세분화도 가능하다.
SELECT * FROM student WHERE username = '김길동';
SELECT * FROM student WHERE username = '김길동' AND univ = 'AA대학교';
SELECT * FROM student WHERE univ = 'AA대학교' OR univ = 'CC대학교';
SELECT * FROM student WHERE username LIKE '김%';
이번에는 정렬을 해보자. ORDER BY를 사용하면된다.
//내림 차순
SELECT * FROM student ORDER BY username DESC;
//이름은 오름차순, 대학은 내림차순
SELECT * FROM student ORDER BY username ASC, univ DESC;
이번엔 중복된 데이터를 하나만 표시해보자.
DISTINCT를 사용하면된다.
//중복된 이름은 하나만 가져옴
SELECT DISTINCT username FROM student;
//이름과 대학의 조합으로 중복 제거
SELECT DISTINCT username, univ FROM student;
이상으로 H2 DB 기초 사용을 마치겠다.
[메인으로 돌아가기]
'Java Spring > 책공부 1 (JSP와 스프링)' 카테고리의 다른 글
17. 뉴스기사 관리 서비스 설계 (0) | 2022.07.14 |
---|---|
16. JDBC 종합 : 학생정보 조회와 등록 (0) | 2022.07.13 |
14. 고급 컨트롤러 서블릿 구현 (0) | 2022.07.11 |
13. 컨트롤러 기초 : 계산기 구현 (0) | 2022.07.11 |
12. JSTL과 EL 종합 예제 (0) | 2022.07.11 |