MSSQL에서 테이블의 존재하는 데이터를 조회(검색)를 하기 위해서는 SELECT 명령어를 사용해야 합니다. 이번에는 기본적인 MSSQL SELECT 문의 사용법에 대하여 알아보고 간단한 예제도 다뤄보도록 하겠습니다.
MSSQL SELECT 문
SELECT 기본 문법
SELECT [조회할 컬럼]
FROM [조회할 테이블]
WHERE [조건절];
예제
-- Club 테이블 조회
-- 1. 이름이 '박지운'인 사람 검색
SELECT *
FROM Club
WHERE Name = '박지운';
-- 2. 나이가 34살인 사람의 이름과 성별 검색
SELECT Name, Gender
FROM Club
WHERE AGE = '34';
-- 두가지 이상의 조건문 검색시 AND 명령어 사용
-- 3. 나이가 20살 이상의 남자('M')를 모두 검색
SELECT *
FROM Club
WHERE Age >= 20
AND Gender = 'M';
조건절 LIKE (검색할 단어를 포함하는 값)
-- LIKE 조건절 문법
SELECT [조회할 컬럼]
FROM [조회할 테이블]
WHERE [조건 컬럼] (NOT) LIKE '%[검색할 단어]%';
이처럼 '%'는 검색하려는 단어 앞 또는 뒤에 어떤 단어가 존재한다는 의미입니다.
예제
-- 검색할 단어의 위치에 따라서 검색 방법이 바뀝니다.
-- ● '윤영미'라는 이름을 LIKE 조건절을 통하여 검색하는 예제
-- 1. 검색할 단어가 시작 위치이며 '윤'으로 시작하는 사람을 검색
SELECT *
FROM Club
WHERE Name LIKE '윤%';
-- 2. 검색할 단어가 중간 또는 마지막 위치이며, '영'을 포함하는 사람을 검색
-- 이 경우에는 영의 위치와 상관없이 어느 위치에 영이 있는 경우 모두 검색
SELECT *
FROM Club
WHERE Name LIKE '%영%';
-- 3. 검색할 단어가 마지막에 위치하며, '미'로 끝나는 사람을 검색
SELECT *
FROM Club
WHERE Name LIKE '미%';
-- ● 검색할 단어가 포함 또는 제외되도록 검색하는 예제
-- '광역시'라는 명칭이 들어가는 도시에 거주하는 사람을 검색
SELECT Name, Age, Gender
FROM Club
WHERE City LIKE '%광역시%';
-- '광역시'라는 명칭을 포함하지 않는 도시에 거주하는 사람을 검색 (NOT 명령어 사용)
SELECT Name, Age, Gender
FROM Club
WHERE City NOT LIKE '%광역시%';
조건절 IN (여러 개의 조건을 한 번에 나열)
-- IN 조건절 기본 문법
SELECT [조회할 컬럼]
FROM [조회할 테이블]
WHERE [조건 컬럼] (NOT) IN([검색 단어1], [검색 단어2], ..., [검색 단어n]);
예제
-- 조건 컬럼에서 여러 개의 조건을 검색하는 예제
-- '윤영미', '박지운' 2명의 이름 검색
-- ● IN 조건절을 사용하지 않고 검색(OR 명령어 사용)
SELECT *
FROM Club
WHERE Name = '윤영미'
OR Name = '박지운';
-- ● IN 조건절을 사용한 검색
SELECT *
FROM Club
WHERE Name IN('윤영미', '박지운');
-- ● '윤영미', '박지운'을 제외하고 검색(NOT 명령어 사용)
SELECT *
FROM Club
WHERE Name NOT IN('윤영미', '박지운');
조건절 BETWEEN AND (범위를 정하여 검색)
-- BETWEEN AND 조건절 기본 문법
SELECT [조회할 컬럼]
FROM [조회할 테이블]
WHERE [조건 컬럼] BETWEEN [검색할 시작 범위]
AND [검색할 종료 범위];
예제
-- 숫자 또는 날짜를 범위로 많이 사용
-- ● 나이가 19 ~ 30살인 사람을 검색
SELECT *
FROM Club
WHERE Age BETWEEN 19
AND 30;
-- ● 등록일이 '2023-11-01' ~ '2023-11-02'인 사람을 검색
SELECT *
FROM Club
WHERE Regist_Date BETWEEN '2023-11-01'
AND '2023-11-02';
-- ● 나이가 19 ~ 30살과 등록일 '2023-11-01' ~ '2023-11-02'을 제외한 사람을 검색(NOT 명령어 사용)
SELECT *
FROM Club
WHERE Age NOT BETWEEN 19 AND 30
AND Regist_Date NOT BETWEEN '2023-11-01' AND '2023-11-02';
ORDER BY (데이터 정렬)
-- ORDER BY 기몬 분법 (ASC: 오름차순, DESC: 내림차순)
SELECT [조회할 컬럼]
FROM [조회할 테이블]
WHERE [조건절]
ORDER BY [정렬할 컬럼] ASC OR DESC;
예제
-- ORDER BY 정렬에서 기본값은 ASC(오름차순) 정렬입니다.
-- ● 이름 오름차순 정렬 (오름차순은 기본값으로 ASC가 생략되어도 무방)
SELECT *
FROM Club
ORDER BY Name ASC;
-- ● (조건)이름이 '김'씨로 시작하는 사람의 (정렬)나이 내림차순 정렬(내림차순은 명시)
SELECT *
FROM Club
WHERE Name LIKE '김%'
ORDER BY Age DESC;
-- ● '서울'에 거주하는 사람 (다중 정렬) 1. 성별(오름차순) 2. 나이(내림차순) 정렬
SELECT *
FROM Club
WHERE City = '서울'
ORDER BY Gender, Age DESC;
(ORDER BY Gender ASC, Age DESC와 동일 오름차순 생략함)
이번시간에는 MSSQL에서 원하는 데이터를 조회/검색을 할 수 있는 SELECT 문의 사용법과 예제에 대하여 알아보았습니다. 기본적인 사용법을 위에 다루었으며, SELECT 문에서 사용하는 명령어들이 많기 때문에 그 부분들은 따로 더욱 공부해보겠습니다. 감사합니다.
MSSQL 같이보면 도움이 되는 글
'DataBase > MSSQL' 카테고리의 다른 글
MSSQL UPDATE 사용법 및 예제 (0) | 2024.02.29 |
---|---|
[MSSQL] INSERT INTO SELECT 문 (조회된 결과를 삽입) (0) | 2023.11.14 |
[MSSQL] INSERT 문 사용법 및 예제 (+ 여러개 레코드 추가) (0) | 2023.11.13 |
MSSQL TOP 사용법 (행의 수를 지정하여 출력) (0) | 2023.06.30 |
[MSSQL] 문자열 원하는 영역 자르기 (SUBSTRING, LEFT, RIGHT) (0) | 2023.06.29 |
댓글