DB/Oracle

DB/Oracle

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/Oracle

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/Oracle

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/Oracle

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/Oracle

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/Oracle

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/Oracle

2. Select 기본

1. select SELECT (DISTINCT) column명 (ALIAS) FROM table; SELECT () 부분 생략 가능 원본을 변경하지 않는다. 1.1. column명 SELECT * FROM STUDENT.S_EMP; -- 모든 column 출력 SELECT NAME FROM STUDENT.S_EMP; -- name column만 출력 SELECT NAME, SALARY FROM STUDENT.S_EMP; -- 여러 column 출력 가능 SELECT 'a' from s_dept; --각 행마다 'a' 라는 문자열 값을 가지는 새로운 열을 생성하고 반환 --반환되는 행의 수는 s_dept 테이블의 행 수와 동일 1.2. column명에 산술식 해당 column이 숫자일 때 가능, 사칙연산..

DB/Oracle

3. where, 연산자

주의 NULL 값은 특별한 취급이 필요하며, 일반적인 비교 연산자(=, !=, >, 등등 null 값 비교 연산자: IS NULL, IS NOT NULL where title != null; -- 에러 where title is not null; -- 정상 작동 1. where where 에 들어가는 것 형식 값 연산자 subquery - subqueary 블로그에서 설명 where : 해당 조건일 때만 적용되는 문법 SELECT * FROM STUDENT.S_EMP WHERE START_DATE < '16/12/31' -- 자동형변환. 별로 좋은 방식 아님 ORDER BY START_DATE ASC -..

wooweee
'DB/Oracle' 카테고리의 글 목록 (2 Page)