Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

CKtrace's Devlog

[DB] - SQL의 데이터 조작 기능 본문

DB

[DB] - SQL의 데이터 조작 기능

CKtrace 2022. 6. 27. 12:22

 

 

 

 

 

Before Entering...


 

SQL이란 무엇일까?
SQL을 통해 테이블을 어떻게 생성하고 제거할까?
SQL을 통해 레코드를 삭제하는 법은 무엇일까?
...

 

위와 같은 궁금증을 갖는 분들을 위해 제가 포스팅한 글을 첨부하도록 하겠습니다.

 

 

[DB] - SQL의 데이터 정의 기능

What is SQL? SQL, Structured Query Language는 관계 DB를 위한 표준 질의어로 많이 사용되는 언어이고, 사용자가 처리를 원하는 데이터가 무엇인지만 제시하고 데이터 처리 과정에 대해서는 언급할 필요가

cktrace.tistory.com

 

이 글이 여러분들의 궁금증을 해결해줄 수 있을 거라 생각이 듭니다!

 

 

 

 

 

About Data Manipulation Using SQL


 

SQL의 데이터 조작 기능은 SQL을 이용한 데이터 정의 기능과 마찬가지로 사용 용도에 따라 아래와 같이 네 가지로 분류할 수 있습니다!

 

 

위의 네 키워드를 이용해 데이터 검색, 데이터 수정, 데이터 삭제, 데이터 삽입을 할 수 있습니다.

 

각각의 활용 방법에 대해서는 아래에서 더 자세히 알아보도록 하겠습니다!

 

 

 

 

 

Search for Data Using SQL - Main


원하는 데이터를 테이블에서 검색하기 위해서 SELECT라는 SQL 문이 필요합니다.

 

SELECT는 다양한 검색 유형을 지원하는 것뿐만 아니라 많은 사용자들이 사용하기에 중요합니다.

 

또한, SELECT 문을 이용해 검색한 결과는 테이블로 출력된다는 점 유의하세요!

 

검색을 하는 방법에는 아래와 같이 총 10가지의 검색 방법이 존재합니다.

 

① 기본적인 검색

 

② 조건을 만족하는 검색

 

③ 산술식을 이용한 검색

 

④ NULL을 이용한 검색

 

⑤ LIKE를 이용한 검색

 

⑥ 정렬 검색

 

⑦ 집계 함수를 이용한 검색

 

⑧ 그룹별 검색

 

⑨ 여러 테이블에 대한 조인 검색

 

⑩ 부속 질의문을 이용한 검색

 

이 10가지 방법에 대해 핵심만 짧고 간결하게 하나, 하나 다 알아보도록 하겠습니다!

 

 

 

 

 

Search for Data Using SQL - Basic Search


 

기본적인 형태

SELECT [ALL | DISTINCT] attribute_list
FROM table_list;

 

활용 예시

SELECT cust_id, age, grade, address
FROM cust_information;

 

Code Review

☞ cust_information 테이블에서 cust_id, age, grade, address 속성을 가져온다는 것입니다. 

 

 

 

 

 

Search for Data Using SQL - Conditional Search


 

기본적인 형태

SELECT [ALL | DISTINCT] attribute_list
FROM table_list
[WHERE cnodition];

 

활용 예시

SELECT 주문고객, 주문일자, 제품, 수량
FROM 주문내역
WHERE 주문고객 = 'KIM' AND 수량 <= 10;

 

Code Review

☞ 주문고객, 주문일자, 제품, 수량 속성을 주문내역 테이블에서 주문고객은 'KIM'이며, 수량은 10개 이하인 것만 검색하는 것입니다.

 

 

 

 

 

Search for Data Using SQL - Search Using Arithmetic Expressions


 

기본적인 형태

SELECT 키워드와 함께 속성의 이름과 +, -, *, / 등의 산술 연산자, 상수로 구성합니다

 

활용 예시

SELECT 제품이름, 가격 * 1.1 AS "물가반영가격"
FROM 물품;

 

Code Review

☞ 물품 테이블에서 제품이름과 가격 속성을 검색하되 가격에 1.1을 곱해 '물가반영가격'이라는 새 이름으로 출력하는 것입니다.

 

 

 

 

 

Search for Data Using SQL - Search Using Like


 

기본적인 형태

% -> 0개 이상의 문자
_ -> 1개의 문자

