본문 바로가기
728x90

전체 글188

계층형 쿼리 계층형 구조 = 상하 수직관계의 트리형태의 구조 계층형 쿼리 = 계층 구조가 적용된 데이터를 반환하는 질의어 * Oracle만 계층형 쿼리를 지원한다 명칭 설명 LEVEL 각 계층 NODE 각 데이터 ROOT 가장 첫번째 노드 Parent Node 노드의 상위 노드 Child Node 노드의 자식 노드 Leaf 가장 아래 노드 1. START WITH 구문 계층의 루트로 사용될 행을 지정한다. 어떤 행을 최상위로 할 지 결정한다. 서브 쿼리 가능 2. CONNECT BY 연결고리를 만든다. PRIOR 연산자로 계층구조를 표현할 수 있다. PRIOR 자식 = 부모 (순방향) 이전 LEVEL의 자식컬럼값이, 현재 행의 부모컬럼과 동일한 값이면 현재행에서 이전 LEVEL의 +1 을 세팅 PRIOR 부모 = 자.. 2023. 6. 1.
SQLD 문제 풀이 12 1. 아래와 같은 데이터 모델에서 oracle 기준으로 sql을 작성하였다. 그러나 sql server에서도 동일한 결과를 보장할 수 있도록 ansi 구문으로 sql을 변경하려고 한다. 다음 중 아래의 sql을 ANSI표준 구문으로 변경한 것으로 가장 적절한 것은? [SQL] SELECT A.게시판ID, A.게시판명, COUNT(B.게시글ID) AS CNT FROM 게시판 A, 게시판 B WHERE A.게시판ID = B.게시판ID(+) AND B.삭제여부(+) = 'N' AND A.사용여부 = 'Y' GROUP BY A.게시판ID , A.게시판명 ORDER BY A.게시판ID ANSI SQL (American National Standards Institute) DBMS들에서 각기 다른 SQL을 사용하므.. 2023. 6. 1.
SQLD 문제 풀이 11 1. 다음 중 아래 테이블들을 대상으로 sql 문장을 수행한 결과로 가장 적절한 것은? os osid(pk) os명 100 android 200 ios 300 bada 단말기 단말기id(pk) 단말기명 osid(fk) 1000 a1000 100 2000 b2000 100 3000 c3000 200 4000 d3000 300 고객 고객번호(pk) 고객명 단말기id(fk) 11000 홍길동 1000 12000 강감찬 null 13000 이순신 null 14000 안중근 3000 15000 고길동 4000 16000 이대로 4000 select a.고객번호, a.고객명, b.단말기id, b.단말기명, c.osid, c.os명 from 고객 a left outer join 단말기 b on (a.고객번호 in(1.. 2023. 5. 30.
SQLD 문제 풀이 10 1. 다음 중 아래의 ERD를 참조하여 아래 SQL과 동일한 결과를 출력하는 SQL로 가장 부적절한 것은? SELECT A.회원번호, A.회원명 FROM 회원 A, 동의항목 B WHERE A.회원번호 = B.회원번호 GROUP BY A.회원번호, A.회원명 HAVING COUNT(CASE WHEN B.동의여부 = 'N' THEN 0 ELSE NULL END) >= 1 --동의여부가 N인거 카운트 ORDER BY A.회원번호; --1 SELECT A.회원번호, A.회원명 FROM 회원 A WHERE EXISTS ( SELECT 1 FROM 동의항목 B WHERE A.회원번호 = B.회원번호 AND B.동의여부 = 'N') ORDER BY A.회원번호; --EXISTS의 () 사이에는 서브쿼리만 올 수 있습.. 2023. 5. 30.
SQLD 문제 풀이 9 1. 다음 중 SELF JOIN을 수행해야 할 경우로 가장 적절한 것은? 1) 한 테이블 내에서 두 칼럼이 연관 관계가 있다. 2) 두 테이블에 연관된 칼럼은 없으나 JOIN을 해야 한다. 3) 두 테이블에 공통 칼럼이 존재하고 두 테이블이 연관 관계가 있다. 4) 한 테이블 내에서 연관된 칼럼은 없으나 JOIN을 해야 한다. SELF JOIN 문법 SELECT FRON 별칭A INNER JOIN 별칭B WHERE 검색 조건 2. 아래와 같이 일자별 테이블이 존재할 때 아래 결과처럼 일자별 누적매출액을 SQL로 구하려고 한다. WINDOW FUNCITON을 사용하지 않고 일자별 누적매출액을 구하는 SQL로 옳은 것은? --1번 SELECT A.일자, SUM(A.매출액) AS 누적매출액 FROM 일자별매출.. 2023. 5. 22.
SQLD 문제 풀이 8 1. 아래는 어느 회사의 생산설비를 위한 데이터 모델의 일부에 대한 설명으로 가장 적절한 것을 2개 고르시오. 1) 제품, 생산제품, 생산라인 엔터티를 INNER JOIN 하기 위해서 생산제품 엔터티는 WHERE 절에 최소 2번이 나타나야 한다. SELECT * FROM 생산제품, 제품, 생산라인 WHERE 생산제품.제품코드 = 제품.제품코드 AND 생산제품.라인번호 = 생산라인.라인번호 2) 제품과 생산라인 엔터티를 JOIN시 적절한 JOIN조건이 없으므로 카티시안 곱이 발생한다. 카티시안 곱 = 발생 가능한 모든 경우의 수의 행이 출력되는 것. N개의 행을 가진 테이블과 M개의 행을 가진 테이블의 카티시안 곱은 N*M이 된다. 3) 제품과 생산라인 엔터티에는 생산제품과 대응되지 않는 레코드는 없다. .. 2023. 5. 22.
SQLD 문제 풀이 7 1. 다음 중 5개의 테이블로부터 필요한 칼럼을 조회하려고 할 때, 최소 몇 개의 JOIN조 건이 필요한가? 최소 JOIN 조건의 개수는 테이블의 개수 - 1 개가 필요하다! ▷ 4개 2. 아래의 영화 데이터베이스 테이블의 일부에서 밑줄 친 속성들은 테이블의 기본키이며 출연료가 8888 이상인 영화명, 배우명, 출연료를 구하는 SQL 문장은? 배우(배우번호, 배우명, 성별) 영화(영화번호, 영화명, 재작년도) 출연(배우번호, 영화번호, 출연료) SELECT 영화.영화명, 배우.배우명, 출연.출연료 FROM 영화, 배우, 출연 WHERE 출연.영화번호 = 영화.영화번호 AND 출연.배우번호 = 배우.배우번호 AND 출연.출연료 >= 8888; 3. 다음 중 아래에서 JOIN에 대한 설명으로 가장 적절한 것.. 2023. 5. 15.
SQLD 문제 풀이 6 1. 어느 기업의 직원 테이블(EMP)이 직급(GRADE)별로 사원 500명, 대리 100명, 과장 30명, 차장 10명, 부장 5명, 직급이 정해지지 않은(NULL) 사람 25명으로 구성되어 있을 때, 다음 SQL문의 결과는? 1) SELECT COUNT(GRADE) FROM EMP; ▷ NULL 값을 제외한 값들 카운트 : 645 2) SELECT GRADE FROM EMP WHERE GRADE IN ('차장','부장','널'); ▷ 차장, 부장 카운트 : 15 3) SELECT GRADE, COUNT(*) FROM EMP GROUP BY GRADE; ▷group by grade로 null 제외 grade 개수 : 6 2. 아래는 어느 회사의 광고에 대한 데이터 모델이다. 다음 광고매체 ID별 / 최.. 2023. 5. 15.
SQLD 문제 풀이 5 1. 다음 중 아래와 같은 2건의 데이터 상황에서 SQL의 수행 결과로 가장 적절한 것은? TAB1 ROWNUM C1 1 A (줄바꿈) A 2 B (줄바꿈) B (줄바꿈) B SELECT SUM(CC) FROM ( SELECT(LENGTH(C1) - LENGTH(REPLACE(C1,CHAR(10))) +1) CC FROM TAB1 ) 3 - 2 + 1 = 2 5 - 3 + 1 = 3 답 : 5 2. 다음 오라클 환경에서 날짜형 데이터를 다룰 경우, 아래 SQL 결과로 가장 적절한 것은? SELECT TO CHAR(TO_DATE('2015.01.10 10', 'YYYY-MM-DD HH24') + 1/24(60/10), 'YYYY.MM.DD HH24:MI:SS') FROM DUAL +1 : 하루가 더해짐 +.. 2023. 5. 13.
SQLD 문제 풀이 4 1. 아래와 같은 테이블에 SQL 구문이 실행되었을 경우 최종 출력 값을 작성하시오. 품목ID 단가 001 10000 002 20000 003 10000 004 20000 BEGIN TRANSACTION INSERT INTO 품목(품목 ID, 단가) VALUES('005',20000) COMMIT BEGIN TRANSACTION DELETE 품목 WHERE 품목ID = '002' BEGIN TRANSACTION UPDATE 품목 SET 단가 = 20000 WHERE 단가 = 10000 ROLLBACK SELECT COUNT(품목ID) FROM 품목 WHERE 단가 = 20000 ROLLBACK 을 하면 COMMIT 이후에 실행되었던 것들은 다 취소됨 답 : 3 2. 아래의 상품 테이블의 데이터에 대하여 .. 2023. 5. 11.
728x90