본문으로 바로 가기

컴퓨터활용능력 1급 · 데이터베이스 일반 과목

컴퓨터활용능력 1급 쿼리와 SQL 개념 정리

중요도 ★★★★★ · 30% (추정)

AI 작성 · 검수 완료

AI가 새로 쓴 글 가운데, 작성과 분리된 AI 검증(다시 읽고 사실·수치 확인)을 통과한 단원만 싣습니다. 틀린 곳을 발견하면 알려 주세요.

개요

이 단원은 테이블에서 원하는 자료만 골라 보고, 자료를 넣고 고치고 지우는 명령인 SQL 을 다룹니다. SELECT 문의 구조와 각 절의 순서, 조건식, 조인, 실행 쿼리의 형식이 고르게 나오는 데이터베이스 과목의 핵심 단원입니다.

SELECT 문은 SELECT 필드 FROM 테이블 WHERE 조건 GROUP BY 그룹 HAVING 그룹 조건 ORDER BY 정렬 순서로 씁니다. WHERE 는 레코드 하나하나에 거는 조건이고, HAVING 은 GROUP BY 로 묶은 그룹에 거는 조건입니다. ORDER BY 에서 ASC 는 오름차순으로 생략할 수 있고, DESC 는 내림차순입니다. 액세스의 LIKE 조건에서 * 는 여러 글자를, ? 는 한 글자를 대신합니다.

자료를 바꾸는 실행 쿼리는 INSERT INTO ~ VALUES 로 추가하고, UPDATE ~ SET ~ WHERE 로 고치고, DELETE FROM ~ WHERE 로 지웁니다. 두 테이블을 합쳐 볼 때 쓰는 내부 조인(INNER JOIN)은 조인 필드 값이 양쪽에서 같은 레코드만 가져옵니다.

핵심 개념

  • SELECT 문의 순서

    SELECT 필드 FROM 테이블 WHERE 조건 GROUP BY 그룹 HAVING 그룹 조건 ORDER BY 정렬 순서로 씁니다. 순서를 바꿔 쓰면 오류가 납니다.

    외우는 요령'셀·프·웨·그·해·오' 여섯 글자로 외우세요.

  • WHERE 와 HAVING

    WHERE 는 묶기 전에 레코드 하나하나에 거는 조건이고, HAVING 은 GROUP BY 로 묶은 다음 그룹 전체에 거는 조건입니다. SUM, COUNT 같은 집계 결과에 조건을 걸 때는 HAVING 을 씁니다.

    외우는 요령'HAVING 은 GROUP BY 와 짝꿍'.

  • ASC 와 DESC

    ORDER BY 뒤에 ASC 를 쓰면 작은 값부터(오름차순), DESC 를 쓰면 큰 값부터(내림차순) 정렬합니다. 아무것도 쓰지 않으면 오름차순입니다.

    외우는 요령'DESC = Descending(내려가기)', 생략하면 오름차순.

  • LIKE 와 만능 문자

    LIKE 는 글자 모양으로 찾는 조건입니다. 액세스에서는 * 가 글자 수와 상관없이 여러 글자를, ? 가 딱 한 글자를 대신합니다. 예를 들어 LIKE "김*" 는 김으로 시작하는 값을 찾습니다.

    외우는 요령'별(*)은 여럿, 물음표(?)는 하나'.

  • 실행 쿼리 형식

    추가는 INSERT INTO 테이블(필드) VALUES(값), 수정은 UPDATE 테이블 SET 필드=값 WHERE 조건, 삭제는 DELETE FROM 테이블 WHERE 조건 형식으로 씁니다.

    외우는 요령'INSERT 는 INTO, UPDATE 는 SET, DELETE 는 FROM' 을 짝으로 외우세요.

  • 내부 조인(INNER JOIN)

    두 테이블을 연결할 때 조인 필드 값이 양쪽 테이블에 모두 있는 레코드만 가져오는 방식입니다. 한쪽에만 있는 레코드는 결과에서 빠집니다.

    외우는 요령'INNER = 안쪽', 두 원이 겹치는 가운데만 가져옵니다.

자주 나오는 포인트

  • SELECT 문 절의 순서를 바꿔 놓은 선지가 단골입니다. GROUP BY 다음이 HAVING, 맨 끝이 ORDER BY 입니다.
  • 그룹에 조건을 걸면서 WHERE 를 쓴 선지는 틀린 경우가 많습니다. 그룹 조건은 HAVING 입니다.
  • UPDATE 문에 SET 이 빠지거나 DELETE 문에 FROM 이 빠진 선지를 조심하세요.
  • 액세스에서는 * 와 ? 를 만능 문자로 씁니다.

