Database/Theory 15

[Database/Theory] 15. WHERE 1=1

[Database/Theory] 15. WHERE 1=1 12select * from tst_tblwhere 1=1cs조건문에 있는 1=1은 있어도 되고 없어도 되는 구문이다. 그러나 이와 같이 1=1을 사용하는 이유는 간단하다.차후 조건문을 용이하게 작성하기 위한것 뿐이다.123456789StringBuffer sql = new StringBuffer(); // sql에 쿼리문 가져온 것으로 가정. if(true){ sql.append("and tbl.aaa=1");}else{ sql.append("and tbl.aaa=2");}Colored by Color Scriptercs 위와 같은 경우를 사용할 때 주의할 점은 저 조건으로 인하여 의도치 않는 결과가 나오지 못하게 작성하도록 한다.MyBatis는..

Database/Theory 2016.08.03

[Database/Theory] 14. view

[Database/Theory] 14. view테이블과 동일하게 사용되는 개체다. 사용자 입장에서 테이블과 동일하다. 12create view v_usersas select id, name from users;cs - 보안성이 좋다. 뷰에 있는 내용만 보여지게 되고, 테이블에 있는 실제 데이터들이 노출되지 않는다. 그냥 테이블을 분리하면 된다 생각되지만 일관성이 떨어진다거나 관리가 어려워진다. - 복잡한 쿼리의 단순화가 된다.123456789select e1.last_name 사원이름, d1.department_name 부서이름, j1.급여 급여from employees e1, departments d1, (select department_id 부서아이디, min(salary) 급여 from employ..

Database/Theory 2016.06.21

[Database/Theory] 13. index(3) - 생성 시기

13. index(3) - 생성 시기index는 열단위로 생성된다. 또한 2개 이상의 열을 조합하고 생성할 수 있다. - where절에서 사용되는 열을 index로 만든다. 그 만큼 자주 사용할 가치가 있는 index로 만든다. select문보다 insert문이 자주 사용되면 그만큼 페이지 분할이 될 것이고 시스템의 성능이저하될 것이다. - 중복이 많은 열은 index의 가치가 없다.non-clustered index일지라도, 중복률이 테이블의 1% ~ 3% 이상이면 사용되지 않는다. - 외래키나 Join에 사용되는 열을 사용하는 것이 좋다. 그만큼 설계해야 될 중요성이 크다. 제약조건에 의하여 생성된 index는 삭제가 불가능하고대량의 데이터의 변동이 발생된다. - insert, update, dele..

Database/Theory 2016.06.19

[Database/Theory] 12. index(2) - 내부적 동작

12. index(2) - 내부적 동작 - 내부적 동작 * B-Tree(Balanced Tree)라는 구조에 의해 동작한다. * 자료구조의 Tree와 같은 구조이며 Root, Leaf와 같은 지칭이 있다. * 자료구조에서는 자료를 가진 것을 node라 부르지만 DB의 B-Tree에서는 Page라 부른다. * 한 Page에 8Kbyte의 공간을 차지한다. * 특정 Data를 검색할 때, Root page를 시점으로 연결된 Page를 찾아나아간다. * table scan보다 확연한 탐색 속도의 차이가 있다. * 그러나 Data의 변경작업이(insert, delete, update => CUD라 부르겠다.) 잦으면 역효과가 나타난다. * 페이지 분할 작업이 발생되기 때문이다. * 가령 특정 페이지에 데이터가 ..

Database/Theory 2016.06.17

[Database/Theory] 11. index(1) - 개요, 장단점, 종류

11. index(1) - 개요, 장단점, 종류 - 인덱스의 개요DB의 성능을 향상시키는 것이 목적. 적절한 사용으로 데이터에 빠르게 접근한다.DB 튜닝의 큰 효과를 볼 수 있다.과다한 사용은 성능이 떨어진다.필요없는 인덱스가 많아지면 DB에 차지되는 공간이 많아져 table scan보다 속도가 느려질 수 있다.(table scan : 인덱스를 사용하지 않고 DB를 처음부터 끝까지 탐색하는 것) - 장점과 단점 무조건은 아니지만, 데이터 검색속도가 향상된다.시스템 부하가 줄어들고 시스템의 전체 성능이 높아진다. DB의 10%정도 공간이 요구된다.인덱스를 생성하는 시간이 크게 요구된다.DB의 변경작업(Insert, Update, Delete)이 잦으면 성능이 저하된다. - Index의 종류 Clustere..

Database/Theory 2016.06.16

[Database/Theory] 10. Join(1)

10. Join(1)2개 이상의 테이블이 하나로 묶여 집합을 만들어내는것. - Inner Join일반적인 Join서로 관계가 맺어진 테이블에서 각자의 속성들을 추출하는것. Join하는 조건에 일치한 테이블들이 결합된다.select 뒤에는 어떤 테이블의 속성을 추출할 것인지 명시해야된다.Join의 조건하에, 양쪽 테이블에 모두 존재하는것만 추출된다.Join의 조건은 순차적으로 검색된다. - Outter Join Inner Join의 결과와 한쪽 테이블에만 존재하는 데이터도 추출하는 것. Join 조건에 만족하지 아니한 행도 추출된다.Left, Right의 경우 각 측에 있는 테이블의 데이터를 추출한다는 의미다.Full Outter는 Left와 Right를 모두 수행한다는 의미다. - Self Join 한 ..

Database/Theory 2016.06.16

[Database/Theory] 09. SQL syntax(7) - Rownum

09. SQL syntax(7) - Rownum select rownum from ~~~~ order by -> rownum먼저 수행되므로 order by하면 rownum은 섞일 수 있다. where -> group by -> having -> order by 순서로 진행 rownum은 항상 추출된 1부터 부여된다. where rownum >= 3 (X) 조건절에 만족하지 아니하면 매번 1부터 넘버링이되고 매번 조건에 만족하지 않으므로 결과가 나오지 않는다123456789101112131415161718192021222324252627/* Ex 1 : */select rownum, id, name, salary from emp_test order by salary desc nulls last; /* Ex..

Database/Theory 2016.06.08

[Database/Theory]07. SQL syntax(5) -Join

07. SQL syntax(5) - Join 하나 이상의 테이블로 부터 연관된 Data 조회 보통 둘 이상의 Column들의 공통된 값 Primary Key 및 Foreign Key 값을 사용하여 조인 한다. 4가지로 분류 : EQUI JOIN / NON-EQUI JOIN / SELF JOIN / OUTER JOIN 이해를 돕기위하여 테이블들을 열거한다. c_emp; 이름 널? 유형 ----------------------------------------- -------- ------------ ID NOT NULL NUMBER(5) NAME NOT NULL CHAR(15) SALARY NUMBER(7,2) PHONE CHAR(15) DEPT_ID NUMBER(7) s_dept; 이름 널? 유형 ----..

Database/Theory 2016.06.07

[Database/Theory]06. SQL syntax(4) - Constraint, rest

06. SQL syntax(4) - Constraint, rest- Constraint Table을 만들기 전제 규정하는 것을 제약조건(Constraint)라고 한다. 제약조건은 결함이 없다는 뜻을 가진 무결성을 특징으로 표현한다. 그 무결성은 두가지로 분류된다. * 개체 무결성 : Table의 한 Record에 대하여, 대표하는 값이 부재상태가 있을수 없고 고유하지 아니하여야 되는 특징. * 참조 무결성 : Table끼리 관계를 가진 특징. 다른 Table의 Column을 참조하는 Table의 Record에 대하여, 참조되는 Column의 값이 들어갈 수 없다는 특징. * 제약조건 Key Word PRIMARY KEY(PK) : 개체 무결성을 가진 키. Record를 대표하는 Column. NOT NU..

Database/Theory 2016.06.07