자격증/정보처리기사 실기

[정보처리기사 실기] SQL 쿼리 정리

씨주 2024. 4. 8. 23:45

📍 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