JAVA 웹개발 과정 국비 15일차 정리

15일차

※ 배우는 과정이므로 정확하지 않을 수 있습니다.
잘못된 점은 알려주시면 수정하도록 하겠습니다!


14일차 학원 평가를 보고 자바 문법 수업은 끝이났다.
이제 DB 시작!!!!

1. DBMS (Database Management System)

1) 불편한 데이터

학생 관리 시스템을 만들어보면서, 불편한 점이 여러개였지만 그 중 가장 불편했던 점은 입력값이 프로그램을 끄면 사라져버려서, 다시 처음부터 입력을 해주어야 하는 것이였다.
바로 데이터를 RAM에 저장하기 때문이였는데, 이와 같은 고민을 선배 개발자들도 물론 했다.

그래서 데이터를 HDD(SDD)에 옮길 수 있는 방법을 강구했고, 자바에서 파일입출력으로 프로그램이 꺼져도 데이터가 사라지지 않는 방법을 찾아냈다.
그러나 이 방법은 보안이 취약하고, 성능이 상대적으로 좋지 않았으며, 에러에 취약하다는 단점들이 너무나 커서 결국 DBMS가 만들어지고, DBMS를 통해 데이터를 저장할 수 있게 되었다.

2) DBMS의 종류

  • Oracle (오라클)
    • 대기업에서 주로 사용하는 비싼 프로그램
  • MySQL (썬마이크로시스템즈 - 오라클)
    • 중소기업에서 주로 사용하는 오픈소스 무료 프로그램
  • MSSQL (마이크로소프트)
    • 매니아층이 있다…

3) SQL Developer

DB를 사용하려면 두가지가 필요하다.
SQL Developer와 DBMS이다.
SQL Developer는 DBMS를 편하게 쓸 수 있는 도구이며, Oracle과는 다른 것이다.
DBMS는 흔히 말하는 Oracle, MySQL 등을 말한다.
즉, DB라는 것이 있을 때, 이 DB를 DBMS가 관리하고, DBMS를 Java나 SQL Developer로 사용하는 것이다.

4) 설치하기

3번에서 말한 것과 같이, Oracle 과 SQL Developer 를 둘 다 다운 받아야 한다.
압축을 풀고 설치해주면 끝~!!

5) 계정 생성 & 권한 추가

처음 오라클을 실행하면, 암호를 생성하라고 나오는데 이게 SYSTEM 계정의 비번이니 잊어버리지 않도록 하자.

SYSTEM 계정
만들지 않아도 자동 생성되는 관리자 계정, DATA 관리용이 아닌, DBSM 관리용 계정이다.

접속 -> 우클릭 -> 새접속을 클릭하거나, 접속 위 초록 + 버튼을 누른다.

  • 접속 이름 : 알아보기 쉬운 이름을 적어주면 된다.
  • 사용자 이름 : system
  • 비밀번호 : 처음 생성했던 비밀번호 입력

접속을 누르면 탭에 접속 이름이 생성되며 SYSTEM 계정 접속이 완료된다.
그러나 위에서도 말했듯이, SYSTEM 계정으로 DATA를 관리하지 않기 때문에, SYSTEM 계정에서 사용자 계정을 추가하여 그 사용자 계정에서 DATA를 관리할 것이다.

CREATE USER id IDENTIFIED BY pw;

id와 pw를 각각 입력하는 쿼리문을 써주고 실행하면, 사용자 계정이 생성된다.
이대로 다시 새접속을 만들고 위와 같이 만들어주면..
실패한다.
사용자 계정에는 접속할 수 있는 권한이 없기 때문이다.
따라서 아래와 같이 권한을 주는 쿼리문을 입력해주어야 한다.

GRANT connect, resource TO id;

그 다음 다시 접속을 시도해보면, 성공한다.

2) SQL (Structured Query Language)

DBMS가 가지고 있는 명령어의 총 집합체.

1) 테이블 만들기

자료형을 맞춰서 만들어줘야한다.

  • number : Java의 int형
  • varchar(사이즈) : Java의 String, 사이즈를 꼭 적어주어야 한다.