헷갈리는 것 비교: 실행 쿼리 세 가지

작업형식짝 단어
추가INSERT INTO 테이블 VALUES (값)INTO, VALUES
수정UPDATE 테이블 SET 필드=값 WHERE 조건SET
삭제DELETE FROM 테이블 WHERE 조건FROM

대표 문제 3개

검수를 마친 예상문제 가운데 이 단원의 대표 문제입니다.

예상문제검수 완료데이터베이스 일반 › 쿼리와 SQL★★★★★

문제 1. <사원> 테이블에서 '부서'가 "영업"인 사원의 이름을 검색하는 SQL 문으로 옳은 것은?

  1. ① SELECT 이름 FROM 사원 ORDER BY 부서 = "영업";
  2. ② SELECT 이름 WHERE 부서 = "영업" FROM 사원;
  3. ③ SELECT 사원 FROM 이름 WHERE 부서 = "영업";
  4. ④ SELECT 이름 FROM 사원 WHERE 부서 = "영업";
▼ 정답과 해설 보기▲ 정답과 해설 접기

정답: ④ SELECT 이름 FROM 사원 WHERE 부서 = "영업";

핵심: SELECT 필드 FROM 테이블 WHERE 조건

검색 SQL 은 SELECT(무엇을) → FROM(어디에서) → WHERE(어떤 조건으로) 순서로 씁니다.

틀린 선지

  • ① SELECT 이름 FROM 사원 ORDER BY 부서 = "영업";: ORDER BY 는 조건이 아니라 정렬에 쓰는 절입니다.
  • ② SELECT 이름 WHERE 부서 = "영업" FROM 사원;: WHERE 는 FROM 뒤에 와야 합니다.
  • ③ SELECT 사원 FROM 이름 WHERE 부서 = "영업";: 필드 이름과 테이블 이름의 자리가 바뀌었습니다.
예상문제검수 완료데이터베이스 일반 › 쿼리와 SQL★★★★★

문제 2. <사원> 테이블에서 '부서'별 급여의 평균을 구하되, 평균이 300 이상인 부서만 표시하려고 한다. 빈칸에 알맞은 것은? SELECT 부서, AVG(급여) FROM 사원 GROUP BY 부서 ( ) AVG(급여) >= 300;

  1. ① HAVING
  2. ② WHERE
  3. ③ ORDER BY
  4. ④ LIKE
▼ 정답과 해설 보기▲ 정답과 해설 접기

정답: ① HAVING

핵심: 그룹에 대한 조건은 HAVING, 레코드에 대한 조건은 WHERE

GROUP BY 로 묶은 그룹에 조건을 걸 때는 HAVING 을 씁니다. WHERE 는 묶기 전의 레코드 하나하나에 거는 조건입니다.

틀린 선지

  • ② WHERE: 그룹 함수(AVG 등)를 쓴 조건에는 쓸 수 없습니다.
  • ③ ORDER BY: 정렬할 때 쓰는 절입니다.
  • ④ LIKE: 글자의 일부가 같은 것을 찾을 때 쓰는 연산자입니다.
예상문제검수 완료데이터베이스 일반 › 쿼리와 SQL★★★★★

문제 3. <사원> 테이블에 사번이 10 이고 이름이 '김철수'인 레코드를 추가하는 SQL 문으로 옳은 것은?

  1. ① ADD INTO 사원(사번, 이름) VALUES (10, '김철수');
  2. ② INSERT INTO 사원(사번, 이름) VALUES (10, '김철수');
  3. ③ INSERT 사원 VALUES 사번 = 10, 이름 = '김철수';
  4. ④ INSERT INTO 사원 SET 사번 = 10, 이름 = '김철수';
▼ 정답과 해설 보기▲ 정답과 해설 접기

정답: ② INSERT INTO 사원(사번, 이름) VALUES (10, '김철수');

핵심: INSERT INTO 테이블(필드) VALUES (값)

레코드를 추가하는 문장의 틀은 INSERT INTO 테이블(필드1, 필드2) VALUES (값1, 값2); 입니다. 필드와 값은 순서와 개수가 같아야 합니다.

틀린 선지

  • ① 레코드를 추가하는 명령은 ADD 가 아니라 INSERT 입니다.
  • ③ INTO 가 빠졌고 VALUES 뒤에는 괄호 안에 값만 적습니다.
  • ④ SET 은 UPDATE 문에서 쓰는 말입니다.
이 단원 5문제 풀기 →