본문 바로가기

반응형

msSQL

(69)
[MSSQL] SQL Server FK (외래키) 설정 외래키 Foreign Key 외래키 생성 -- 테이블 생성 시 FK 설정 CREATE TABLE 테이블명 ( 컬럼 속성 , CONSTRAINT FK명 FOREIGN KEY (FK설정할컬럼) REFERENCES 참조할 테이블(참조할 테이블의 컬럼) 옵션 ) -- 기존 테이블 FK 설정 ALTER TABLE 테이블명 ADD CONSTRAINT FK명 FOREIGN KEY (FK설정할 컬럼) REFERENCES 참조할 테이블(참조할 테이블의 컬럼) 옵션 옵션 -- Master : 참조 대상 테이블 / Child : FK 생성 테이블 -- CASCADE : Master 삭제 시 Child 같이 삭제 CONSTRAINT FK_TEMP2_FID FOREIGN KEY (FID) REFERENCES TEMP(ID) O..
MSSQL 간단 정리 요약 사전 1. 데이타검색 - SELECT, ALIASES, TOP, DISTINCT, WHERE, ORDER BY2. 조건 연산자 - 부등호, AND/OR/NOT, NULL, BETWEEN, IN, LIKE, ALL/ANY/SOME3. 집합 연산자 - UNION, INTERSECT, EXCEPT4. 그룹- GROUP BY, HAVING, PARTITION BY, ROLLUP/CUBE, PIVOT/UNPIVOT5. 순위 함수 - ROW_NUMBER, RANK, DENSE_RANK6. NULL 함수 - NULLIF, ISNULL, COALESCE7. 집계 함수 - MAX/MIN, COUNT/AVG/SUM, COMPUTE8. 문자열 함수 - ASCII/CHAR, REPLACE/STUFF/UPPER/LOWER/REVER..
[MSSQL] 일별 누적 접속자 통계 구하기 (누적 합계) 일별 누적 접속자 통계 구하기 문제 사용자 접속기록을 관리하는 테이블이 있다. 사용자가 접속할 때 마다 기록이 되기 때문에 동일 사용자가 하루에 여러번 기록될 수 있다. 이 기록을 토대로 일별 접속 현황 통계자료를 작성해 보려고 한다. 접속일자를 기준으로 다음 4가지 통계를 한 화면에 보여주는 쿼리를 작성해보자 1. 접속건수 : 접속 기록을 일별로 카운트한다. 2. 접속자수 : 동일 사용자는 한 번만 카운트한다. 3. 누적접속건수 : 현재일까지의 누적 건수를 카운트한다. 4. 누적접속자수 : 현재일까지의 누적 접속자수를 카운트한다. 원본 데이터 CREATE TABLE t2 (dt VARCHAR(8), id INT) INSERT INTO t2 SELECT '20150801', 1 id UNION ALL S..
[MSSQL] WHERE CASE WHEN 조건절에 조건문 WHERE 절에서 CASE WHEN을 사용해보자 예제1. 과목이 Math일 경우에만 점수가 100점 그 외의 경우에는 0점인 ROW 조회 SELECT * FROM TBL_TEST WHERE Score = (CASE WHEN @in_Subject = 'Math' THEN 100 ELSE 0 END) 위의 쿼리는 아래와 같이 AND OR 조건으로 바꿔 사용할 수도 있다. SELECT * FROM TBL_TEST WHERE (@in_Subject = 'Math' AND Score = 100) OR (@in_Subject 'Math' AND Score = 0) 예제2. 과목이 Math일 경우에만 점수가 100점 그 외의 경우에는 전체 ROW 조회 SELECT * FROM TBL_TEST WHERE (CASE W..
[MSSQL] DISTINCT, GROUP BY 중복제거 DISTINCT 와 GROUP BY 를 비교해보자 DISTINCT 유니크한 데이터를 조회하는 경우 즉, 중복된 결과를 제거하고자 할 때 사용한다. GROUP BY 데이터를 그룹핑해서 조회하는 경우 비교 SELECT DISTINCT Col1 FROM Table_A SELECT Col1 FROM Table_A GROUP BY Col1 위의 쿼리는 중복을 제거하기 위해 작성된 쿼리다. 동일하게 처리하는 듯 하지만 두 쿼리는 차이가 있다. DISTINCT는 단순 그룹핑 작업한 수행하지만, GROUP BY 는 그룹핑 작업 + 정렬 작업을 동반한다. 따라서, 정렬 작업이 필요없을 경우 DISTINCT 를 사용하는 것이 성능상 좋다. [MSSQL] GROUP BY 없이 HAVING이 단독으로 오는 경우 [MSSQL]..

반응형