SQL 기초
SQL이란?
- Structured Query Language
- 관계형 데이터베이스 관리 시스템(RDBMS)의 데이터를 관리하기 위해 설계된 프로그래밍 언어
- 관계형 데이터베이스 관리 시스템에서 자료의 검색과 관리, 데이터베이스 스키마 생성과 수정, 데이터베이스 객체 접근 조정 관리를 위해 고안
- 데이터베이스 관련 프로그램들이 SQL을 표준으로 채택
SQL문법 종류
- 데이터 정의 언어 (DDL : Data Definition Language)
• 관계형 데이터베이스의 구조를 정의
- 데이터 조작 언어 (DML : Data Manipulation Language)
• 관계형 데이터베이스에 대해 검색 및 업데이트 등의 데이터 조작을 위해 사용
- 데이터 제어 언어 (DCL : Data Control Language)
• 관계형 데이터베이스에서 데이터에 대한 액세스를 제어
- 데이터 정의 언어 (DDL : Data Definition Language)
• CREATE - 새로운 데이터베이스 관계 (테이블), VIEW, 인덱스, 저장 프로시저 만들기
• DROP - 이미 존재하는 데이터베이스 관계(테이블), 뷰, 인덱스, 저장 프로시저를 제거한다.
• ALTER - 이미 존재하는 데이터베이스 개체에 대한 변경, RENAME의 역할을 한다.
• TRUNCATE - 관계 (테이블)에서 데이터를 돌이킬 수 없는 제거
- 데이터 조작 언어 (DML : Data Manipulation Language)
• SELECT - 검색 (질의)
• INSERT - 삽입 (등록)
• UPDATE - 업데이트 (수정)
• DELETE - 삭제
데이터 정의 언어 (DDL : Data Definition Language)
- SELECT
• 컬럼 별칭
• 컬럼명 [AS] 컬럼 별칭 (AS는 생략 가능)
• ALL - 테이블에 동일한 데이터 행이 있는 경우에도 모든 데이터를 반환한다. 지정하지 않으면 ALL이 선택
• DISTINCT (UNIQUE) - 테이블에 동일한 데이터 행이 있는 경우 중복을 제거한 1 개만 을 돌려 줌
• 문자 함수(CHARACTER FUNCTION)
• LOWER, UPPER, INITCAP, CONCAT, SUBSTR, INSTR, LENGTH, TRIM, REPLACE
• 숫자 함수(NUMBER FUNCTION)
• ROUND (반올림), TRUNC (자르기), MOD (나머지)
• 데이터 형식 변환 함수.(Data Type)
• TO_CHAR, TO_NUMBER, TO_DATE
• 그룹 함수
• AVG (평균), MAX (최댓값), MIN (최솟값), SUM (합계), COUNT (반환되는 행 수)
• 집합 함수
• UNION (합집합), UNION ALL (전체 집합), INTERSECT (교집합), EXCEPT(예외) 또는 MINUS (차집합)
- FROM
• 결합 (JOIN 절)
• 여러 테이블에서 행을 참조하는 경우에 이용해 조인(JOIN)을 사용
• 크로스 조인
• 내부 조인 (등가결합 비균등 조인, 자연 조인, 자체 조인 포함)
• 외부 조인
- WHERE 절
• 데이터를 추출하는 선택 조건식을 지정
• 단일 식을 이용하는 것 외에도, 여러 조건을 조회하는 경우도 많음
• WHERE 절에 그룹 함수를 사용해서는 안된다는 규칙이 존재
• 패턴 매칭 검색
• WHERE 열 이름 LIKE ‘A%’
• 열 이름의 'A'문자값이 해당 데이터 앞부분에 있다면 조회된다.(ex. APPLE, CANON, DEAM등 )
• 'A'문자 뒤에 어떠한 값이 들어와도 검색이 된다.(아무 값도 없어도 된다.)
• '%'는 문자 앞과 뒤에 모두 사용이 가능하다.
• '%A' 또는 'A%' 또는 '%A%'
- GROUP BY절
• 그룹화 열 또는 컬럼명을 포함하는 식을 지정
• SELECT A. B FROM LIST GROUP BY A, B;
- HAVING 절
• GROUP BY 절에 집계한 결과에 조건을 정해줄 때 사용
• SELECT A. B FROM LIST GROUP BY A, B HAVING A > 3
- ORDER BY 절
• 정렬할 컬럼 또는 컬럼을 포함하는 식을 지정하는 것으로 어떠한 경우에도 구문의 마지막에 지정
• 쉼표로 구분하여 여러 열을 지정
• 일반적으로 ASC (ascending order), 즉 오름차순 지정이며, 내림차순 지정하려면 DESC (descending order)로 표기
참고 - https://ko.wikipedia.org/wiki/SQL