데이터 베이스를 공부 하게 되면 반드시 DBMS 데이터베이스관리시스템 을 공부 해야한다.
관계형 DBMS로는 Oracle, MySQL, MSSQL 등이 존재한다. 여기서 공통적으로 쓸수 있는 것은 SQL문이면 이를 통해
데이터베이스를 관리 및 조회 제어할 수 있다.
SQL(Structured Query Language) 특징
1) 관계대수와 관계해석을 기초로 한 고급 데이터 언어
2) 이해하기 쉬운 형태
3) 대화식 질의어로 사용 가능
4) 데이터 정의, 조작, 제어 기능 제공
5) COBOL, C, PASCAL 등의 언어에 삽입 -> 내장 SQL
6) 레코드 집합 단위로 처리
7) DBMS에서 사용되는 비 절차적 대화형 Language (다른 프로그래밍 언어는 절차중심적인데 반해서 한줄만으로도 가능)
SQL 구분
1) 정의어: DDL (CREATE, ALTER, DROP)
정의 변경 제거
2) 조작어: DML (SELECT, INSERT, DELETE, UPDATE)
검색 삽입 삭제 갱신
3) 제어어: DCL (GRANT, REVOKE, COMMIT, ROLLBACK)
권한부여 권한취소 transaction 제어
쿼리문을 작성 및 분석할때 매우 중요한것은 SQL 수행 순서를 제대로 알아야 한다.
다음과 같다.
SQL문 수행 순서
FROM -> WHERE -> GROUP BY -> HAVING -> SELECT -> ORDER BY
VIEW 특징
- 구조가 기본테이블과 거의 유사
- 물리적으로 구현되지 않았다.
- 논리적 독립성 제공
- 필요한 데이터로만 구성 -> 관리 수월, 명령 간단
- 데이터 보호 효율적 -> 자동 보안
- 삽입, 삭제, 갱신 연산이 가능하지만 제한적이다.
- 다른 VIEW 정의에 기초
- 하나의 VIEW를 삭제 -> 그 VIEW를 기초로 만들어진 VIEW도 자동 삭제
- 독립적인 인덱스를 가질 수 없다.
- 뷰에 대한 검색은 일반 테이블과는 같다.
- VIEW의 정의 변경(Alter VIEW) 불가
그룹함수 (아래의 함수를 사용하게 되면 반드시 GROUP BY 가 와야함)
COUNT(속성) : 그룹별 튜플 수
AVG(속성) : 그룹별 평균
SUM(속성) : 그룹별 합계
MAX(속성) : 그룹별 최대값
MIN(속성) : 그룹별 최소값