Index : 인덱스란 추가적인 쓰기 작업과 저장 공간을 활용하여 데이터베이스 테이블의 검색 속도를 향상시키기 위한 자료구조
단점 : 추가공간이 필요, 별도로 생성되므로 생성하는데 시간이 많이 걸림, 데이터 변경이 많거나 소량의 데이터는 오히려 성능을 저하시킴
인덱스 생성 : 자동으로 생성 : primary key, unique 제약사항이 걸린 컬럼
$ create index [인덱스 명] on [테이블 명]([컬럼 명]);
$ create index ind_email on user(email);
View : 뷰는 사용자에게 접근이 허용된 자료만을 제한적으로 보여주기 위해 하나 이상의 기본 테이블로부터 유도된, 이름을 가지는 가상 테이블
--문법--
CREATE VIEW 뷰이름[(속성이름[,속성이름])]AS SELECT문;
사용이유 : 복잡한 질의 내용을 단순한 질의를 통해 처리 가능, DB의 데이터를 선택적으로 보여줄 수 있다--> 자료에 대한 권한별 접근 통제 가능
-트랜잭션 : 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위
DB 입장에서 TX의 시작 : DML 을 시작하면 자동으로 시작
TX의 종료 : 사용자가 명시적으로 commit, rollback 할경우, DDL이 실행되는 경우, sql툴을 정상적으로 종료하는 경우
TX중간에 데이터는 그냥 임시적인 상태라 테이블에 반영 되지 않음. ( 메모리상에서만 존재 ) --> 복구가 가능!
또한, 변경된 행들에 대해서는 lock이 걸려 다른사용자는 변경할 수 없는 상태다.
밑에 줄에 "단 수도 정보가 없다면 출력하지 않는다" 와 같은 내용이 들어가면 Inner Join 이라는 말이다.
다르게 밑에 줄 처럼 테이블 간 같은 값이 없어도 출력하는 경우는 Outer Join을 이용해야 할 것이다.
서브쿼리 쿼리는 main+ subquery 구조 이기때문에 우선, subquery를 작성한 후에 합치는 작업으로 쿼리를 작성하는게 이해하기 쉽겠다.
일반컬럼과 집계함수 컬럼이 같이사용 되면 안된다 ---> 일반컬럼에 group by를 걸어주자
'TIL' 카테고리의 다른 글
[TIL] DP (0) | 2021.09.15 |
---|---|
[TIL] DB 이상현상 (0) | 2021.09.09 |
[TIL] JOIN, SubQuery (0) | 2021.09.08 |
[TIL] RDBMS (0) | 2021.09.06 |
[TIL] 코딩테스트에 많이 쓰이는 함수들(JAVA) (0) | 2021.09.02 |
최근댓글