개발자 되기/자격증
[정보처리기사] 실기 SQL문 정리
발전하는 개발자
2022. 5. 30. 03:16
728x90
반응형
2021.1회
SELECT | COUNT(*) | FROM | EMP_TABLE | WHERE | EMPNO>100 | AND | SAL>=3000 | OR | EMPNO=200; |
검색 | 튜플 개수 | ~에서 | 테이블 | 조건 | 조건1 | 그리고 | 조건2 | 또는 | 조건3 |
<EMP_TABLE>에서 검색하여 튜플 개수 표시 | 조건1과 조건2를 동시에 만족하거나 조건3을 만족하는 것을 |
2021.2회
UPDATE | 학부생 | SET | 학과번호=999 | WHERE | 입학생수>=300; |
변경 | 테이블 | 내용 | 변경내용 | 조건 | 변경 조건 |
<학부생>테이블을 변경 | 학과번호를 999로 | 입학생수가 300이상인 튜플만 |
SELECT | a.코드, 이름, 동아리명 | FROM | 사원 | a | LEFT JOIN | 동아리 | b | ON | a.코드 = b.코드; |
검색 | a의 코드, 이름, 동아리명을 | ~에서 | 테이블1 | 테이블1 지칭 | 왼쪽테이블 기준으로 합하기 (a테이블내용은 모두 표시, b테이블 내용은 a테이블과 관련있는 것만 표시 | 테이블2 | 테이블2 지칭 | 합하는 기준 | a의 코드와 b의 코드 일치 |
a가 가리키는 <사원>테이블의 코드, 이름, 동아리명을 검색 | <사원>테이블을 a로, <동아리>테이블을 b로 지칭, a와 b의 코드의 일치 여부를 기준으로 LEFT JOIN(왼쪽의 <사원>테이블의 튜플은 모두 표시, 우측의 <동아리> 테이블은 관련있는 튜플만 표시)한다. |
SELECT | * | FROM | 회원 | WHERE | 이름 | LIKE | '이%' | ORDER BY | 가입일 | DESC; |
검색 | 전부 | ~에서 | 테이블 | 조건 | 검색조건 | 부분 일치 | '이'로 시작하는 | 정렬 | 정렬 조건 | 내림차순 |
<회원>테이블에서 모든 속성 검색 | 이름이 '이'로 시작하는 튜플만 | '가입일'을 기준으로 내림차순 정렬 |
2021.3회
SELECT | COUNT(*) | CNT | FROM | A | CROSS JOIN | B | WHERE | A.NAME | LIKE | B.RULE; |
검색 | 튜플 개수 | 필드명 | ~에서 | 테이블1 | 교차 조인 | 테이블2 | 조건 | <A>테이블의 'NAME'필드값 | 부분일치 | <B>테이블의 'RULE'필드값 |
CNT라는 필드명으로 튜플의 개수를 검색 | <A>테이블과 <B>테이블을 교차 조인(조건이 일치하는 모든 조합을 가져옴)한 결과를 | <A>테이블의 'NAME'필드값이 <B>테이블의 'RULE'필드에 저장된 문자열 패턴과 일치하는 튜플만을 대상으로 |
2020.1회
SELECT | DEPT | FROM | STUDENT; |
검색 | 표시 내용 | 에서 | <STUDENT> 테이블 |
<STUDENT> 테이블에서 DEPT 표시 |
SELECT | DISTINCT | DEPT | FROM | STUDENT; |
검색 | 중복 제외 | 표시 내용 | 에서 | <STUDENT> 테이블 |
<STUDENT> 테이블에서 DEPT를 표시하되 중복 되는 속성 값은 한번만 표시 |
SELECT | COUNT(DISTINCT DEPT) | FROM | STUDENT | WHERE | DEPT='전산과' |
검색 | 개수(DEPT를 중복값 없이 계산) | 에서 | <STUDENT>테이블 | 조건 | DEPT가 '전산과'인 자료만 |
<STUDENT> 테이블에서 DEPT가 '전산과'인 것만 개수를 중복값 없이 계산하여 표시 |
2020.2회
SELECT | 학번, 이름 | FROM | 학생 | WHERE | 학년 | IN | (3, 4); |
검색 | 학번과 이름을 | 에서 | <학생>테이블에서 | 조건 | 학년 | 상세 조건 | 3 또는 4 |
<학생> 테이블에서 학번과 이름을 표시 | 3학년이거나 4학년인 |
CREATE | INDEX | idx_name | ON | STUDENT(name); |
만들어라 | 인덱스를 | 인덱스이름 | 사용조건 | <STUDENT>테이블의 name 속성을 사용 |
idx_name이라는 인덱스를 만들어라 | <STUDENT> 테이블의 name 속성을 사용하여 |
2020.3회
DELETE | FROM | 학생 | WHERE | 이름='민수'; |
삭제 | 에서 | <학생>테이블 | 조건 | 이름이 '민수'인 자료만 |
<학생> 테이블에서 삭제 | 이름이 '민수'인 자료만 |
SELECT | 과목이름, MIN(점수) AS 최소점수, MAX(점수) AS 최대점수 | FROM | 성적 | GROUP BY | 과목이름 | HAVING | AVG(점수)>=90; |
검색 | 과목이름, 점수의 최솟값을 '최소점수'로, 점수의 최댓값을 '최대점수로 | 에서 | <성적>테이블 | 그룹으로 묶어 | 과목이름을 기준으로 | 그룹조건 | 점수의 평균이 90이상인 것만 |
과목이름과, 최소점수(점수의 최솟값), 최대점수(점수의 최댓값)를 표시 | <성적>테이블에서 | 과목이름을 기준으로 묶어 | 그룹의 점수의 평균이 90 이상인 것만 |
ALTER | TABLE | 학생 | ADD | 주소 | VARCHAR(20); |
변경 | 테이블을 | <학생> | 추가 | 추가 속성 | 자료 타입(가변길이의 문자 20자리) |
<학생>테이블을 변경 | 가변길이의 문자 20자리인 '주소' 속성을 추가 |
2020.4,5회
SELECT | 학과, | COUNT(*) | AS | 학과별튜플수 | FROM | 학생 | GROUP BY | 학과; |
검색 | 학과와 | 개수를 | 로써 | 학과별튜플수 | 에서 | <학생>테이블 | 그룹으로 묶어 | 학과를 기준으로 |
학과와 개수('학과별튜플수'로 표시)를 표시 | <학생>테이블에서 | 학과를 기준으로 묶어 |
728x90
반응형