개발 및 프로그래밍 관련/데이터베이스(DB)

[SQL] SQL 관련

윤꾸물 2018. 1. 26. 11:51

데이터 베이스를 공부 하게 되면 반드시 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(속성) : 그룹별 최소값