사용 예시
LIKE '%A' -> A로 끝나는 문자열을 찾을 때
LIKE 'A%' -> A로 시작하는 문자열을 찾을 때
LIKE '%A%' -> A가 포함된 문자열을 찾을 때
LIKE 'A__' -> A로 시작하는 3자 길이의 문자열을 찾을 때
LIKE '_A%' -> 두 번째 글자가 A인 문자열을 찾을 때

 

활용 예시

SELECT 회원이름
FROM 회원정보
WHERE 회원이름 LIKE '김__';

 

Code Review

☞ 회원정보 테이블에서 '김'으로 시작하며 이름이 세 글자인 회원이름을 출력하는 것입니다.

 

 

 

 

 

Search for Data Using SQL - Sort Search


 

기본적인 형태

SELECT [ALL | DISTINCT] attribute_list
FROM table_list
[WHERE condition]
[ORDER BY attribute_list[ASC|DESC]];

-- 오름차순 정렬 : ASC / 내림차순 정렬 : DESC

 

활용 예시

SELECT 주문자, 제품, 제품수량
FROM 주문정보
WHERE 제품수량 <= 5
ORDER BY 제품 ASC, 제품수량 DESC;

 

Code Review

☞ 주문정보 테이블에서 주문자, 제품, 제품수량 속성이 출력되지만, 제품수량이 5개보다 적으며, 제품에 따라 오름차순으로 1차적으로 정렬, 동일 제품은 제품수량에 따라 내림차순으로 2차 정렬되도록 출력됩니다.

 

 

 

 

 

Search for Data Using SQL - Search Using  Aggregate Function


 

집계 함수(Aggregate Function)란 개수, 합계, 평균, 최댓값, 최솟값의 계산 기능을 제공하는 함수이며, 열 함수(Column Function)라고도 합니다.

 

집계함수 목록

COUNT -> 속성 값의 개수

MAX -> 속성 값의 최대값

MIN -> 속성 값의 최솟값

SUM -> 속성 값의 합계

AVG -> 속성 값의 평균

 

활용 예시

SELECT AVG(가격)
FROM 상품;

 

Code Review

☞ 상품 테이블에 있는 모든 상품의 가격의 평균을 출력합니다.

 

 

 

 

 

Search for Data Using SQL - Search By Group


 

기본 형태

SELECT [ALL|DISTINCT] attribute_list
FROM table_list
[WHERE condition]
[GROUP BY attribute_list [HAVING condition]]
[ORDER BY attribute_list [ASC|DESC]];

 

활용 예시

SELECT 제품, 주문회원, AVG(수량) AS 평균주문수량
FROM 주문정보
GROUP BY 제품, HAVING AVG(수량) > 5;

 

Code Review

☞ 제품을 기준으로 1차 그룹을 나누고, 각 그룹에서 주문회원별로 2차로 그룹 지어 수량의 평균을 계산하여 출력합니다.

 

 

 

 

 

Search for Data Using SQL - Search Join for Multiple Tables


 

조인 검색이란 여러 개의 테이블을 연결해 데이터를 검색하는 것입니다.

 

테이블을 연결 할 때, 조인 속성의 이름은 달라도 가능하지만 도메인은 반드시 같아야 합니다. 

 

또한 일반적으로 테이블의 관계를 나타내는 외래키를 조인 속성으로 이용합니다.

 

활용 예시

SELECT 상품정보.상품이름
FROM 상품정보, 주문내역
WHERE 주문내역.주문고객 = 'ABC' AND 상품정보.상품번호 = 주문내역.주문상품

 

Code Review

☞ 검색에 필요한 상품정보 테이블과 주문내역 테이블을 모두 나열한 후, 주문고객이 ABC라는 조건과 함께, 조인 속성인 주문상품 속성 값과 상품번호 속성 값이 같은 조인 조건을 만족하는 결과를 출력합니다.

 

 

 

 

 

Search for Data Using SQL - Search through the Sub Query


 

SELECT 문 안에 다른 SELECT 문을 포함할 수 있습니다.

 

이렇게 SELECT문 안에 들어있는 SELECT 문을 부속 질의문 또는 서브 쿼리(Sub Query)라 하며 이러한 SELECT문을 포함하는 SELECT문을 주 쿼리(Main Query)라 합니다.

 

 

서브 쿼리는 주 쿼리보다 먼저 실행된다는 점 유의해주세요!

 

 

활용 예시 ①

SELECT 상품명, 가격
FROM 제품정보
WHERE 제조회사=(SELECT 제조회사
				FROM 제품정보
                WHERE 상품명 = '눈내리는오르골')

 

