본문 바로가기

자바 웹 개발자가 될거야/DB

[DB] 데이터베이스 개념 / 데이터모델링 / DDL / CREATE문 / 제약조건 / ALTER문 / DROP문 / TRUNCATE문 / DML / SELECT문

< 데이터베이스 개념 >

 

① 정의

- 조직화된 정보들의 모임

 

- 통합된 데이터 :  여러 곳에서 사용하던 데이터를 통합하여 하나로 저장한 데이터

- 저장된 데이터 : 디스크, 테이프 같은 컴퓨터 저장장치에 저장된 데이터

- 운영 데이터 : 조직의 목적을 위해 사용되는 데이터

- 공용 데이터 : 공동으로 사용되는 데이터

 

② 특징

- 실시간 접근성

- 계속적인 변화

- 동시 공용

- 내용에 의한 참조

 

③ 구성요소

- 사용자 관점 : (논리적구성요소) 개체, 관계

- 시스템 관점 : (물리적구성요소) 비트, 바이트, 블록, 실린더

 

④ 데이터베이스 시스템의 구성

- 스키마

- 데이터베이스 언어 ( SQL )

- 사용자

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

- 데이터베이스 관리자 ( DBA )

- 하드웨어

 

 

< 데이터 모델링 >

 

① 과정

- 요구사항 수집 및 분석 → 설계 → 데이터베이스 구현

- 요구사항 수집 및 분석 → 개념 모델링 → 논리 모델링 → 물리 모델링

  · 개념 모델링 (ERD) : 테이블, 컬럼 결정

  · 논리 모델링 (구체화된 설계도) : 데이터타입, 사이즈, 제약조건, default값

 

 

< 데이터 정의어(DDL) - CREATE >

 

① 기본 문법

 

- CREATE TABLE 테이블명 ( 속성명1 데이터타입(사이즈), 속성명2 데이터타입(사이즈), ...) ;

 

 

② 주의사항

 

- DB 이름 지을 때 문자로 시작해야함

- 특수문자는 _ , #, $ 가능

- 이름 사이에 공백 불가능

- desc 테이블명 : 테이블 구조 확인하기

- 명령어, 함수, 키워드, 데이터타입 외 일반적인 문자나 날짜는 ' '로 묶어줘야 함

 

③ 제약조건

 

- Not Null : 컬럼의 null값이 들어갈 수 없도록 제한 / 필수 정보 컬럼에 선언 ex) 이름, 주민번호, 전화번호 등

 

- Unique : 컬럼에 중복된 데이터가 들어갈 수 없도록 제한 / 고유한 정보 컬럼에 선언 ex) 주민번호, 전화번호, 메일 등

 

- Primary key (기본키) :  컬럼에 null값과 중복된 값이 들어갈 수 없도록 제한(NOT NULL + UNIQUE 성격) 테이블마다 한번 선언 가능 / 대표 컬럼에 선언 ex) 학번, 사번, 주문번호 등

 

- Foreign key (외래키) :  자기 자신 테이블이나 다른 테이블의 특정 컬럼을 참조하는 제약조건 / FK 제약조건이 정의된 컬럼에는 참조하는 컬럼의 값만 들어올 수 있다

 

 

- Check : 컬럼이 만족해야하는 조건문을 지정하는 제약조건/  

  ex ) 주민번호 컬럼 ← check 제약조건 조건문 : length(주민번호) = 13

  ex ) 성별 컬럼 ← check 제약조건 조건문 : 성별 ='남' or 성별='여'

  ex ) salary ← check 제약조건 조건문 :  salary  > 0

 

 

 

< 데이터 정의어 (DDL) - ALTER >

 

① 기본문법

 

- ALTER TABLE 테이블명 ADD ( 속성명 데이터타입(사이즈));

- ALTER TABLE 테이블명 MODIFY ( 속성명 데이터타입(사이즈));

- ALTER TABLE 테이블명 DROP COLUMN 속성명 ;

 

※ 컬럼 사이즈 변경

- col 컬럼명 format a변경할사이즈

- 단, 숫자나 날짜 데이터타입은 사이즈 변경하면 안됨 !

- 건드리면 안되는거 건드렸으면 나갔다가 다시 들어오면 됨

 

 

< 데이터 정의어(DDL) - DROP >

 

① 기본문법

 

- DROP TABLE 테이블명 ;

- DDL구문이므로 rollback 안됨

 

 

< 데이터 정의어(DDL) - TRUNCATE >

 

① 기본문법

 

- TRUNCATE TABLE 테이블명;

 

- 구조만 남고 테이블 모든 행 제거

- 빈테이블 상태

ID NAME PHONE_NUM

- DDL구문이므로 rollback 안됨

 

 

< 데이터 조작어(DML) >

 

- 오브젝트 안의 데이터들을 조작

- 테이블의 데이터들 검색 / 삽입/ 수정 / 삭제

 

 

< 데이터 조작어(DML) - SELECT >

 

① 기본문법

 

- SELECT 검색할 속성명 FROM 테이블명 WHERE 조건

 

- SELECT * FROM 테이블명  : 모든 컬럼 조회

 

- 쿼리작성할 때 조회할 속성명 나열한대로 보여줌

 

 

< 오라클 DB 오타 수정하기 >

 

- 줄바꿈했으면 윗줄로 올라가서 지울 수 없다

 

- 가장 최근에 작성한 쿼리만 수정 가능

 

- 버퍼로 들어가기 ed → i 눌러서 편집모드로 변경 → 수정 → ESC 키 눌러서 읽기전용으로 돌아오기  → 콜론(:)wq 찍어서 저장 → /치고 엔터치면 반영

 

- 버퍼에서 수정할 때 세미콜론(;) 절대 찍으면 안됨 ! 없는게 정상

 

- l (영어 L 소문자) : 버퍼에 들어가있는 쿼리 확인 가능