DB 33

12. DDL

종류 create : 새 테이블 생성 alter 기존 테이블 변경 컬럼 추가, 수정 제약 조건 추가, 삭제, 활성화, 비활성화 drop 테이블 싹 밀어버림 truncate 기존 테이블 구조는 남기고 모든 행을 삭제 comment (실무에서 아주 중요) 테이블이나 컬럼에 주석문 달기 rename Object 이름 변경 constraint 부분이 이론적으로 만 알아서 alert constraint 부분이 부족 - 나중에 시간 될 때 한번 constraint 부분 실습 해보기 CREATE table mytable ( Id number(5), name char(5) default 'hun' ) ; DROP table mytable; -- 추가 ALTER table mytable add (title char(6)..

DB/sql 2023.04.16

11. meta 정보 - dictionary

dictionary read only로만 제공되는 view, table 집합 dictionary view total 종류 user all dba v$ ind dictionary table privileges dictionary view 종류 4가지 - 접두어 user 사용자가 소유한 객체에 관한 정보 저장 all_ 사용자에게 액세스가 허용된 객체에 관한 정보 저장 dba_ DBA 권한을 가진 사용자가 액세스 할 수 있는 정보 저장 v$ 서버의 성능과 locking에 관한 정보 저장 - DBA에게만 허용 dictionary view 종류 3가지 - 동의어 dictionary : 모든 데이터 사전 테이블, 뷰, 동의어 table_privileges : 권한을 부여했거나 부여받은 object에 대한 권한 in..

DB/sql 2023.04.16

10. meta 정보 - transaction Control (tx)

tx( transaction control ) - 마리오 게임 명령어 commit : 저장 savepoint : rollback 할 위치 - 임시저장 savepoint를 만들어 두면 rollback을 할 위치를 설정 가능 하지만 commit을 한 상태는 아니므로 문제 발생시 직전 commit 단계로 rollback 된다. rollback : 저장 전으로 돌아감 implicit 제어 명령어 자동 commit : DDL, DCL 수동 commit : DML rollback : 비정상 종료 속성 atomic: 원자성 consist: 일관성 isolation: 독립성 수정 중에는 다른 사용자 접근 안된다. rollback, commit 2개중 하나를 수행해야 lock이 풀린다. duration: 지속성

DB/sql 2023.04.16

9. meta 정보 - constraint

constraint = 제약 조건 db 보호가 목적 table과 관계없이 따로 만들어짐 참고. index도 따로 만들어짐 적용 범위 column level table level: not null 빼고 다 종류 pk : not null + unique fk : on delete cascde not null unique check: 반드시 참이여야 하는 조건 무결성 제약 조건 상식적으로 pk와 fk의 연관성 생각하기 primary key 제약 조건 한행을 구별해주는 column null 허용 안함 테이블에 단 하나의 primary key만 허용 unique 인덱스 자동 생성 pk도 수정이 가능하다. 대신 unque와 not null을 지키는 선에서 수정 가능 참고 super key : all key 후보 k..

DB/sql 2023.04.16

8. select 심화 - subQuery

subquery 순서 : sub query(1) -> main query(2) 종류 single row : 1개 = 스칼라 서브쿼리 multi row : 한 종류 column type 해당 값 여러개 || 복합 multi 연산자 : in, not in, any, exists, not exists - 고급 sql multi column : 여러종류 colum type 해당 값 한개 || 복합 위치 where절 -> 비교 대상 in (서브쿼리문) from절 having절 select 절 상관쿼리 create 절 insert 절 update 절 --1. single row -- 김정미와 같은 직책을 가지는 사람의 이름, 직책, 급여, 부서번호 SELECT se.NAME , se.TITLE , se.DEPT_I..

DB/sql 2023.04.16

7. select 심화 - set연산자

set select 구문 들끼리 연결 개수와 타입이 일치 필요 종류 union 합 union all 중복 포함 합 intersect 교집합 minus 차집합 -- set 연산자 -- union(합), intersect(교), unionAll(합), MINUS(차) -- 첫번째 select 구문에서 기술된 칼럼들과, 2번째 select 기술된 칼럼들은 개수와 타입이 일치해야함 -- 규칙을 지키려면 select 다음에 나오는 column명 순서를 일치 시켜주면 된다. SELECT NAME , DEPT_ID , TITLE from STUDENT.S_EMP se WHERE DEPT_ID = 110 UNION SELECT NAME , DEPT_ID , TITLE from STUDENT.S_EMP se WHERE ..

DB/sql 2023.04.16

6. select 심화 - join

join == 이중 for 문 사용 위치 : where절 equijoin non-equijoin : 등급 outer join : (+), data가 부족한 쪽 self join : 계층구조, alias 필요 -- 이중 for문 SELECT * FROM STUDENT.S_EMP, STUDENT.S_DEPT; -- 275개 생성. for문처럼 개수 내려옴. where -- 을 써야지 필요한 경우의 내용만 추려서 나온다. ; 1. equijoin -- 1. equijoin -- 직원(s.emp)테이블과 부서(s.dept)테이블을 join하여 사원의 이름,부서,부서명 나타내시오. SELECT se.NAME , se.DEPT_ID , sd.NAME from S_EMP se , S_DEPT sd WHERE se.D..

DB/sql 2023.04.16

5. select 심화 - subGroup

select 2가지 분류 -- 부서별 직원 평균 연봉 SELECT DEPT_ID, AVG(SALARY) as AvgSalary FROM STUDENT.S_EMP group by DEPT_ID order by DEPT_ID ; -- 각 부서별로 직책이 사원인 직원들의 평균 급여 SELECT DEPT_ID , AVG(se.SALARY) FROM S_EMP se WHERE TITLE ='사원' group by se.DEPT_ID ; -- 각 지역별 부서가 몇개인지 SELECT REGION_ID , COUNT(NAME) FROM S_DEPT sd group by REGION_ID ; -- 각 부서별로 평균 급여를 구하되, 평균 급여가 2000 이상 -- 각 부서별 : group, 평균 급여 조건문 : group..

DB/sql 2023.04.16

4. 단일행 함수, 다중행 함수

함수 사용 위치 : select 컬럼명, having, order by , where 연산자 조건 등등 대체로 다 사용됨. - 논리적으로 사용하기 단일 행 함수 문자형 upper, lower, initcap concat, substr length, lpad, rpad ltrim, rtrim replace, translate 숫자형 round(반올림), trunc(버림), mod(나머지) power(제곱), sqrt(루트), sign(양,음,0), chr(인코딩) 날짜형 sysdate, last_day months_between, add_months round, trunc 변환형 To_Number To_char 요소: 9, 0, $, ㅣ, . , , To_Date 요소: YYYY, MM , etc 다중 행..

DB/sql 2023.04.16