본문 바로가기

728x90
반응형

전체 글

(315)
[복습] SQL | Oracle SQL의 분류(DDL, DML, DCL, TCL, DQL) 중 DDL의 DROP 어제 배운 DDL의 CREATE 잠깐 언급하고 바로 DROP으로 넘어가겠다. DDL(Data Definition Language): CREATE, DROP, ALTER, TRUNCATE DDL은 Auto commit을 지원한다. 1) CREATE 문법 위 포맷을 근거로, 다음 중 테이블을 만들 때 정의되지 않는 것은? 이라는 문제도 SQLD에 출제된다. create table table_name as select * from org_name; 위처럼 CTAS 할 때 original table의 컬럼명, 컬럼순서, 데이터 타입, not null 속성 그대로 복제되며, not null을 제외한 나머지 제약조건은 복제되지 않는다. create table table_name as select * from emp..
[복습] 2023. 11. 6.(월) 문제 풀이(5문제) 실습문제 1. emp2, p_grade 테이블을 사용하여 각 직원의 나이를 기준으로 직원의 이름, 사번, 생년월일, 나이, 현재 직급(position), 예상 직급(나이로 계산한 직급), 예상 직급에 맞는 최저연봉과 최고연봉 기준을 모두 출력하여라. 내 풀이 먼저 작성하자면, 스칼라 서브쿼리로 작성하였다. select 절에 컬럼을 하나하나 넣어야 한다는 압박감(?)이 있어서 저렇게 생각해냈는데 선생님 해설은 달랐다. 조건절에서 그냥 바로 필터링하여 select절로 올려버리셨는데, 저 방법이 더 간단한 것을 왜 나는 복잡하게 접근했을까. 실습문제 2. emp 테이블을 사용하여 각 직원의 이름과 상위관리자 이름을 출력하여라. 단, 상위관리자가 없을 경우 본인의 이름을 출력하여라(스칼라서브쿼리 활용할 것) 실..
[복습] SQL | Oracle SQL의 분류(DDL, DML, DCL, TCL, DQL) 중 DDL의 CREATE + 복습후기(20231106) 오늘 배운 내용은 SQLD 시험에 나오는 내용들이다. SQL의 분류 1. DDL(Data Definition Lanuage): 객체를 정의하는 언어. 객체 자체를 만들고 삭제하고 수정 등을 수행한다(auto commit). - CREATE, DROP, ALTER, TRUNCATE(데이터를 삭제하는데 2.에도 DELETE가 있지만 TRUNCATE는 DDL에 속한다. auto commit이기 때문이다.) 1) create: object_name이 들어오는 것처럼 객체에 대한 이해가 중요하다. 제일 많이 쓰이는 create는 create table 이다. ★ 테이블 명명 규칙(변수의 명명규칙과 비슷) - 테이블 이름은 반드시 문자로 시작(숫자 시작 불가). 특수문자 가능(" "로 감싸야 하나 사용을 권장하지 ..
[복습] SQL | Oracle join 넘어 또 산, 서브쿼리 (3) 마지막 서브쿼리인 스칼라 서브쿼리 여기서 스칼라 란 '하나의'라는 뜻이며, 스칼라 서브쿼리는 select절에 사용되는 서브쿼리이다(컬럼처럼 쓰기 위함). 스칼라 서브쿼리는 각 행마다 하나의 행이 리턴되어야 한다. join의 대체 문법이기도 하다. 예시로 살펴보자. 예) 각 직원의 이름, 급여, 부서명을 출력하여라(단, 부서명은 스칼라 서브쿼리로 표현할 것). 이렇게 표현하면 ORA-01427: 단일 행 하위 질의에 2개 이상의 행이 리턴되었습니다. 라는 ORA 메시지가 출력된다. 스칼라 서브쿼리만을 선택해서 실행하면 아래와 같이 보이듯이, 각 행마다 출력되는 서브쿼리 결과가 총 4개이기 때문이다. 이렇게 표현하면 ORA-00904: "D"."DEPTNO": 부적합한 식별자 라는 ORA 메시지가 뜬다. 앞..
[실습문제] 2023. 11. 3.(금) 문제 풀이(5문제) 실습문제 1. professor, department, student 테이블을 사용하여 position별로 가장 적은 급여(pay)를 받는 교수의 이름, position, pay, 학과명, 지도학생수를 출력하여라. 다중컬럼 서브쿼리 / 인라인뷰 / 상호연관 서브쿼리로 작성 1) 다중컬럼 서브쿼리 결과이다. 2) 인라인뷰 결과이다. 3) 상호연관 서브쿼리 결과이다. 내가 풀 땐 다 풀었고, 선생님 해설 들었을 때 맞은 거 확인했는데 왜 또 다시 풀려고 하면 못 풀지? 아직 개념이 잡히지 않은건가. 어쨌든, 상호연관 서브쿼리는 속도가 대체적으로 느리지만 테이블 수가 많은 경우는 간혹 성능이 높을 수는 있다. 그러나 가급적 안 쓰는 편이라고 한다. 실습문제 2. student, exam_01, departme..

728x90
반응형