Code Review

☞ 눈내리는오르골의 제조회사가 만든 상품들의 이름과 가격을 출력합니다.

 

Operator Description
IN 서브 쿼리의 결과 값 중 일치하는 것 있으면 참
NOT IN 서브 쿼리의 결과 값 중 일치하는 것 없으면 참
EXISTS 서브 쿼리의 결과 값이 하나라도 존재하면 검색 조건 참
NOT EXISTS 서브 쿼리의 결과 값이 하나도 존재하지 않으면 검색 조건 참
ALL 서브 쿼리의 결과 값이 비교한 모두와 참이면 검색 조건 만족
ANY / SOME 서브 쿼리의 결과 값 중 비교한 결과가 하나라도 참이면 검색 조건 만족

 

활용 예시 ②

SELECT 상품명, 가격
FROM 제품정보
WHERE EXISTS (SELECT *
			  FROM 제품정보
			  WHERE 제품정보.제품번호 = 주문.주문상품
              		AND 제품정보.상품명 = '눈내리는오르골')

 

Code Review

☞ 눈내리는오르골의 제조회사가 만든 상품들의 이름과 가격을 출력합니다.

 

 

 

 

 

Data Insertion


 

테이블에 새로운 데이터를 삽입하기 위해 필요한 SQL 문은 INSERT입니다.

 

테이블에 데이터를 삽입하는 방법은 직접 삽입하는 방법과 서브 쿼리를 이용하는 방법 두 가지이며, 하나씩 알아보도록 하겠습니다.

 

 

Insert Data Directly

 

기본 형태

INSERT
INTO table_name[(attribute_list)]
VALUES (attribute_list);

 

활용 예시

INSERT
INTO 고객(고객ID, 고객이름)
VALUES ('123', 'KIM');

 

Code Review

☞ 고객 테이블의 고객ID 속성은 123과, 고객이름 속성은 KIM과 일대일 대응이 된다고 생각하면 이해하기 더 쉬울 것 같습니다. 그래서 123은 고객ID 속성에 삽입되고, KIM은 고객이름 속성에 삽입됩니다.

 

 

Insert Data Using Sub Query

 

기본 형태

INSERT
INTO table_name[(attribute_list)]
SELECT 문;

 

활용 예시

INSERT
INTO 샘숭제품정보(상품명, 재고수량, 가격)
SELECT 상품명, 재고수량, 가격
FROM 제품관련
WHERE 제조회사 = '샘숭';

 

Code Review

☞ 샘숭에서 제조한 상품의 상품명, 재고수량, 가격을 제품관련 테이블에서 검색하여 샘숭제품정보 테이블에 삽입합니다.

 

 

 

 

 

Data Modification


 

테이블의 데이터를 수정하기 위해 필요한 SQL 문은 UPDATE입니다.

 

기본 형태

UPDATE table_name
SET attribute_name1 = value1, attribute_name2 = value2, ... 
[WHERE condition]

 

활용 예시

UPDATE 상품
SET 상품명 = '민트초코파이' 
WHERE 상품인덱스 = 'A01';

 

Code Review

☞ 상품 테이블에서 상품인덱스가 A01인 상품의 상품명을 민트초코파이로 수정합니다.

 

 

 

 

 

Data Deletion


테이블의 데이터를 삭제하기 위해 필요한 SQL 문은 DELETE입니다.

 

기본 형태

DELETE
FROM table_name
[WHERE condition]

 

활용 예시

DELETE
FROM 상품주문
WHERE 상품주문날짜 = '2022-03-03';

 

Code Review

☞ 상품주문 테이블에서 상품주문날짜가 2022년 3월 3일인 주문내역을 삭제합니다.

 

 

 

 

 

이상으로 SQL의 데이터 조작 기능에 대한 글을 마치도록 하겠습니다.

 

긴 글이었지만 읽어주셔서 감사하다는 말씀드리며, 다음에는 더 좋은 글로 찾아뵙도록 하겠습니다!

 

감사합니다.

 

 

 

 

 

'DB' 카테고리의 다른 글

[DB] - 삽입 SQL (ESQL)  (0) 2022.06.27
[DB] - 뷰  (0) 2022.06.27
[DB] - SQL의 데이터 정의 기능  (0) 2022.06.23
[DB] - 관계 데이터 연산  (0) 2022.06.23
[DB] - 논리적 데이터 모델 / 관계 데이터 모델  (0) 2022.06.23
Comments