반응형
SELECT는 데이터를 검색하기 위한 DML문으로 보통 database TABLE의 데이터를 조회할 때 SELECT DML문을 사용합니다.
SELECT DML문 구조 설명
SELECT DML문 예시 코드.
SELECT [ TOP | COLUMN1, COLUMN2 | ALL | DISTINCT]
FROM 테이블이름 (들)
[ WHERE 조건(들) ]
[ GROUP BY 속성명 ]
[ HAVING 검색조건(들) ]
[ ORDER BY 속성명 [ ASC | DESC ];
SELECT DML문 예시 설명.
[ ] : 대괄호 안의 SQL 예약어들은 선택적으로 필요시 사용할 수 있습니다.
| : 선택 가능한 문법들 중 한 개를 선택해서 사용할 수 있습니다.
SELECT DML문 예제
SELECT의 COLUMN, ALL, DISTINCT 예제.
예시 코드.
SELECT [DISTINCT] {*, column [Alias]}
FROM 테이블 이름;
USE sampleDB;
DROP TABLE IF EXISTS UserInfoForSelect;
CREATE TABLE UserInfoForSelect (
StudentId int,
StudentName varchar(255),
KorScore int,
MathScore int,
EngScore int,
ScienceScore int
);
insert into UserInfoForSelect(StudentId, StudentName, KorScore, MathScore, EngScore, ScienceScore)
values(202401,'john',90,97,93,100)
,(202402,'Obama',90,70,100,100)
,(202403,'Trumb',20,15,5,5)
,(202404,'bush',50,15,35,25)
,(202405,'Biden',60,70,75,50)
,(202406,'Biden',80,90,75,50);
-- 1. SELECT 의 COLUMN,ALL,DISTINCT 예제
-- 모든 column 출력하기
SELECT *
FROM UserInfoForSelect;
-- 필요한 COLUMN만 출력하기
SELECT StudentId, StudentName, KorScore
FROM UserInfoForSelect;
-- 중복제거후 출력하기
SELECT DISTINCT StudentName
FROM UserInfoForSelect;
SELECT DML문 WHERE 조건 예제.
조건은 KorScore 점수가 50점 이상인 학생만 출력하세요.
-- 2. WHERE 조건 예제
SELECT *
FROM UserInfoForSelect
WHERE KorScore > 50;
SELECT DML문 GROUP BY 예제.
StudentName의 column에서 중복되는 학생은 한 번만 출력해 주세요.
-- 3. GROUP BY 예제
SELECT StudentName
FROM UserInfoForSelect
GROUP BY StudentName
HAVING 절 예제.
StudentName를 이용하여 학생이름이 같은 사람을 알려주세요.
-- 4. HAVING 예제
SELECT StudentName
FROM UserInfoForSelect
GROUP BY StudentName
HAVING count(StudentName) > 1;
ORDER BY 예제.
학생 중 한국어 점수가 좋은 사람을 먼저 출력하세요.
-- 5. ORDER BY 예제
SELECT *
FROM UserInfoForSelect
ORDER BY KORSCORE DESC;
MSSQL SELECT TOP 기능
MSSQL TOP 사용 용도는?
다른 database에서는 limit를 사용하지만 mssql에서는 유일하게 top을 사용하므로 주의하셔야 합니다.
실행결과는 N개를 반환합니다.
질문: 한국어 점수가 낮은 학생 3명을 알려주세요.
-- MSSQL TOP 예제
SELECT TOP 3 *
FROM UserInfoForSelect
ORDER BY KORSCORE ASC;
반응형