CS/데이터베이스

[데이터베이스] SQL 정의어, 조작어 SELECT 문법 정리

happy_life 2022. 8. 4. 17:51

[데이터베이스] SQL 정의어, 조작어 SELECT 문법 정리

 

목차

1. SQL 정의어

2. SQL 조작어 SELECT

 

SQL 정의어

개념

데이터베이스를 정의하는 언어이며, 데이터를 생성, 수정, 삭제하는 등의 데이터 전체의 골격을 결정하는 역할을 하는 언어 로 CREATE, ALTER, DROP이 있다.

 

 

코드 예시

1.  CREATE

CREATE TABLE address(
ID int not null,
name varchar(20) not null,
age int not null,
address char(25),
primary key(ID)
);

CREATE

 

 

2.  ALTER

ALTER TABLE address
ADD (birth date);

ALTER

 

 

3. DROP

DROP TABLE address

 

 

 

SQL 조작어 SELECT

개념

 데이터 조작어는 조회,삽입, 수정, 삭제할 때 사용하는 명령어로 SELECT, INSERT, UPDATE, DELETE 등이 있다. 여기선 SELECT에 대해 알아본다.

 

1) SELECT - 전체

 

예시

CUSTOMER 테이블 전체 출력하기

SELECT * FROM CUSTOMER

결과

 

 

2) SELECT - 산술식 이용

 

예시

CUSTOMER 테이블에서 NAME, POINT 속성만 찾아 출력하되, POINT에 500추가하기

SELECT NAME, POINT+500 AS 수정POINT FROM CUSTOMER

결과

 

산술식 이용 시 기존의 데이터는 바뀌지 않으며, 출력할 때 산술이 계산된 결과가 나온다.

 

 

3) SELECT - 조건  WHERE 검색

WHERE을 사용한다.

 

 

예시

POINT가 2000이상인 CUSTOMER 찾기

SELECT * FROM CUSTOMER WHERE POINT >=2000

 

결과

 

WHERE을 사용하고, 조건 연산자인 >=을 사용해 조건 2000을 만족하는 데이터만 꺼내왔다. 

조건 검색 연산자는 아래 표를 참고하자.

 

조건 검색 연산자

 

 

4) SELECT - 문자열 조건 검색 LIKE

LIKE를 사용해 부분적으로 일치하는 데이터를 검색할 수 있다. 오직 문자열을 이용하는 조건에서만 사용가능하다.

 

기호

기호 설명
* 0개 이상의 문자
? 한 개의 문자

 

이해가 되지 않으니, 아래의 예시를 통해 확인해보자.

 

 

예시

이름이 김으로 시작하는 CUSTOMER 찾기

SELECT * FROM CUSTOMER WHERE LIKE '김%';

결과

 

* 대신 %을 썼는데, SQL마다 각 문법이 다르다. 나는 H2를 쓰기 때문에 %를 사용하였다. 유연하게 이해하면 좋을 것같다.

 

 

 

5) SELECT - 오름차순/내림차순

ASC, DESC를 통해 오름차순, 내림차순으로 결과 데이터를 정렬할 수 있다.

 

 

예시

POINT가 2000이상인 손님을 내림차순으로 정렬하기

SELECT * FROM CUSTOMER WHERE POINT >= 2000 
ORDER BY POINT DESC;

내림차순 결과

 

 

6) SELECT - 집계함수 

특정 속성 값을 통계적으로 계산한 결과를 검색하기 위해 집계 함수를 이용할 수 있다.

 

주의사항

- Null인 속성은 제외하고 계산한다.

- 집계함수는 WHERE절에서 사용X, SELECT 절이나, HAVING 절에서만 사용O

 

종류

함수 의미 사용가능한 속성 타입
COUNT 속성 값의 개수 모든 데이터
MAX 속성 값의 최대값
MIN 속성 값의 최소값
SUM 속성 값 개수의 합계 숫자 데이터
AVG 속성 값의 평균

 

 

예시

CUSTOMER 테이블에서 나이가 25살 이상인 고객수 찾기

SELECT COUNT(AGE) FROM CUSTOMER WHERE AGE >=25

결과

 

 

7) SELECT - 그룹별 검색

GROUP BY 키워드를 이용해 특정 속성의 값이 같은 튜플을 모아 그룹을 만들고, 그룹별로 검색할 수 있다.

 

주의사항

- HAVING 키워드를 함께 이용해그룹에 대한 조건을 작성해야한다. (HAVING 절에는 집계 함수만 사용할 수 있다.)

- 그룹을 나누는 기준이 되는 속성을 SELECT 절에도 작성하는 것이 좋다.

 

 

예시

COMPANY 테이블에서 부서별 포인트의 총합이 4000 이상인 부서를 부서로 그룹화해 출력하기

SELECT DEPARTMENT, SUM(POINT) AS 부서별포인트총합
FROM COMPANY
GROUP BY DEPARTMENT HAVING SUM(POINT)>=4000;

결과

 

 

8) SELECT -  JOIN

https://abcdefgh123123.tistory.com/463