본문 바로가기
MSSQL

데이터 선택(SELECT...FROM)

by eloyb 2024. 11. 9.
반응형

SQL에서 SELECT 다른 키워드들 중에서도 SQL 가장 핵심되는 부분이라고 있습니다. SELECT 다른 키워드 및 절과 함께 사용하면 거의 제한이 없는 방법으로 데이터를 찾아보고, 필터링을 하고, 통계를 낼 수 있습니다.

MSDN(Microsoft Developer Network)에서 SELECT문을 찾아보면 엄청나게 명령문 집합과 설명서에 내용을 읽어보 기도 전에 기부터 죽을 있는데 사실 모든 내용을 익힐 필요는 없습니다. 기본적인 사용법 몇가지만 익혀도 필요한 데 이터를 찾아보는데 충분한 경우가 많으며, 복잡한 관계로 이루어진 테이블이 아니라면 몇개의 키워드만 알아도 충분한 경 우가 많습니다.

예를 들어 회원 주소록 테이블이 있다면 이런 단순한 테이블의 경우는 SELECT...FROM...WHERE 키워드만으로도 필요한 데이터를 찾을 수 있는 경우가 많습니다.

필자는 보통 사전의 예를 많이 드는 편인데, 예전에 국어사전을 펼쳐보다가 내가 모르는 국어 단어가 이렇게 많았나? 하면 서 깜놀한 적이 있었습니다. 하지만 이렇게 모르는 단어가 많음에도 불구하고 다른 사람들과 의사소통하는데는 전혀 지장 이 없는 걸 보면, 국어사전에 있는 단어들을 다 알지 못해도 실생활에는 전혀 지장이 없고, 모든 단어를 알 필요가 전혀 없 다는 생각을 하게 됩니다.

MSDN 나오는 SELECT 설명서도 마찬가지라고 생각합니다. MSDN 사전식 설명은 방대한 내용을 담고 있고, 어느 기 업체에서는 한번쯤 쓰일만한 내용일 수도 있지만, 모든 부분이 다 쓰이는 것이 아니고, 실제 현업에서 사용되는 부분은 극 히 일부분만 사용될 수도 있습니다. 대규모 기업체라면 좀 더 많은 부분이 쓰일 수 있고요. 결국 중요한 것은 실제 사용자 영역에서 필요한 부분을 찾아낼 수 있느냐가 가장 중요한 부분이라고 하겠습니다.

그러면 SELECT 사용법을 알아보도록 하겠습니다.

가장 기본적인 SELECT문의 사용법은 SELECT column_name FROM table_name 입니다.

Customer 테이블의 구조

 

Customer 테이블의 샐플 데이터

 

테이블의 구조와 컬럼() 레코드() 데이터가 위와 같이 되어 있을 경우 Customers 테이블에서 City를 선택하려면 아래와 같이 쿼리를 작성합니다.

SELECT City FROM Customers

Customers 테이블에서 CustomerID, Address, City 선택하려면 아래와 같이 쿼리를 작성합니다. SELECT CustomerID, Address, City FROM Customers

 

Customers 테이블의 모든 컬럼을 선택하려면 아래와 같이 쿼리를 작성합니다.

SELECT CustomerID, FirstName, LastName, Address, City, CState, ZipCode, AreaCode, PhoneNumber FROM Customers

모든 컬럼을 선택하려면 위와 같이 입력을 해도 되지만 실제로는 와일드카드(*)라는 편리한 대안이 있기 때문에 아래와 같이 쿼리를 작성하는 것이 보통입니다.

SELECT * FROM Customers

Distinct 키워드

SELECT City FROM Customers

Customer 테이블에 어느 도시들이 들어 있는지 확인해 보려면 위와 같이 입력하면 확인을 할 수 있습니다.

하지만 위와 같이 입력을 하면 모든 도시들이 중복되어 등록되어 있는 상관없이 나열되기 때문에 같은 도시들이 여러번 출력이 될 수 있고 레코드의 갯수가 많다면 도시명을 하나씩 확인하는 것은 굉장히 불편하고, 소모적인 일입니다.

이럴 경우 각 도시의 이름을 한번씩만 출력하고자 하면 사용하는 것이 Distinct 키워드입니다.

SELECT Distinct City FROM Customers

SELECT Distinct City, CState FROM Customers -- 여러행에 Distinct 키워드를 사용

 

Distinct 키워드는 여러 컬럼에 사용할 수도 있습니다. 여러 컬럼에 Distinct 키워드를 사용할 경우에는 각 컬럼들을 합쳐 서 개별적인 출력 결과가 도출됩니다. 처음엔 조금 이해가 어려울 수도 있는데 아래의 출력 결과를 확인해 보면 확실히 실 수 있을 겁니다.

SELECT Distinct City, CState FROM Customers

위와 같이 두개의 컬럼에 Distinct 키워드를 사용하면 City CState 같이 묶어서 중복되지 않은 개별적인 출력물이 나 오게 됩니다.

위에서 City로만 보면 서울의 경우 중복되어 출력되지만 CState 묶어서 보면 해당되는 구는 중복되어 나타나지 않고 한번씩만 출력되는 것이 보장되게 됩니다.

Distinct 키워드는 자체만으로도 유용성이 많지만 특별히 통계를 낼때 훨씬더 유용하게 사용할 수 있습니다.

기업체라면 지역별 매출현황을 알고 싶을때 라든지, 지방선거에서 지역별 득표율 계산이라던지, 개인사업자라면 구 입 제품별 원가율 계산등 개별적인 항목들의 통계를 내고 싶을 때 Distinct 키워드는 필수적으로 사용되는 아이템입니다.

 

SELECT column_name FROM table_name ORDER BY column_name ASC(DESC) SELECT 문에서 같이 사용할 수 있는 절이 ORDER BY 절입니다.

ORDER BY 는 위와 같이 테이블명 뒤에 사용되면서 출력 결과를 정렬해주는 역할을 합니다.

오름차순(1,2,3..., ,,, A,B,C)으로 정렬하려면 ORDER BY ASC(ASC 생략가능), 내림차순으로 정렬하려면 DESC를 사용합니다. 참고로 ASC Ascending의 약자이고, DESC Descending의 약자입니다.

그렇다고 ASC 약자를 안쓰고 Ascending 쓰는 것은 허용되지 않습니다. DESC 마찬가지 입니다.  

SELECT City, CState From Customers Order By City -- City 컬럼을 기준으로 오름차순 정렬

SELECT City, CState From Customers Order By City DESC -- City 컬럼을 기준으로 내림차순 정렬

 SELECT City, CState From Customers Order By City, CState ASC -- City CState를 묶어서 오름차순 정렬 

 

'MSSQL' 카테고리의 다른 글

데이터 검색(여러 조건)  (0) 2024.11.12
데이터 검색(WHERE)  (3) 2024.11.11
데이터베이스 분석과 설계  (3) 2024.11.10
제약조건  (0) 2024.11.09
데이터베이스 생성과 테이블 작업  (2) 2024.11.08