MSSQL 무작정 따라하기 -세번째시간 (쿼리 정리 1)


IT Story/Database이야기 2010.10.28 17:17



세번째 시간입니다.
SELECT , 정렬 쿼리에 대해서 간단히 알아볼께요 ^^


데이터 조회 (SELECT 문)

SELECT
  
컬럼이름
FROM
   
테이블이름
WHERE
   
조건
(( GROUP BY 컬럼이름 HAVING 조건 ))


*당연히 한글로 된 부분은 실제 쿼리에선 설명한 부분이 들어가야 함.

뒤에 (( ))안은 항상 같이 오게 된다. 둘중에 하나만 없어도 오류가 발생.


위와 같이 SELECT 다음에 *<~을 쓰지말고 컬럼이름을 일일이 써주세요.

왜냐하면 데이터베이스 튜닝이라고 해서 만약에 가입하는 고객이 몇만명 이렇게 늘어나면,

SELECT * 시에는 미세한 차이같지만, 매우 느리게 됩니다.

저같은 경우도 초보자라서 무슨 상관있겠어 하면서 게시판 DB를 마구 작성했는데,

접속자 수가 조금만 늘어나도 매우 느려지더군요... 개인컴퓨터로 호스팅을 해서 그런 것도 있지만,

작은 습관이 모여서 완벽한 프로그램을 만들게 되니까요.



이번엔 일부필드만 보이는 쿼리를 날려보겠습니다.

간단하죠?^^ 원하는 컬럼만 셀렉트 컬럼에 적어주면 되겠습니다.

원하는 값만 원하듯, 셀렉트 쿼리에서
SELECT
 
phonenumber, CUSTOMERID
FROM
 
customers
라고 순서를 바꿔서 적어주면 바꿔서 출력이 됩니다 ^^ 매우 편리한 기능이라고 할 수 있겠네요.

last name, first name 바꿔서 출력할 때도 유용하게 사용이 되겠구요.


필드 결합하기 쿼리에 대해서 알아볼께요.

first name, last name 순서는 바꿔서 '길동' '홍' 이라고 나왔는데, 이를 '홍' '길동' 으로 바꾸었죠?
근데 한데 합쳐서 보고자 할때는 이 것도 역시 편리하게 +를 사용하면 되겠습니다.





이번엔 별칭 붙이기 쿼리를 알아볼께요.

컬럼에 대한 별칭을 정해주는 건데요.

쉽게 볼 수 있을 뿐 더러, 별칭을 정해주면 뒤에 나오는 정렬쿼리나, 여러 쿼리등에서'별칭'으로 해서 쿼리도 날릴 수가 있습니다.


참 편리하죠?

이래서 MS -SQL 은 OS나 하드웨어 등 컴퓨터 지식이 높지 않아도, 쉽게 자신이 원하는 쿼리로 사용이 가능합니다.

또한 영어를 매우 닮은 영문법을 닮아, 쉽습니다. SELECT, INSERT, AS 말그대로 영어 그대로 사용을 하니까요 ^^

힘을내셔서, 얼마안남았습니다.

중복행 제거 쿼리를 알아볼께요. 예를 들어 이름이 홍길동 두명이 있을 때 한 행을 제거 하는 쿼리입니다.

DISTINCT를 사용하여,

위와 같이 빨간 네모가 없는 경우엔 lastname + firstname이 중복되는 정보가 2개있을 시, 중복되는 행은 모두 제거가 됩니다.
예를 들어 '홍길동' 이 2명이 있을 땐 한명이 사라집니다.

하지만 뒤에 Phonenumber도 같이 붙이게 되면, 성명은 같지만, 폰넘버가 같지않아 다른 사람으로 인식 될때는 전화번호가 다른 '홍길동'둘은 둘다 지워지지가 않습니다.

신기하죠?^^

TOP 을 사용하면, customer ID 중 상위 (가장 빠른 순위대로) 19퍼센트만 출력이 됩니다.

물론 퍼센트를 사용하지 않고, 그냥 100 이렇게 써놓으면 100위까지만 출력이 되겠죠.

정렬 쿼리에 대해서 하나만 알고 끝낼께요

아래와 같이 ORDER BY만 붙여주면 오름 차순, 내림 차순 등으로 정리 할 수가 있습니다.

예를 들어 IP 테이블을 만들 때, 222.222.222.1 , 2. 3. 4 5, 6, 7, 이런 순이 아니라,
                     222.222.222.1 , 222.222.222.10, 100, 1000 이런식으로 나오게 되는데,

이럴 때 정리 할수가 있어요.^^ 자세한 쿼리는 ASP.NET 카테고리에 게시물이 있을 겁니다.

여하튼 우리가 하는 걸 DESC로 했을 때, customerid가 역순으로 정렬되어 나오는 걸 볼수가 잇습니다 ^^

오름차순이 아니라 DESC , 내림차순의 경우엔 ASC 를 사용합니다






휴우 열심히 달렸네요 ^^
 네번째 시간에서 뵐께요 !!
다음시간에선 원하는 데이터베이스만 빼내는 where 조건 쿼리나 list 등에 대해서 알아볼께요
수고하셨어요~


BY.ShakeJ
저작자 표시 비영리
신고

WRITTEN BY
ShakeJ

0 ,