DB/SQL

SQL 개념

도어누들 2022. 12. 22. 17:22

SQL이란?

SQL은 Structured Query Language의 약자

SQL을 사용하면 데이터베이스에 액세스하고 조작할 수 있습니다.

SQL 키워드는 대소문자를 구분하지 않습니다

텍스트 값을 작은따옴표로 묶어야 합니다(대부분의 데이터베이스 시스템에서는 큰따옴표도 허용함)

 

 

RDBMS

관계형 데이터베이스 관리 시스템

SQL Server과 MS SQL , IBM DB2, Oracle, MySQL 및 Microsoft Access와

같은 모든 최신 데이터베이스 시스템의 기반입니다.

데이터는 테이블이라는 데이터베이스 객체에 저장됩니다. 

테이블은 관련 데이터 항목의 모음이며 열(칼럼, 필드)과 행(레코드)으로 구성됩니다.

 

SELECT 문

*(별)은 모든 컬럼을 뜻한다.

 

SELECT DISTINCT를 쓰면 중복값을 빼고 조회가 된다.

 

셀렉트에는 산술연산자가 가능하다.

 

SELECT TOP절은 반환할 레코드 수를 지정하는 데 사용 (많은 레코드가 있는 테이블에 유용)

그러나 모든 DB가 TOP절을 사용하는 것은 아니다. 

 

 

 

MySQL LIMIT은 제한된 수의 레코드를 선택하는 절

 

limit 절 사용 예시

 

 

Oracle FETCH FIRST n(넘버) ROWS ONLY

 

오라클 fetch 절 예시

 

FROM절

FORM 뒤에는 테이블 명이 온다.

 

 

WHERE절

레코드를 필터링하는 데 사용한다.

 

 

또한 논리 연산자인 AND, OR, NOT도 쓸 수 있다.

 

 

ORDER BY 절

결과 집합을 오름차순 또는 내림차순으로 정렬하는 데 사용한다.

디폴트값 오름차순(ASC)이다. 내림차순으로 정렬하려면 DESC키워드를 사용한다.

 

 

 

GROUP BY

동일한 값을 가진 행을 요약 행으로 그룹화한다.

GROUP BY명령문은

종종 집계 함수( COUNT(), MAX(), MIN(), SUM(), AVG())와 함께 사용되어

결과 집합을 하나 이상의 열로 그룹화한다.

GROUP BY절에 오는 컬럼명은 SELECT 절에 있어야 한다.

 

그룹바이 syntax

 

예시

 

 

HAVING 

group by의 조건절이라고 생각하면 된다.

 

 

 

MIN() 및 MAX() 함수

MIN()함수는 선택한 열의 가장 작은 값을 반환

MAX()함수는 선택한 열의 가장 큰 값을 반환

 

 

 

COUNT(), AVG() 및 SUM() 함수

 

COUNT()함수는 지정된 기준과 일치하는 행 수를 반환

기본적으로 null값은 무시되지만 *을 사용하여 계산이 가능하다

COUNT(*)경우 NULL값 포함 모든 컬럼의 갯수를 계산한다.

 

count 예시

// 전체 행의 개수
SELECT COUNT(*) FROM TABLE_NAME

// NULL을 포함하지 않는 행의 개수
SELECT COUNT(COLUMN_NAME) FROM TABLE_NAME

// 중복 값을 제외한 행의 개수
SELECT COUNT(DISTINCT COLUMN_NAME) FROM TABLE_NAME

//값을 치환해서 행의 갯수 
SELECT COUNT(IFNULL(COLUMN_NAME,0)) FROM TABLE_NAME

따라서 집계합수에서는 이 NULL을 포함할 건지, 0으로 치환할 것지, 제외할건지 생각해야한다.

 

 

AVG()함수는 숫자 열의 평균 값을 반환

avg 예시

 

 

SUM()함수는 숫자 열의 총 합계를 반환

 

 


INSERT 테이블명(컬럼명) INTO (데이터) 

 

테이블에 새 레코드를 삽입하는 데 사용

추천 syntax 형식

 

 

UPDATE (테이블명) SET(컬럼명 =값, ...) WHERE

 

테이블의 기존 레코드를 수정하는 데 사용

where절을 쓰지 않으면 모두 업데이트가 되기 때문에 반드시 기입한다.

syntax

 

DELETE FROM (테이블명) WHERE (조건)

테이블의 기존 레코드를 삭제하는 데 사용

where절을 쓰지 않으면 모두 삭제가 되기 때문에 반드시 기입한다.

syntax

 

 

DDL, DML, DCL

 

DDL 이란?

데이터 정의 언어 이며 릴레이션(테이블)을 정의 하기위해 사용하는 언어입니다.

(creat, alter, drop)

 

 

DML 이란?

데이터 조작 언어로서 데이터를 추가 수정 삭제 하기를 위한 데이터 관리 언어입니다.

(Select, update, insert, delete)

 

 

DCL 이란?

데이터 제어 언어로 릴레이션 또는 데이터를 관리하고 접근하는 권한을 다루기위한 언어 입니다.

(GRANT, REVOKE)