반응형
노랭이 P.40~ (관계형 데이터베이스 / DDL / DML / TCL / WHERE / GROUP BY, HAVING / ORDER BY)
SQL 명령어
절차적 데이터 조작어(procedural DML)
사용자가 어떤 데이터를 원하고 해당 데이터를 얻으러면 어떻게 처리해야 하는지를 설명
> 어떻게 (HOW) 데이터를 접근해야 하는지 명세
ex) PL/SQL(오라클), T-SQL(SQL Server 등)
비절차적 데이터 조작어(nonprocedural DML)
사용자가 어떤 데이터를 원하는지만 설명 (어떻게는 DBMS에 맡김)
> 사용자가 무슨(WHAT) 데이터를 원하는 지만 명세
-- CREATE 문으로 PRIMARY KEY 설정 --
CREATE TABLE 테이블이름
( ...
,CONSTRAINT 제약조건이름 PRIMARY KEY (필드이름)
);
-- ALTER 문으로 PRIMARY KEY 설정 --
--방법1--
ALTER TABLE 테이블이름
ADD (필드이름) 필드타입 PRIMARY KEY
--방법2--
ALTER TABLE 테이블이름
ADD CONSTRAINT 제약조건이름 PRIMARY KEY (필드이름)
39번
-- ③ 서비스 종료일시가 00시 00분 00초 ~ 23시 59분 59초 사이에 만료되는 데이터 찾는 조건--
WHERE '201501' = TO_CHAR(SVC_END_DATE, 'YYYYMM')
AND JOIN_YMD = '20141201'
AND JOIN_HH = '00'
-- ④ 가입일은 동일하나 2015년 01월 01일 00시 00분 00초에 종료되는 SQL 찾는 조건 --
WHRER TO_DATE('201501', 'YYYYMM') = SVC_END_DATE
AND JOIN_YMD || JOIN_HH = '2014120100'
49번
NVL (표현식1, 표현식2)
: 표현식1의 결과값이 NULL이면 표현식 2의 값을 출력한다.
NULLIF (표현식1, 표현식2)
: 표현식1 = 표현식2 일 경우 NULL, 같지 않으면 표현식1을 리턴한다.
COALESCE (표현식1, 표현식2)
: 임의의 개수 표현식에서 NULL이 아닌 최초의 표현식을 나타낸다.
52번
광고매체 ID별 최초로 게시한 광고명과 광고시작일자를 출력하기 위한 SQL을 작성해야 하는데,
- GROUP BY에 찾고자 하는 광고매체 ID가 들어와야 한다.
- 1번 풀이 (3,4번은 FROM절에서 애초 광고매체 ID를 찾고 있지 않기 때문에 탈락)
- INLINE VIEW 밖에 있는 C 테이블을 참고하고 있는데 FROM절에서는 바깥에 있는 테이블 참조 불가
이를 통해 알 수 있는 것은 FROM절도 확인할 것 (WHERE절에서 많이 사용)
- INLINE VIEW 밖에 있는 C 테이블을 참고하고 있는데 FROM절에서는 바깥에 있는 테이블 참조 불가
53번
- COUNT를 사용했는데 AVG 집계함수를 또 사용할 경우 오류 발생
- SELECT에선 '메뉴ID, 사용유형코드' 제거하고 GROUP BY에서 위와 같이 명시한 다음 중첩함수 사용은 문제 없음
(오라클에서는 실행 가능하나 SQL Server에서는 실행이 안된다고 하니 참고)
[참고]
- HAVING 조건절에는 GROUP BY 함수와 관련하여 어떤 함수를 쓰더라도 상관 없다.
- 집계함수 외 SELECT 있는 것들은 GROUP BY절에도 셋팅되어 있어야 함
- '참고1' 이미지처럼 SELECT절, GROUP BY절에는 있는데 HAVING절에 다른 값을 셋팅하면 오류 발생
55번
GROUP BY HAVING한 결과에 대해 정렬 연산 (이미지 클릭 시 확대)
JOIN
두 개 이상의 테이블들을 연결 또는 결합하여 데이터를 출력
- 일반적으로 PK와 FK값의 연관성에 의해 성립
- DBMS 옵티마이저는 FROM절에 나열된 테이블이 아무리 많아도 항상 2개의 테이블씩 짝을 지어 JOIN 수행
- EQUI JOIN은 테이블 간의 컬럼 값들이 정확하게 일치하는 경우에 사용
'=' 연산자에 의해서만 수행되며, 그 외 비교 연산자를 사용하는 경우 모두 Non EQUI Join - 대부분 Non EQUI Join을 수행할 수 있지만, 때로는 설계상의 이유로 수행이 불가능한 경우 有
반응형
'자격증 > SQLD' 카테고리의 다른 글
SQLD 노랭이 2과목 개념 정리 (SQL 활용) (0) | 2023.06.09 |
---|---|
SQLD 노랭이 1과목 개념 정리 (데이터 모델링의 이해) (0) | 2023.06.08 |
SQLD 노랭이 112번~127번 마지막 문제까지 나오는 (윈도우함수, PL/SQL) 요약 정리 (0) | 2023.06.07 |
SQLD 노랭이 105번 문제부터 나오는 ROLLUP, CUBE, GROUPING SETS 완벽 정리 (0) | 2023.06.07 |
SQLD 노랭이 기출 단답형 예상문제 모음 (0) | 2023.06.07 |