07. SQL 응용
Chapter 01. 데이터베이스 기본
#11. 다음은 성적 테이블의 일부이다. 이름, 과목, 성적을 성적순(내림차순)으로 출력하는 쿼리를 작성하시오.
[ 성적 테이블 ]
이름 | 과목 | 성적 |
문무왕 | 프로그래밍 | 4.0 |
문무왕 | 알고리즘 | 4.5 |
장보고 | 알고리즘 | 3.5 |
장보고 | 자료구조 | 3.0 |
A.
SELECT 이름, 과목, 성적
FROM 성적
ORDER BY 성적 DESC;
해설.
ORDER BY 절은 속성값 정렬할 때 사용한다. ( 키워드 생략 시, 오름차순 정렬)
▶ ASC : 오름차순
▶ DESC : 내림차순
ORDER BY 속성명 [ ASC | DESC ]
#12. 다음과 같이 도서와 도서가격이라는 테이블이 있다. 책 번호 컬럼을 기준으로 Left Outer Join을 하여 [결과] 테이블과 같이 나오도록 쿼리를 작성하시오.
[ 도서 테이블 ]
책번호 | 책명 |
111 | 운영체제 |
222 | 자료구조 |
555 | 컴퓨터구조 |
[ 도서가격 테이블 ]
책번호 | 가격 |
111 | 20000 |
222 | 25000 |
333 | 10000 |
444 | 15000 |
[ 결과 테이블 ]
책번호 | 책명 | 책번호 | 가격 |
111 | 운영체제 | 111 | 20000 |
222 | 자료구조 | 222 | 25000 |
555 | 컴퓨터구조 | NULL | NULL |
A.
SELECT A.책번호, A.책명, B.책번호, B.가격
FROM 도서 A
LEFT JOIN 도서가격 B
ON A.책번호 = B.책번호;
해설.
왼쪽 외부 조인 문법은 다음과 같다.
SELECT A.컬럼1, A.컬럼2, ..., B.컬럼1, B.컬럼2, ...
FROM 테이블1 A LEFT
JOIN 테이블2 B
ON 조인조건
[WHERE 검색조건];
'도서' 테이블은 A라는 별칭으로, '도서가격' 테이블은 B라는 명칭으로 설정 후 왼쪽에 위치한 '도서' 테이블을 기준으로 왼쪽 외부 조인한다.
#13. 다음은 직원 테이블이다. 다음 쿼리를 실행 결과 튜플 수는 얼마인지 쓰시오.
[ 직원 테이블 ]
사번 | 이름 | 연봉 |
1 | 홍길동 | 1000 |
2 | 임꺽정 | 1500 |
3 | 장길산 | 2000 |
[ 쿼리 ]
SELECT *
FROM 직원
WHERE SAL >= 1500
UNION ALL
SELECT *
FROM 직원
WHERE SAL >= 2000;
A. 3개
해설.
UNION ALL 은 중복 행이 제거되지 않은 쿼리 결과를 반환하는 집합 연산자이기 때문에
첫 번째 쿼리 결과인 연봉 1500 이상인 행은 임꺽정과 장길산 2개, 두 번째 쿼리 결과인 연봉 2000 이상인 행 장길산이 합쳐져 3개의 튜플이 조회된다.
#14. 다음은 테이블 및 컬럼명에 대한 명세이다. 사원명이 홍길동, 나이가 24, 급여가 300인 직원을 직원 테이블에 삽입하는 쿼리를 작성하시오.
- 테이블명: EMPLOYEE (직원 테이블)
- 컬럼명: NAME(사원명), AGE(나이), SALARY (급여)
A.
INSERT INTO EMPLOYEE(NAME, AGE, SALARY)
VALUES('홍길동', 24, 300);
해설.
INSERT 명령문은 다음과 같다.
INSERT INTO 테이블명(속성명1, ...)
VALUES(데이터1, ...);
#15. 다음은 테이블 및 컬럼명에 대한 명세이다. 급여가 300 이하인 직원들을 직원 테이블에서 삭제하는 쿼리를 작성하시오.
- 테이블명 : EMPLOYEE(직원 테이블)
- 컬럼명 : NAME(사원명), AGE(나이), SALARY(급여)
A.
DELETE FROM EMPLOYEE
WHERE SALARY <= 300;
# 데이터 조작어 (DML; Data Manipulation Language)
데이터 조작어는 데이터베이스에 저장된 자료들을 입력, 수정, 삭제, 조회하는 언어
※ 세인업데 : SELECT / INSERT / UPDATE / DELETE
1. SELECT - 조회
테이블 내 컬럼에 저장된 데이터 조회
※ 셀프 웨 구해오 : SELECT / FROM / WHERE / GROUP BY / HAVING / ORDER BY
2. INSERT - 삽입
테이블 내 컬럼에 데이터 추가
※ 인인벨 : INSERT INTO / VALUES
INSERT INTO 테이블명(속성명1, ...)
VALUES (데이터1, ...);
- 속성과 데이터 개수, 데이터 타입이 일치해야 함
- 속성명 생략 가능
- 속성 타입 숫자 ▶ 따옴표 X
- 속성 타입 문자열 ▶ 따옴표 O
3. UPDATE - 갱신
테이블 내 컬럼에 저장된 데이터 수정
※ 업셋웨 : UPDATE / SET / WHERE
UPDATE 테이블명
SET 속성명 = 데이터, ...
WEHRE 조건;
- WHERE 절을 통해 어떤 조건을 만족하는 특정 컬럼 값만 수정하는 용도로 자주 사용
4. DELETE - 삭제
테이블 내 컬럼에 저장된 데이터 삭제
※ 델프웨 : DELETE / FROM / WHERE
DELETE FROM 테이블명
WHERE 조건;
- 모든 레코드 삭제 시, WHERE 절 없이 DELETE만 사용
- 레코드 삭제해도 테이블 구조는 남아있어 테이블 자체를 삭제하는 DROP과 차이가 있음
해설.
DELETE 명령문은 다음과 같다.
DELETE FROM 테이블명
WEHRE 조건;
#16. 관리자가 사용자 장길산에게 '학생' 테이블에 대해 UPDATE 할 수 있는 권한을 부여하는 쿼리를 작성하시오.
A.
GRANT UPDATE ON 학생 TO 장길산;
# 데이터 제어어 (DCL; Data Control Language)
데이터 제어어는 데이터베이스 관리자가 데이터 보안, 무결성 유지, 병행 제어, 회복을 위해 사용하는 제어용 언어
※ GRANT / REVOKE
1. GRANT - 사용 권한 부여
관리자가 사용자에게 데이터베이스에 대한 권한을 부여하는 명령어
※ 그온투 : GRANT / ON / TO
GRANT 권한 ON 테이블 TO 사용자;
2. REVOKE - 사용 권한 취소/회수
관리자가 사용자에게 데이터베이스에 대해 부여했던 권한을 회수하는 명령어
※ 리온프 : REVOKE / ON / FROM
REVOKE 권한 ON 테이블 FROM 사용자;
해설.
GRNAT 명령문은 다음과 같다.
그온투 ▶ GRNAT 권한 ON 테이블 TO 사용자;
'WorkOut > 정보처리기사' 카테고리의 다른 글
SQL 문제 풀이 | SQL 활용 및 최적화 (0) | 2024.04.15 |
---|---|
SQL 문제 풀이 | 응용 SQL (0) | 2024.04.15 |
SQL 문제 풀이 | 데이터베이스 기본 2 (2) | 2024.04.12 |
SQL 응용 문제 풀이 | 데이터베이스 기본 2 (0) | 2024.04.12 |
SQL 문제 풀이 | 데이터베이스 기본 (0) | 2024.04.11 |