[정보처리기사 실기] SQL 쿼리 정리
📍 SQL 쿼리 정리
📌 찾기
SELECT * FROM 테이블명 WHERE 조건;
조건 1. 한 글자가 추가된 문자열 찾기
단어 LIKE '_symmetry'
조건 2. 앞글자, 뒷글자 문자열 찾기
단어 LIKE '라면%'
단어 LIKE '%라면'
단어 LIKE '%라면%'
조건 3. 그룹화
SELECT * FROM 테이블명 GROUP BY 컬럼명 HAVING 조건;
예) SELECT 부서, SUM(급여) AS 급여합계 FROM 급여 GROUP BY 부서 HAVING 급여합계 >= 6000;
SELECT * FROM 테이블명 GROUP BY ROLLUP(컬럼명1, 컬럼명2);
예) SELECT 학년, 반, AVG(점수) AS 점수 FROM 점수 GROUP BY ROLLUP(학년, 반);
조건 4. IN
SELECT * FROM 테이블명 WHERE 컬럼명 IN 리스트;
예) SELECT 학번, 이름 FROM 학생 WHERE 학년 IN (3, 4);
조건 5. 중복값 제거
SELECT DISTINCT 컬럼 FROM 테이블명
예) SELECT DISTINCT 학년 FROM R1
조건 6. 조건에 조건
SELECT 상품명, 단가, 제조사 FROM 제품 WHERE 단가 > ALL (SELECT 단가 FROM 제품 WHERE 제조사 = 'H');
📌 조인
SELECT A.컬럼명 AS 컬럼명 B.컬럼명 AS 컬럼명 FROM 테이블 A (JOIN 방식) 테이블 B ON A.컬럼명 = B.컬럼명;
JOIN 방식
LEFT JOIN
RIGHT JOIN
INNER JOIN
CROSS JOIN
📌 DDL(ALTER)
ALTER TABLE 테이블명 MODIFY 컬럼 조건;
예) ALTER TABLE STUDENT MODIFY NUM NUMBER(6);
📌 권한
- 회수
REVOKE 기능 ON 테이블명 FROM 사용자;
예) REVOKE INSERT ON DEPT FROM 신민아;
- 부여
GRANT 기능 ON 테이블명 TO 사용자 WITH GRANT OPTION;
예) GRANT ALL ON STUDENT TO SYS WITH GRANT OPTION;
📌 데이터 입력, 삭제, 수정
- 입력
INSERT INTO 테이블명 VALUES(데이터);
예) INSERT INTO 학생 VALUES('202101', '임꺽정', '프로그래밍', '010-1234-5678');
- 삭제
DELETE FROM 테이블명 WHERE 조건;
예) DELETE FROM 위인 WHERE 이름 = '이광수';
- 수정
UPDATE 테이블명 SET 수정할 데이터 WHERE 조건;
예) UPDATE 회원 SET 전화번호 = '010-14' WHERE 회원번호 = 'N4';
📌 VIEW
- 삭제
DROP FROM 뷰 이름;
예)DROP FROM 학생;
- 생성
CREATE VIEW 뷰이름 AS SELECT * FROM 테이블명 WHERE 조건;
예) CREATE VIEW 사원뷰 AS SELECT 사번, 이름 FROM 사원 WHERE 성별 = 'M';
📌 집합연산
- UNION ALL : 중복 레코드 허용
- UNION : 합집합
📌 인덱스
CREATE INDEX 인덱스명 ON 테이블명(컬럼명);
예) CREATE INDEX 학번인덱스 ON 학생(학번);
📌 RANK
SELECT * DENSE_RANK() OVER (ORDER BY 컬럼 DESC) AS 컬럼명 FROM 테이블명 ORDER BY 컬럼명;
예) SELECT 이름, 수학, DENSE_RANK() OVER (ORDER BY 수학 DESC) AS 등수 FROM 점수 ORDER BY 수학 DESC;
📌 CASCADE
참조하는 테이블까지 연쇄적으로 삭제
예) DROP VIEW student CASCADE