티스토리 뷰

DataBase System

SQL 조작

김남김 2022. 8. 22. 22:18

SQL의 데이터 조작 기능

 

데이터 검색 : SELECT

  1. 기본 검색
  • SELECT 키워드와 함께 검색하고 싶은 속성의 이름 나열
  • FROM 키워드와 함께 검색하고 싶은 속성이 있는 테이블의 이름 나열
  • 검색 결과는 테이블 형태로 반환됨

  • ALL : 결과 테이블이 투플의 중복을 허용하도록 지정, 생략 가능
  • DISTINCT : 결과 테이블이 중복을 허용하도록 지정

IF 고객 테이블에 존재하는 모든 속성을 검색

SELECT 고객아이디, 고객이름, 나이, 등급, 직업, 적립급
FROM 고객;
----------------------
SELECT *
FROM 고객;

AS 키워드를 이용해 결과 테이블에서 속성의 이름을 바꾸어 출력 가능

SELECT 고객이름 AS 고객;
FROM 고객;

 

2. 산술식을 이용한 검색

  • SELECT 키워드와 함꼐 산술식 제시
  • 속성의 값이 실제로 변경되는 것은 아니고 결과 테이블에서만 계산된 결과 값이 출력됨
  • 산술식을 이용한 검색
SELECT 제품명, 단가 + 500 AS 조정단가
FROM 제품;

 

조건 검색

조건을 만족하는 데이터만 검색

 

  • WHERE 키워드와 함께 비교 연산자와 논리 연산자를 이용한 검색 조건 제시-조건에서 문자나 날짜 값은 작은 따옴표로 묶어서 표현
  • -숫자 뿐만 아니라 문자나 날씨 값을 비교한 것도 가능

 

IF 제품테이블에서 한빛제과가 제조한 제품의 제품명, 재고량, 단가를 검색해보자

 

SELECT 제품명, 재고량, 단가
FROM 제품
WHERE 제조업체 = '한빛제과';

 


 

3. LIKE를 이용한 검색

  • LIKE 키워드를 이용해 부분적으로 일치하는 데이터를 검색
  • 문자열을 이용하는 조건에만 LIKE 키워드 사용 가능

 

IF 고객테이블에서 성이 김씨인 고객의 고객이름, 나이, 등급, 적립금을 검색

SELECT 고객이름, 나이, 등급, 적립금
FROM 고객
WHERE 고객이름 like"김*"

 

 

  1. NULL를 이용한 검색
  • IS NULL 키워드를 이용해 검색 조건에서 특정 속성의 값이 널 값인지를 비교
  • IS NOT NULL 키워드를 이용하면 특정 속성의 값이 널 값이 아닌지를 비교

IF 고객테이블에서 나이가 아직 입력되지 않은 고객의 이름을 검색해보자

 

SELECT 고객이름
FROM 고객
WHERE 나이 IS NULL

 


 

4. 정렬 검색

  • OREDER BY 키워드를 이용해 결과 테이블 내용을 사용자가 원하는 순서로 출력
  • ORDER BY 키워드와 함께 정렬 기준이 되는 속성과 정렬 방식을 지정-여러 기준에 따라 정렬하려면 정렬 기준이 되는 속성을 차례대로 제시
  • -오름차순(기본): ASC / 내림차순: DSEC

IF 고객테이블에서 고객이름, 등급, 나이를 검색하되, 나이를 기준으로 내림차순 정렬해보자

 

SELECT 고객이름, 등급, 나이
FROM 고객
ORDER BY 나이 DESC;

 

 


 

5. 집계 함수를 이용한 검색

  • 특정 속성 값을 통계적으로 계산한 결과를 검색하기 위해 집계 함수를 이용
    • 집계 함수(aggregate function)
      • 개수, 합계, 평균, 최대값, 최소값의 계산 기능을 제공
  • 집계 함수 사용 시 주의 사항-집계 함수는 WHERE 절에서는 사용할 수 없고 SELECT절이나 HAVING 절에서만 사용 가능
  • -집계 함수는 널인 속성 값은 제외하고 계산함

 

 

IF 제품 테이블에서 모든 제품의 단가 평균을 검색해보자

SELECT AVG(단가)
FROM 제품;

 

IF 제품 테이블에서 제조업체의 수를 검색해보자

SELECT COUNT(DISTINCT 제조업체)) AS '제조업체 수'
FROM 제품;
#DISTINCT 중복제거

 


6. 그룹별 검색

 

 

IF 제품 테이블에서 주문제품별 수량의 합계를 검색

