본문으로 바로 가기

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

컴퓨터활용능력 1급 쿼리와 SQL 핵심정리

중요도
★★★★★ (5 / 5)
출제 비중
데이터베이스 일반 20문항 중 약 6문항 (30%)

SELECT 문의 구조, 조건·정렬·그룹, 조인, 실행 쿼리(추가·수정·삭제)를 다룹니다.

쿼리와 SQL, 이것만은 꼭 외우세요

  • SELECT 필드 FROM 테이블 WHERE 조건 GROUP BY 그룹 HAVING 그룹 조건 ORDER BY 정렬 순으로 씁니다.
  • ORDER BY 에서 ASC 는 오름차순(생략 가능), DESC 는 내림차순입니다.
  • LIKE 에서 * 는 여러 글자, ? 는 한 글자를 대신합니다. (액세스 기준)
  • INSERT INTO ~ VALUES, UPDATE ~ SET ~ WHERE, DELETE FROM ~ WHERE 형식을 외웁니다.
  • 내부 조인(INNER JOIN)은 두 테이블에서 조인 필드 값이 같은 레코드만 가져옵니다.

쿼리와 SQL 대표 문제 5개

AI 예상문제검수 전데이터베이스 일반 › 쿼리와 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 부서 = "영업";: 필드 이름과 테이블 이름의 자리가 바뀌었습니다.
AI 예상문제검수 전데이터베이스 일반 › 쿼리와 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: 글자의 일부가 같은 것을 찾을 때 쓰는 연산자입니다.
AI 예상문제검수 전데이터베이스 일반 › 쿼리와 SQL★★★★★

문제 3. SQL 문 "SELECT * FROM 사원 ORDER BY 급여 DESC;" 에 대한 설명으로 옳은 것은?

  1. ① 급여가 낮은 사원부터 차례로 표시한다.
  2. ② 급여가 높은 사원부터 차례로 표시한다.
  3. ③ 급여 필드만 표시한다.
  4. ④ 급여가 같은 사원끼리 묶어서 표시한다.
▼ 정답과 해설 보기▲ 정답과 해설 접기

정답: ② 급여가 높은 사원부터 차례로 표시한다.

핵심: ORDER BY ~ DESC: 내림차순(큰 값부터) 정렬

DESC 는 내림차순, 곧 큰 값에서 작은 값 순서입니다. ASC(오름차순)는 생략할 수 있지만 DESC 는 꼭 써야 합니다.

틀린 선지

  • ① 급여가 낮은 사원부터 차례로 표시한다.: ASC(오름차순)일 때의 결과입니다.
  • ③ 급여 필드만 표시한다.: * 는 모든 필드를 표시하라는 뜻입니다.
  • ④ 급여가 같은 사원끼리 묶어서 표시한다.: 묶는 것은 GROUP BY 입니다.
AI 예상문제검수 전데이터베이스 일반 › 쿼리와 SQL★★★★★

문제 4. <사원> 테이블에서 사번이 10 인 사원의 급여를 500 으로 고치는 SQL 문으로 옳은 것은?

  1. ① ALTER 사원 SET 급여 = 500 WHERE 사번 = 10;
  2. ② UPDATE 급여 = 500 FROM 사원 WHERE 사번 = 10;
  3. ③ INSERT INTO 사원 SET 급여 = 500 WHERE 사번 = 10;
  4. ④ UPDATE 사원 SET 급여 = 500 WHERE 사번 = 10;
▼ 정답과 해설 보기▲ 정답과 해설 접기

정답: ④ UPDATE 사원 SET 급여 = 500 WHERE 사번 = 10;

핵심: UPDATE 테이블 SET 필드 = 값 WHERE 조건

값을 고칠 때는 UPDATE ~ SET ~ WHERE 형식을 씁니다. WHERE 를 빼면 모든 레코드의 값이 바뀌므로 조심해야 합니다.

틀린 선지

  • ① ALTER 사원 SET 급여 = 500 WHERE 사번 = 10;: ALTER 는 테이블의 구조(필드)를 바꿀 때 씁니다.
  • ② UPDATE 급여 = 500 FROM 사원 WHERE 사번 = 10;: UPDATE 뒤에는 테이블 이름이 오고 FROM 은 쓰지 않습니다.
  • ③ INSERT INTO 사원 SET 급여 = 500 WHERE 사번 = 10;: INSERT 는 새 레코드를 추가할 때 씁니다.
AI 예상문제검수 전데이터베이스 일반 › 쿼리와 SQL★★★★★

문제 5. 액세스 쿼리의 조건에 Like "김*" 을 지정했을 때 검색되는 값은?

  1. ① '김'이 들어 있는 모든 값
  2. ② '김'으로 끝나는 모든 값
  3. ③ '김'으로 시작하는 모든 값
  4. ④ '김'으로 시작하는 두 글자 값
▼ 정답과 해설 보기▲ 정답과 해설 접기

정답: ③ '김'으로 시작하는 모든 값

핵심: Like "김*": '김'으로 시작하는 값 (* 는 여러 글자)

액세스에서 별표(*)는 글자 수에 상관없이 아무 글자나 대신합니다. "김*" 은 '김' 뒤에 무엇이 오든 찾으므로 '김'으로 시작하는 값이 모두 나옵니다.

틀린 선지

  • ① '김'이 들어 있는 모든 값: Like "*김*" 일 때입니다.
  • ② '김'으로 끝나는 모든 값: Like "*김" 일 때입니다.
  • ④ '김'으로 시작하는 두 글자 값: Like "김?" 일 때입니다. ? 는 한 글자를 대신합니다.

직접 풀어서 확인해 보세요.