본문 바로가기

SQL6

[SQL] INDEX (인덱스) SQL Server에서 사용하는 INDEX에 대해 공부해보려한다. 데이터가 많을수록 쿼리를 잘 짜는 것도 중요하지만, 기본 개념을 잘 숙지하고 있도록 하자! 페이지(PAGE) 인덱스에 대해 알기 전, 페이지를 알아야 한다. 데이터 INSERT 시, 페이지에 들어가게 되고 그 페이지에서 SELECT를 한다. 대부분 Data로 구성되어 있지만, 일부 페이지는 인덱스(데이터 위치), 텍스트/이미지 등으로 구성되어 있다. SQL Server의 기본 저장 단위 (8KB) 1MB에는 128Pages가 존재 데이터를 읽을 때 페이지의 모든 행이 읽어짐 (참고 : https://laigo.kr/41, https://jungwoong.tistory.com/32) 힙(heap)? 인덱스를 알기 전, 인덱스가 적용되지 않은.. 2021. 7. 27.
[SQL] GROUP BY / HAVING / JOIN 연습문제 [SQL] GROUP BY / HAVING 연습문제 1. 급여가 1000 이상인 사원들의 부서별 평균 급여를 출력해보세요 단, 부서별 평균 급여가 2000 이상인 부서만 출력하세요. SELECT DEPTNO, AVG(SAL) FROM EMPWHERE SAL >= 1000GROUP BY DEPTNOHAVING AVG(SAL) >= 2000; 2. 각 부서별 같은 업무(job)를 하는 사람의 인원수를 구해서 부서번호, 업무(job), 인원수를 부서번호에 대해서 오름차순 정렬해서 출력해 보세요. SELECT DEPTNO, JOB, COUNT(*) FROM EMPGROUP BY DEPTNO, JOBORDER BY DEPTNO ASC; 3. 사원번호,부서번호,부서명을 출력하세요 단, 사원이 근무하지 않는 부서명도.. 2017. 6. 16.
[SQL] 단일함수/복수함수 이용하기 [SQL] 단일함수/복수함수 이용하기 단일행 함수와 복수행 함수 - 단일행 함수: 하나의 ROW 당 하나의 결과값을 반환하는 함수 - 복수행 함수: 여러개의 ROW 당 하나의 결과값을 반환하는 함수 단일행 함수 - 종류 *문자함수 1. CHR(아스키코드) : 아스키코드를 문자로 바꿔줌 2. CONCAT(칼럼명, '붙일 문자') : 문자열 연결함수 3. INITCAP('문자열') : 시작문자를 대문자로 바꿔준다 4. LOWER('문자열') : 문자열을 소문자로 바꿔준다 5. UPPER('문자열') : 문자열을 대문자로 바꿔준다 6. LPAD('문자열', 전체자리수, '남는자리를 채울 문자') : 왼쪽에 채운다. 7. RPAD('문자열', 전체자리수, '남는 자리를 채울 문자') : 오른쪽에 채운다. 8. .. 2017. 6. 16.
[SQL] GROUP BY / HAVING [SQL] GROUP BY / HAVING GROUP BY - GROUP BY 절은 데이터를 원하는 그룹으로 나눌 수 있다. - GROUP 으로 묶으면 ROW가 줄어든다. - GROUP BY는 WHERE 뒤에 온다.HAVING - GROUP으로 묶은 후 조건을 붙이고 싶을 때 이용한다. GROUP BY 위치 / HAVING 위치 * GROUP BY를 이용한 예제 - 부서 번호를 그룹으로 묶어 결과값을 보여준다. - HAVING으로 조건을 붙여 출력할 수 있다. - GROUP BY DEPTNO 를 하면 3개의 컬럼으로 나뉘지만 GROUP BY DEPTNO, JOB으로 하여서 9개의 컬럼으로 나타난다. - GROUP BY 에 대한 조건은 HAVING절을 이용한다. 2017. 6. 14.