데이터베이스/Mssql

[MSSQL] SELECT 문

반응형

SELECT

SELECT 문은 테이블의 데이터를 조회하는 구문이다. SELECT문은 SQL명령어 중에서 가장 기본이 되고 많이 사용하는 명령어이다. SELECT문을 사용한 조회 결과는 테이블 형태로 보여진다. 단순하게 테이블을 조회할 수 있을 뿐만 아니라 다양한 구문을 활용하여 복잡한 작업도 가능하다.

 

DDL

테이블의 스키마, 헤더, 테이블의 뼈대를 만드는 것

DML

테이블의 뼈대를 만들어 놓으면 레코드(, 튜플)을 채워 넣어서 자료들을 뽑아보는 것

DCL

테이블이나 특정 칼럼에 대해서 사용자에게 권한을 주고 통제하는 것

 

*SELECT 기본 문법

SELECT 테이블의 열이름(칼럼명)

FROM 테이블명

[WHERE 검색할 행의 조건]

 

*SELECT 기본 문법

SELECT : 테이블의 열이름(칼럼명)

 

FROM : 테이블 명

 

FROM 밑으로는 상황에 따라 생략 할 수 있는 명령어

문법의 순서는 지켜줘야 한다

WHERE

 

GROUP BY

HAVING

 

ORDER BY

 

*SELECT

--모든 열 가져오기

SELECT * FROM 성적

 

--선택한 열 가져오기

SELECT 학번,이름,성별,점수 FROM 성적

 

--열의 이름 변경하기

SELECT 학번, 이름 AS 학생이름, 점수 AS DB점수

FROM 성적

 

--새로운 열을 추가하기

SELECT '컴퓨터과'AS 학과,학번,이름,점수 FROM 성적

컴퓨터괴라는 열이 학번 열앞에 추가되어 보여진다.

원하는 값을 테이블의 열처럼 사용하면 된다.

 

*데이터 정렬하기

--점수를 기준으로 오름 차순 정렬

SELECT 학번,이름,점수

FROM 성적

ORDER BY 점수 ASC

 

--점수를 기준으로 내림 차순 정렬

SELECT 학번,이름,점수

FROM 성적

ORDER BY 점수 DESC

 

--이름을 기준으로 오름차순 정렬

SELECT 학번,이름,점수

FROM 성적

ORDER BY 이름

// (default 오름차순)

 

--반별로 점수순으로 오름차순 정렬

SELECT 학번,이름,,점수

FROM 성적

ORDER BY ,점수

 

*중복 데이터 제거하기

--제품 테이블을 조회

SELECT *

FROM 제품

 

--제품 테이블에서 종류만 조회

SELECT 종류

FROM 제품

 

--제품테이블에서 종류를 한번만 조회

--중복된 데이터를 한번만 나타나게 하고 싶으면 DISTINCT

SELECT DISTINCT 종류

FROM 제품

 

*상위 몇 개만 가져오기

--상위 몇 개를 가져오려면 TOP n을 사용할 수 있다.

--성적 테이블에서 점수가 TOP 5인 학생 조회

SELECT TOP 5 이름,점수

FROM 성적

 

--TOP n 은 상위 n번째 행까지 가져오므로,

--만약n번째 이후 레코드가 같은 점수를 가진 학생이 있다면

--같은 순위임에도 불구하고 점수가 같은 나머지 학생들은 포함되지 않는다

--이때, WITH TIES절을 사용하면 같은 점수를 가진 레코드까지 가져온다.

 

SELECT TOP 5 WITH TIES 이름,점수

FROM 성적

ORDER BY 점수 DESC

 

--PERCENT

--성적 테이블에는 20개의 레코드가 있기 때문에 25 퍼센트에 해당되는 결과는 5개의 레코드가 조회된다

SELECT TOP 25 PERCENT 이름, 점수

FROM 성적

 

*연산자를 이용한 데이터 필터링

--성적 테이블에서 점수가 90이상인 학생들만 조회

SELECT 학번,이름,,점수

FROM 성적

WHERE 점수>=90

 

--와일드카드 %를 사용하여 이름이''으로 시작하는 학생들을 검색

SELECT *

FROM 성적

WHERE 이름 like '%’

 

--이름이 ''로 시작하면서 ''또는 ''로 끝나는 학생을 검색

SELECT *

FROM 성적

WHERE 이름 like '%[석기]’

 

--문자열의 결합

--이름에 연속해서 성별이 괄호안에 나타나도록 출력하는 예제

SELECT 학번,이름+'('+성별+')'AS[이름(성별)]

FROM 성적

 

--논리연산자

--A반이고 남학생들의 데이터만 조회

SELECT 이름,,성별

FROM 성적

WHERE ='A' AND 성별='

 

--논리연산자

--점수가 90점 이상이거나 80점 미만인 학생들을 검색

SELECT 이름,점수

FROM 성적

WHERE 점수>=90 OR 점수<80

 

--BETWEEN

--점수가 75점과 85점 사이의 학생들을 조회

SELECT 이름,점수

FROM 성적

WHERE 점수 BETWEEN 75 AND 85

 

--IN

--ININ에 나열한 목록들의 데이터를 가져올 때 사용

--이름이 '이종석','송중기','유아인'학생들의 데이터를 조회

SELECT *

FROM 성적

WHERE 이름 IN ('이종석','송중기','유아인');

반응형

'데이터베이스 > Mssql' 카테고리의 다른 글

[MSSQL] 요약정보 만들기  (0) 2020.05.01
[MSSQL] Transact-SQL?  (0) 2020.04.30