CREATE TABLE cafe_menu(
	id number,
	name varchar(30),
	price number
);

2) 테이블 조회하기

어떤 컬럼이 있는지, 데이터 타입은 무엇인지 조회할 수 있다.

DESC cafe_menu;

3) 데이터 저장하기

문자열을 저장할 때는 ‘ ‘(작은따옴표)를 쓴다.

INSERT INTO cafe_menu VALUES(1001, 'Americano', 2000);

4) 저장된 데이터 확인하기

* 은 모든 것을 의미한다.

SELECT * FROM cafe_menu;

5) DDL/DML/(DQL)/DCL/TCL

  • DDL (Data Definition Language)
    오라클 내부에서 사용되는 객체를 생성/수정/삭제 하는 명령
  • DML (Data Manipulation Language)
    오라클에 저장할 데이터를 생성/수정/삭제 하는 명령
    • DQL (Data Query Langauge)
      특정 객체에 권한을 부여하거나 회수하는 명령
  • DCL (Data Control Language)
    특정 객체에 권한을 부여하거나 회수하는 명령
  • TCL (Transaction Control Language)
    작업에 대한 Commit 또는 Rollback을 관리하는 명령. 명령의 원자성과 관련

6) SELECT 문 & WHERE 문

SELECT 문은 정말 다양하게 쓰인다.
FROM 뒤에 WHERE가 붙는다는 것을 잊지 말자!

SELECT 보고싶은 컬럼 FROM 테이블 이름 WHERE 조건;

WHERE 절에서는 or과 and, =를 쓸 수 있다. 자바와는 다른 쓰임이므로 기억해두자.

7) AS

  • 컬럼, 테이블 등의 이름 뒤 AS를 붙이고 별명을 쓰면 컬럼명을 바꿔 출력할 수 있다.
  • AS는 생략이 가능하다.
  • Header(별명이 출력되는 곳)는 DATA 영역이 아니기 때문에 “ “(큰 따옴표)를 써주어야 한다. 그러나 한 단어일 경우 생략 가능하며, 띄어쓰기가 들어간 별명은 필수로 “ “를 붙여주어야 한다.
SELECT emp_id AS "사번" FROM employee;
SELECT emp_id "사번" FROM employee;
SELECT emp_id 사번 FROM employee;
SELECT emp_id "사원 번호" FROM employee;

8) 임의의 컬럼 만들기

아래와 같이 '원' 단위 의 컬럼을 만들면, 연봉컬럼 뒤 단위 컬럼이 생기면서 데이터값에 이 생기는 것을 알 수 있다.

SELECT emp_id 사번, salary*12 연봉, '원' 단위 FROM employee;

그러나, 굳이 컬럼을 따로 만들지 않아도 ||가 연결로써 사용되기 때문에 아래와 같이 만들 수 있다. 위 쿼리문과 다른 점은 컬럼이 따로 나눠지지 않는다는 것이다.

SELECT emp_id 사번, salary*12||'원' 연봉 FROM employee;

9) SYSDATE 함수

기본적으로 현재 날짜, 내부적으로는 실행시점의 현재 시간까지 저장하고 있는 객체

  • 날짜 데이터에 정수 연산은 일수 연산으로 동작 (+, -만 가능)
  • 날짜 데이터끼리의 연산은 - 만 가능하며 두 날짜 사이의 일수가 결과
  • 근무일수, 근속년수 등을 구할 때 쓸 수 있다. (아직까지는.. 이것만 배움!)

3. 그 외..

  • Query 문 : DBMS에게 전달하는 명령문
  • Ctrl + Enter : 실행 단축키
  • 테이블(Table) : 데이터의 카테고리 분류
  • 헤더(Header) : 테이블의 가장 위 컬럼의 이름 표시 부분
  • Row : 테이블의 행(가로) 부분, Recode라고도 한다.
  • Colume : 테이블의 열(세로) 부분
  • Ctrl + Shift + d : 행 복사 붙여넣기 단축키
  • * 뒤에는 다른 컬럼을 붙일 수 없다.
  • dual(dummy테이블) : 어떤 값 하나를 출력할 때 테스트하는 오라클 내부 테이블

댓글남기기