목록프로그래밍/SQL (52)
코딩하는 문과생
# DDL CREATE TABLE table_name (column_name ... ) ; //구조만 만든다. CREATE TABLE table_name AS subquery ; //구조를 만들고 데이터 초기화 # 제약조건 데이터 무결성: 데이터베이스에 저장되어 있는 데이터가 손상되거나 원래의 의미를 잃지 않고 유지하는 상태 데이터 무결성 제약조건: 데이터의 무결성을 보장하기 위해 오라클에서 지원하는 방법 ( NOT NULL, UNIQUE, PRIMARY KEY, REFERENCES, CHECK ) # NOT NULL //NOT NULL //컬럼 레벨의 제약조건 CREATE TABLE TEST_TBL1( ID VARCHAR(20) NOT NULL , PWD VARCHAR(20) ); //이것도 가능 CR..
# Subquery 하나의 쿼리가 다른 쿼리에 포함되는 구조 다른 쿼리에 포함된 내부 쿼리는 외부쿼리에 사용될 값을 변환하는 역할 SELECT, FROM, WHERE, HAVING에 사용된다. 단일행 비교연산자 : =, >, >=, ANY, ALL, ALL (SELECT SALARY FROMEMPLOYEE JOINJOB USING(JOB_ID) WHEREJOB_TITLE = '과장') # EX7) 일반적으로 INLINE VIEW가 성능이 더 좋다고 판단된다. 접근 횟수가 더 적다 //직급별 평균 급여를 조회하라. //WHERE에 서브쿼리가 부여 SELECTEMP_NAME , JOB_TITLE , SALARY FROMEMPLOYEE JOIN JOB USING(JOB_ID) WHERE(JOB_ID, SALA..
# SET Operator 두 개 이상의 쿼리 결과를 하나로 결합시키는 연산자 SELECT 절에 기술하는 컬럼 개수와 데이터 타입은 모든 쿼리에서 동일해야 함 UNION(합집합, 중복 제거), UNION ALL(합집합, 중복 모두 출력), INTERSECT(교집합), MINUS(차집합) # EX1) SELECTEMP_ID , ROLE_NAME FROMEMPLOYEE_ROLE UNION ALL SELECTEMP_ID , ROLE_NAME FROMROLE_HISTORY; //UNION, UNION ALL, INTERSECT, MINUS # 특징 필요에 따라서 Dummy Column을 부여하는 경우도 있다. 결합된 이후 ORDER BY가 필요하다면 index를 보통 부여한다. # EX2) SELECTEMP_N..
# JOIN 논리 모델링에서 중요한 점은 다대다를 풀어주고 정규화 시키는 것이다. EQUAL JOIN: 공통부분을 이용해 JOIN한다. NON EQUAL JOIN: 공통부분이 없다. 근데 JOIN한다. JOIN이후 하나의 논리 테이블이 만들어진다고 생각하자. # 오라클 전용 구문 EX1) SELECTEMP_NAME, DEPT_NAME FROMEMPLOYEE E, DEPARTMENT D WHEREE.DEPT_ID = D.DEPT_ID; # 오라클 전용 구문 EX2) SELECTEMP_NAME , SALARY , SLEVEL FROMEMPLOYEE E , SAL_GRADE S WHEREE.SALARY BETWEEN S.LOWEST AND S.HIGHEST; # 오라클 전용 구문 EX3) //OUTER JOI..