< 데이터베이스 개념 >
① 정의
- 조직화된 정보들의 모임
- 통합된 데이터 : 여러 곳에서 사용하던 데이터를 통합하여 하나로 저장한 데이터
- 저장된 데이터 : 디스크, 테이프 같은 컴퓨터 저장장치에 저장된 데이터
- 운영 데이터 : 조직의 목적을 위해 사용되는 데이터
- 공용 데이터 : 공동으로 사용되는 데이터
② 특징
- 실시간 접근성
- 계속적인 변화
- 동시 공용
- 내용에 의한 참조
③ 구성요소
- 사용자 관점 : (논리적구성요소) 개체, 관계
- 시스템 관점 : (물리적구성요소) 비트, 바이트, 블록, 실린더
④ 데이터베이스 시스템의 구성
- 스키마
- 데이터베이스 언어 ( 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 소문자) : 버퍼에 들어가있는 쿼리 확인 가능