본문 바로가기

오라클 - 제약사항 (190611) 1. primary key는 unique key + not null -> 데이터가 반드시 존재해야 한다 주민번호 ? 예를 들어 성인 웹 사이트에서 주민번호는 대표성을 지니므로 primary key가 될 수 있음 Primary key도 unique index가 자동으로 생성된다. Primary key VS Unique key 가장 큰 차이점은 테이블에 Primary key는 하나만 정의할 수 있음. 공공기관 ? 주민번호가 대표성을 지닐 수 있음. 반면 네이버나 페이스북은 이메일, ID가 대표성을 지님. 즉, Business Rule ( 도메인의 영역 ) 에 따라 Primary key 가 결정된다. 2. unique key 데이터의 고유성을 보장하면서 null을 허용 (포털 사이트의 회원가입) unique ..
오라클 실습 (190610) 13번의 경우 VARCHAR2 같은 경우 13번은 있는 그대로 비교한다. 그러므로 결과가 출력되지 않음 14번의 경우 VARCHAR2 와 CHAR 비교시 VARCHAR2가 이김 -> 데이터가 조회되지 않음 15번의 경우 데이터 조회 가능 1번의 경우 조회 가능 2번의 경우 조회 불가능 SUBSTR의 결과가 VARCHAR2 타입이라서 조회가 되지 않는다. 3번의 경우 결과가 조회돼! -- 참고 -- SAL > '2000'; 이렇게 하면 문자가 숫자로 바뀐다. (DBMS는 숫자를 선호) SAL LIKE '2%' 이건 안된다., 문자가 숫자로 바뀌지 않는다. 숫자가 문자로 바뀌게 돼 38자리까지 가능하고 가변길이 - > NUMBER 오라클 같은 경우 TAX 같은 경우 실수형임 DEFAULT 18 -> 인서트 ..
[생활코딩] LEFT/RIGHT OUTER JOIN 테이블을 조회할 때 어떤 테이블의 내용은 모두 보고 싶고, 이런 경우를 위해 다양한 JOIN이 존재한다. SELECT * FROM TOPIC LEFT JOIN AUTHOR ON TOPIC.AUTHOR_ID = AUTHOR.AID; 두 개의 테이블을 하나로 만들어줘!!! 왼쪽에 있는 TOPIC 테이블을 기준으로 RDBMS 는 가져옵니다. 자기한테 존재하는 것을 모두 가져와요. 심지어 자기가 가지고 있지 않는 행이 있다면 NULL로 표기 왼쪽에 있는 테이블에는 값이 있는데! 그 값에 해당되는 오른쪽 테이블의 행이 없구나! 이것을 인지할 수 있어야 합니다. 이번에는 테이블 3개를 LEFT JOIN 해보겠습니다. SELECT * FROM TOPIC LEFT JOIN AUTHOR ON TOPIC.AUTHOR_ID..
Hash
오라클과제 (190510)
오라클실습 (190510) ** 부서번호 10, 20의 사원정보를 가지는 테스트 테이블을 생성 (중요) ** DATA TYPE VARCHAR2 = Variable Length의 의미, 가변 길이 데이터 타입 CHAR = 고정 길이 데이터 타입 LONG은 안씀 CLOB (최대 4기가 바이트까지 데이터 저장이 가능) Character Large Object, 가끔 씀 BLOB (Binary Large Object) - 가끔 NUMBER는 부동소수점 형태로 데이터를 저장한다 34.73 -> 0.3473 * 10^2 37 -> 0.37 * 10^2 강남구 서초동 ----> 1 강서구 금촌동 ----> 2 로 매핑할 경우, 좋음 desc emp; 정수나 실수는 ,로 구분한다. DATE는 고정된 7 BYTE 길이, NUMBER는 가변길이 C..
오라클 성능 개선 (190510) 스칼라 서브쿼리는 성능이 떨어진다. 왜냐하면 스칼라 서브쿼리도 상관 서브 쿼리에 속하므로 지속해서 메인 쿼리문의 SYSTEM S를 방문한다. FROM 절에 서브 쿼리 (인라인 뷰) 를 생성하여 성능을 개선할 수 있었다. // @ \\\\\ 경로 \ TEST.sql // DDL CREATE TABLE SYSTEM( SYSTEM_ID VARCHAR2(5), SYSTEM_NAME VARCHAR2(20) ); INSERT INTO SYSTEM VALUES('XXX','혜화DB'); INSERT INTO SYSTEM VALUES('YYY','강남DB'); INSERT INTO SYSTEM VALUES('ZZZ','영등포DB'); CREATE TABLE RESOURCE_USAGE(SYSTEM_ID VARCHAR2(..
오라클실습 (190509) * 서브쿼리 일반적인 서브쿼리는 먼저 동작하고 메인 쿼리로 답을 던져주고 메인쿼리가 실행되지만 MAIN 쿼리와 SUB 쿼리가 지속해서 데이터를 주고 받는 쿼리를 CORRELATED SUBQUERY라고 한다. SCALAR SUBQUERY도 상관 서브 쿼리이다. 자기 혼자 단독으로 실행할 수 없다. FROM 절에 사용하는 뷰를 인라인 뷰라고 부른다. FROM 절에 테이블 대신 사용하는 서브쿼리를 뷰라고 부른다. 1번을 보면 서브쿼리가 테이블 역할을 할 수 있음 result set을 테이블처럼 쓸 수 있다. Relation의 결과는 Relation이다. 테이블의 구조가 정적으로 정의되는 것 -> 이미 만들어진 테이블 새로운 데이터의 구조를 만들 수 있다 -> 동적인 테이블 인라인뷰는 정적인 테이블이 아니라, ..