[ DB ]
DB(데이터,정보,자료)를 다루는 시스템
DBMS라고 함
: MySQL, 오라클, ...
실무에서 DBMS가 변경되는 일이 매우 자주 발생함!!!!!
우리는 무엇을 어필해야하나?
-> 팀프로젝트에서 DBMS를 변경한 경험이있다!! 실무처럼!!
-> 중후반부에서는 오라클로 DB를 변경할 예정
JAVA 결합도가 낮고 응집도가 높은 코드를 만들어내는게 목표
DB를 왜 사용해야하는가???
DB의 ★ 목표는 중복데이터가 없는 DB를 만드는것 ★
-> 서버 비용이 절감
-> 영업 이익 증가
->
학생 테이블 : 정보가 저장되어있는 집합 PK(고유키)로 각 행을 식별
PK(학번) 이름 점수 동아리
1001 홍길동 80 농구부 >> 데이터는 행(튜플,레코드,row) 단위로 저장됨
1002 임꺽정 75 미술부
>> 열(column,속성,필드,attribute) : 멤버변수,인스턴스 변수 (VO)와 맞물림
음악
11 aa bb
12 cc dd
.
.
회원
1001 A 11 << 테이블간의 '관계'가 형성되었다! 테이블을 entity라고 보면 됨
1002 B 12 이러한 관계를 ERD 라고 함 (entity relationship diagram) 개체 관계 그림
ERD를 설계할 때에 잘 작성 하는 것이 매우 중요함!★
DB에서 활용하는 언어 SQL(쿼리문)
인터프리터 언어(채팅형 언어)
한줄씩 코딩하고 실행할수있음
-- 주석
; 마침표
가독성을 위해 대문자로 작성
CREATE, DROP
INSERT, UPDATE, DELETE
SELECT
-> CREATE DATABASE JIN;
Query OK 나와야함
->USE JIN;
Database changed
-> SHOW TABLES;
-> EXIT;
보통 sql은 대소문자 구분 안함 (가독성 때문에 대문자로 쓰는게 보편적)
================================================
UPDATE 테이블명 SET 열=값,열=값,... WHERE 열=조건;
DELETE FROM 테이블명 WHERE 열=조건;
↓ 컬럼명 향후 VO의 멤버변수가 될 친구들
mysql> CREATE TABLE STUDENT(
-> NUM INT PRIMARY KEY AUTO_INCREMENT,
-> NAME VARCHAR(15) NOT NULL,
-> SCORE INT DEFAULT 0,
-> POS VARCHAR(10) NOT NULL,
-> LV INT DEFAULT 5
-> );
Query OK, 0 rows affected (0.02 sec)
뒤에 붙어있는 애들을 제약 조건이라고 함
STRING 대신 VARCHAR를 쓴다. 공간을 미리 지정해 줘야 한다. e.g. 15바이트 이상 안됨
닉네임 글자수 제한
PRIMARY KEY AUTO_INCREMENT,
보통 같이 씀; 시스템에서 값을 부여 해 주세용
NOT NULL,
비어있는 값은 받지 않겠당 e.g. 회원가입 할때 이름 안쓰면 가입 안됨
================================================
SELECT * FROM STUDENT; //별표는 잘 쓰지 안항용 성능저하
UPDATE STUDENT SET SCORE = 1, LV=4 WHERE NUM=12;
//데이타 바꿀꺼야 넘버가 12인에
mysql> DELETE FROM STUDENT WHERE NUM=12;
Query OK, 1 row affected (0.00 sec)
--주석
mysql> -- 학생 테이블에서 이름, 포지션만 검색하고싶어~~
mysql> SELECT NAME,POS FROM STUDENT;
+----------+--------+
| NAME | POS |
+----------+--------+
| 티모 | 탑 |
| 아리 | 미드 |
| 아무무 | 서포터 |
| 모르가나 | 서포터 |
| 오리아나 | 미드 |
| 에코 | 정글 |
| 이즈리얼 | 바텀 |
| 그웬 | 탑 |
| 이렐리아 | 탑 |
| 잭스 | 탑 |
| 말파이트 | 탑 |
+----------+--------+
11 rows in set (0.00 sec)
================================================