[복습] SQL | Oracle SQL의 분류(DDL, DML, DCL, TCL, DQL) 중 DDL의 ALTER
DDL 의 ALTER를 공부했다. 3) ALTER alter로는 구조변경을 할 수 있다. 구조변경에는 컬럼명, 컬럼 데이터타입, 컬럼 사이즈, default 값, 컬럼삭제, 컬럼추가, 제약조건 등이 있다. 컬럼 순서는 절대 바꿀 수 없다(재생성으로 해결할 것). 가. 컬럼추가 새로 추가된 컬럼은 맨 마지막 컬럼으로 배치가 된다(중간에 위치하게 할 수 없음) 컬럼 추가 시 데이터타입 입력은 필수이며, default값, 제약조건은 명시할 수 있다. 여러 컬럼 동시에 추가가 가능하다(반드시 괄호 사용해야 함) 문법은 -- 순서 위반하면 에러 뜸. 단일 컬럼 추가시에는 괄호를 생략할 수 있으나 동시 추가시에는 괄호 필수이다. 위의 코드를 실행해보면 단일컬럼 생성인 첫 줄과 둘 째줄은 잘 실행되나 여러 컬럼을 동..
[복습] 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 테이블을 사용하여 각 직원의 이름과 상위관리자 이름을 출력하여라. 단, 상위관리자가 없을 경우 본인의 이름을 출력하여라(스칼라서브쿼리 활용할 것) 실..
[실습문제] 2023. 11. 3.(금) 문제 풀이(5문제)
실습문제 1. professor, department, student 테이블을 사용하여 position별로 가장 적은 급여(pay)를 받는 교수의 이름, position, pay, 학과명, 지도학생수를 출력하여라. 다중컬럼 서브쿼리 / 인라인뷰 / 상호연관 서브쿼리로 작성 1) 다중컬럼 서브쿼리 결과이다. 2) 인라인뷰 결과이다. 3) 상호연관 서브쿼리 결과이다. 내가 풀 땐 다 풀었고, 선생님 해설 들었을 때 맞은 거 확인했는데 왜 또 다시 풀려고 하면 못 풀지? 아직 개념이 잡히지 않은건가. 어쨌든, 상호연관 서브쿼리는 속도가 대체적으로 느리지만 테이블 수가 많은 경우는 간혹 성능이 높을 수는 있다. 그러나 가급적 안 쓰는 편이라고 한다. 실습문제 2. student, exam_01, departme..