반응형

데이터베이스 4

[SQL 활용] 14. 사용자 관리

보안 권한 부여 새로 만든 로그인객체를 현재 있는 데이터베이스를 접근할 수 있도록 등록 가장 단순한 자격 : public - 최소한의 권한 magicCoperation에만 접근 가능하고, 그 전에 만든 db들은 접근 불가능하다. public으로, 최소한의 권한만 줬기 때문에 db에 접근만가능하지 테이블 접근은 불가능함 이번에는 쿼리문으로 더 많은 권한을 가진 user3를 만들어보자. 계정 생성은 master db에서 관리한다. 이 계정이 magicCorp에서도 사용할 수 있게 한다. 디폴트로 public 권한만 가지고 있기 때문에 GRANT를 이용해 부서테이블에 대해 select와 update 권한을 부여하자. SSMS : GUI

[SQL 활용] 13. 인덱스와 뷰

인덱스 내가 만약 키가 100인 아이를 찾고싶으면 처음 200부터 비교해갈 수 있지만, 이럴 경우 성능이 떨어짐. 우리가 키값에 따라 색인을 만들어놓으면 순서적으로 접근하는게 아니라 랜덤하게 직접적으로 임의의 순서를 따라 접근할 수 있기 때문에 보다 빠르게 데이터를 추출할 수 있다. ex) 사원번호에 인덱스를 부여할경우 고유 인덱스가 됨. 동일한 사원번호를 가진 사원은 존재하지 않으니까. 부서 번호에 인덱스를 부여할경우 비고유 인덱스가 됨. 여러 사원이 한 부서 번호를 공유하니까. 기본키에 대해서는 자동으로 dbms가 고유색인을 만든다. 성능 향상을 위해. 서로 다른 부서여도 위치는 같을 수 있으니 비고유 인덱스를 생성해보자. 부서 번호는 오름차순으로, 같은 부서일경우 급여는 내림차순으로 정렬한 후 결합..

[SQL 활용] 12. 순위 계산

순위 함수 salary가 500인 세 명이 모두 출력됨 rank() 는 5등이 여러명이면 여러명인만큼 등수가 사라짐 dense_rank()는 5등이 여러명, 그 후 6등 그룹 별 순위 부서 번호대로 랭크를 하는데 이 때 부서 번호대로 분류를 하고 그 분류된 각각의 소그룹에서 급여기준으로 내림차순으로 정렬해서 그 순위를 rank_dept 라는 속성값으로 출력하시오. from절에 subquery 형태로 인라인 뷰 사용. 중복된 결과가 나오는데, 중복 허용하고싶지 않다면 select DISTINCT 붙여주면 됨. 부서별로 급여를 내림차순한 후, 가장 처음으로 나오는 값을 출력. 즉, 각 부서별 최고 급여액. (=MAX) LAG(salary, 1) : salary를 기준으로 나보다 바로 앞 1명 LEAD(sal..

반응형