SELECT 주문제품, SUM(수량) AS 총주문수량
FROM 제품
GROUP BY 주문제품;

 


 

 

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

  • 조인 검색: 여러 개의 테이블을 연결하여 데이터를 검색하는 것
  • 조인 속성: 조인 검색을 위해 테이블을 연결해주는 속성
    • 연결하려는 테이블 간에 조인 속성의 이름은 달라도 되지만 도메인은 같아야 함
    • 일반적으로 외래키가 조인 속성으로 이용됨
  • FROM 절에 검색에 필요한 모든 테이블을 나열
  • WHERE 절에 조인 속성의 값이 같아야 함을 의미하는 조인 조건을 제시
  • 같은 이름의 속성이 서로 다른 테이블에 존재할 수 있기 때문에 속성 이름 앞에 해당 속성이 소속된 테이블의 이름을 표시
  • ex) 주문.주문고객

IF 판매 데이터베이스에서 banana 고객이 주문한 제품의 이름을 검색

SELECT 제품명
FROM 주문, 제품
WHERE 주문.주문고객 = 'banana' and 주문.주문제품=제품.제품번호;

 

 


 

 

8. 부속 질의문을 이용한 검색

  • SLECT 문 안에 또 다른 SELECT 문을 포함하는 질의
    • 상위 질의문(주 질의문): 다른 SELECT문을 포함하는 SELECT문
    • 부속 질의문(서브 질의문): 다른 SELECT 문 안에 내포된 SELECT 문
      • 괄호로 묶어서 작성, ORDER BY 절에 사용할 수 없음
      • 단일 행 부속 질의문 : 하나의 행을 결과로 반환
      • 다중 행 부속 질의문 : 하나 이상의 행을 결과로 반환
  • 부속 질의문을 먼저 수행하고, 그 결과를 이용해 상위 질의문을 수행
  • 부속 질의문과 상위 질의문을 연결하는 연산자가 필요
    • 단일 행 부속 질의문은 비교연산자 사용가능
    • 다중 행 부속 질의문은 비교 연산자 사용 불가

 

 

IF 판매 데이터베이스에서 달콤비스캣과 같은 제조업체에서 제조한 제품의 제품명과 단가를 검색해보자

SELECT 제품명, 단가
FROM 제품
WHERE 제조업체 = (SELECT 제조업체
								FROM 제품
								WHERE 제품명 = '달콤비스캣')

IF 판매 데이터베이스에서 banana 고객이 주문한 제품의 제품명과 제조업체를 검색해보자

SELECT 제품명, 제조업체
FROM 제품
WHERE 제품번호 IN (SELECT 주문제품
								FROM 주문
								WHERE 주문고객 = 'banana')

 

 


 

 

데이터 삽입 : INSERT

  • 데이터 직접 삽입

  • INTO 키워드와 함께 투플을 삽입할 테이블의 이름과 속성의 이름을 나열
  • VALUES 키워드와 함께 삽입할 속성 값들을 나열
  • INTO 절의 속성 이름과 VALUES절의 속성 값은 순서대로 일대일 대응되어야 함

 

 

  • 부속 질의문을 이용한 데이터 삽입
    • SELECT문을 이용해 다른 테이블에서 검색한 데이터를 삽입

 

 


 

 

데이터 수정 : UPDATE

  • 테이블에 저장된 투플에서 특정 속성의 값을 수정
  • SET 키워드 다음에 속성 값을 어떻게 수정할 것인지를 지정
  • WHERE절에 제시된 조건을 만족하는 투플에 대해서만 속성 값을 수정
    • WHERE 절을 생략하면 테이블에 존재하는 모든 투플을 대상으로 수정

 


 

데이터 삭제 : DELETE

  • 테이블에 저장된 데이터를 삭제

 

 

  • WHERE절에 제시한 조건을 만족하는 투플만 삭제
    • WHERE절을 새약하면 테이블에 존재하는 모든 투플을 삭제해 빈 테이블이 됨

IF 판매 데이터베이스의 주문 테이블에 존재하는 모든 투플을 삭제해보자

DELETE
FROM 주문;

 

 

IF 판매 데이터베이스에서 정소화 고객이 주문한 내역을 주문 테이블에서 삭제해보자

DELETE
FROM 주문
WHERE 주문고객 IN (SELECT 고객아이디
                  FROM 고객
                  WHERE 고객이름 = '정소화');

 

 

참고 강의) http://www.kocw.net/home/cview.do?cid=9c591659f017851e

 

데이터베이스의 원리와 응용

본 강의에서는 데이터베이스 입문자들에게 꼭 필요한 데이터베이스 기초 이론, 데이터 모델과 연산, SQL, 데이터베이스 설계에 대해 공부하고자 한다.

www.kocw.net

 

'DataBase System' 카테고리의 다른 글

DBCP 란?  (1) 2023.05.21
데이터베이스와 파일시스템의 차이  (0) 2023.05.21
SQL 정의(Structured Query Langauge)  (0) 2022.08.22
관계 데이터 연산  (0) 2022.08.22
정규화  (0) 2022.08.22
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/09   »
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
글 보관함