일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- Dreamhack
- 메일 프로토콜
- MSSQL
- JavaScript
- 패킷 필터
- Eclipse
- kitri
- Revese Proxy
- Log Parser
- SSMS
- Postman
- Kali Linux
- Excel
- AutoHotkey
- VS Code
- server profiler
- 인증서
- wireshark
- IMAP
- 모듈화
- mark/unmark
- coloring rules
- winmail.dat
- ES6
- db
- 업무 자동화
- 웹 크롤링
- IPS
- 포렌식
- power automate
- Today
- Total
전산직으로 살아남기
MSSQL - 데이터 조회하기 본문
1. 데이터 조회하기
데이터를 조회할 때는 기본적으로 최상단에 DB를 선언하고 SELECT 문을 작성합니다.
use DB이름 -- DB를 변경할 때 use를 사용한다.
SELECT * -- select에는 확인하고 싶은 컬럼을 입력한다. 전체는 * 이다.
FROM Table_A A -- from에는 조회할 Table을 입력한다. Table 뒤에 있는 A는 Alias이다.
참고로 use를 사용하지 않더라도 해당 쿼리문에 대한 DB를 설정할 수 있습니다.
🗒️ Alias란?
Alias는 값에 별칭을 주어 접근을 별칭 형태로 할 수 있도록 하는 역할을 합니다. 데이터, 컬럼, 테이블, 서브쿼리, WHERE 절 등에 사용할 수 있다. 대표적으로 알아보기 힘든 컬럼에 AS(별칭)을 많이 사용합니다. 사용 시 AS는 생략이 가능합니다.
2. 중복 데이터 제거 후 조회하기
중복데이터를 제거하고 조회하고 싶을 때는 DISTINCT를 사용합니다. 중복 조건은 SELECT에서 선언된 컬럼입니다.
SELECT DISTINCT column1, column2
FROM table_name
3. 데드락을 방지하여 조회하기
MSSQL은 DML(INSERT, UPDATE, DELETE) 작업 중에는 LOCK 상태가 되어 해당 작업 이후에 SELECT 할 수 있습니다다. 문제는 이 작업중에 SELECT를 진행하면 멈추게 된다는 것입니다. 이러한 멈춤을 방지하기 위해 WITH(NOLOCK)을 사용합니다.
SELECT A.name
FROM table_name with(nolock) A
4. 조회 조건 추가하기
WHERE 절을 사용하면 Table 자료를 특정 조건으로 조회할 수 있습니다. 조건을 여러 개 사용할 경우에는 AND 또는 OR Syntax를 사용하여 추가할 수 있습니다.
SELECT *
FROM Table_A A
WHERE A.Name = '홍길동' -- 이름이 홍길동인 경우
SELECT *
FROM Table_A A
WHERE A.Name <> '홍길동' -- 이름이 홍길동이 아닌 경우
SELECT *
FROM Table_A A
WHERE A.Name = '홍길동' -- 이름이 홍길동이고 나이가 30인 경우
AND A.Age = 30
SELECT *
FROM Table_A A
WHERE A.Name = '홍길동' -- 이름이 홍길동이거나 나이가 30인 경우
OR A.Age = 30
5. IN 조건 사용하기
WHERE 절에서 조건을 설정할 때 A, B, C 이 세 가지 조건 중에 해당하는 값을 찾을 경우 OR을 여러 번 사용해야 되는 번거로움이 있습니다. 이때 IN 구문을 사용하면 간편하게 조건을 설정할 수 있습니다.
SELECT *
FROM Table_A A
WHERE A.Name IN ('홍길동','이순신','김유신')
--위와 동일한 결과를 보여주는 쿼리문
SELECT *
FROM Table_A A
WHERE (A.Name = '홍길동'
OR A.Name = '이순신'
OR A.Name = '김유신')
6. LIKE 조건 사용하기
-- A로 시작하는 문자 찾기
SELECT *
FROM Table_A A
WHERE A.Name LIKE '홍%'
-- A로 끝나는 문자 찾기
SELECT *
FROM Table_A A
WHERE A.Name LIKE '%홍'
-- A를 포함하는 문자 찾기
SELECT *
FROM Table_A A
WHERE A.Name LIKE '%홍%'
7. BETWEEN 조건 사용하기
WHERE 조건에서 구간을 조건으로 데이터를 조회할 경우에 BEWENN을 사용합니다.
SELECT *
FROM Table_A A
WHERE A.Age BETWEEN 30 AND 60 -- 30~60세 까지의 인원을 조회
8. ISNULL 사용하기
데이터가 NULL값인 경우 ISNULL을 사용하면 다른 값으로 대체할 수 있습니다.
SELECT ISNULL(SCORE,0) --SCORE값이 NULL인 경우에 0으로 대체
FROM Table_A A
9. 조회 순서 추가하기
ORDER BY 절을 사용하여 조회되는 데이터의 조회 순서를 정할 수 있습니다. 조건이 되는 컬럼은 여러 개도 가능하며 ASC는 오름차순, DESC는 내림차순이며 ASC|DESC를 입력하지 않은 경우에는 Default로 ASC가 적용됩니다.
SELECT column1, column2, ...
FROM table_name
ORDER BY column1, column2, ... -- ASC|DESC
10. 다국어 조회하기
일부 다국어의 경우 SELECT 문을 사용하여 조회하면 깨지는 경우를 확인할 수 있습니다. 문자열을 데이터베이스의 기본 코드 페이지로 변환되는데 이 기본 코드 페이지는 특정 문자를 인식하지 못할 수 있습니다. 그렇기에 이 경우에는 후속 문자가 유니코드임을 명시하는 N 접두사를 사용합니다.
SELECT ' Rất Han Hạnh' -- 자료가 깨짐
SELECT N' Rất Han Hạnh' -- 정상적으로 나옴
SELECT *
FROM FOREIGN_DATA A
WHERE A.GREETING = N'Rất Han Hạnh' -- 조건절에서 비교할 때도 N을 사용한다.
11. 상위 몇 개의 데이터만 조회하기
TOP 명령어를 사용하면 원하는 만큼의 데이터를 조회할 수 있습니다.
SELECT TOP 1 column_name
FROM table_name
WHERE condition;
12. JOIN 사용하기
SQL의 장점은 다른 테이블과의 관계성을 이용하여 데이터 조회가 가능하다는 점입니다. 이때 사용하는 구문이 Join입니다.
SELECT A.Name, B.Dept
FROM EMP_DATA A JOIN DEPT_DATA B
ON A.EMP_CD = B.EMP_CD -- ON에는 기준 테이블과 JOIN 테이블의 조건을 작성하면 된다.
- INNER JOIN : 기준 테이블과 조인 테이블 모두 데이터가 있는 경우에 조회된다. INNER JOIN은 JOIN으로 생략하여 사용 가능하다.
- OUTER JOIN : 기준 테이블에만 데이터가 존재하면 조회된다. OUTER JOIN은 LEFT OUTER JOIN과 RIGHT OUTER JOIN으로 나뉘며 둘의 차이는 기준 테이블이 다르다는 점이다. (LEFT : 왼쪽, RIGHT : 오른쪽) 참고로 LEFT OUTER JOIN은 LEFT JOIN, RIGHT OUTER JOIN은 RIGHT JOIN으로 사용 가능하다.
🗒️ OUTER JOIN은 언제 사용할까요?
일반적으로 하나의 테이블에 모든 데이터를 입력하지 않고 분산하여 데이터를 정리합니다. 예를 들어 구매한 물품내역 테이블이 있다면 해당 테이블에 물품의 이름이 들어있는 게 아닌 물품 코드가 들어있고, 코드 테이블을 참조하여 실제 이름을 불러오곤 합니다. 아래가 그 사례입니다.
SELECT A.Product_CD, B.Minor_NM
FROM Purchase_DATA A LEFT JOIN Code_Table B
ON B.Major_CD = '0001' -- Table에서 물품에 해당하는 기준키
AND A.Product_CD = B.Minor_CD -- 기준테이블과 조인 테이블의 조건값
출처
'Development > MSSQL' 카테고리의 다른 글
MSSQL - 반복문 사용하기 (0) | 2024.05.09 |
---|---|
MSSQL - 조건문 사용하기 (0) | 2024.05.08 |
MSSQL - 변수 활용하기 (0) | 2024.05.07 |
MSSQL - Table 제어하기 (0) | 2024.04.30 |
MSSQL 설치하기 (0) | 2024.04.23 |