블로그 이미지
progh2
지루한 것에서 벗어나 재미난 것 속으로 풍덩~☆

calendar

1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

Notice

Recent Post

Recent Comment

Archive

'DB'에 해당되는 글 2

  1. 2008.06.08 DB SQL select 문법 간단 설명
  2. 2008.06.02 sql2000의 db백업파일(.bak) 복원 방법1
2008. 6. 8. 17:07 기술문서창고
클리앙에서 올라온 질문에 답변한 글입니다.
사실 나름 길게 썼는데 아까워서(...)

ms Access 수업에서 SQL을 좀 배우는데,
SELECT 에 대한 설명을 잘 이해하지 못해서 질문드립니다.

교재에 보면 SELECT structure 를 설명한다 그러면서

SELECT [DISTINCT] column(s)
    FROM table(s)
    [WHERE condition] <general condition>
    [GROUP BY item(s)]
    [HAVING condition] <group condition>
    [ORDER BY columns] <sorting option>

이라고 써 있습니다.
근데 저는 DISTINCT도,, column도 나머지 행들도 무슨 소린지 잘 모르겠습니다 ㅠ_
교수님이 만드신 교재라 설명이 제대로 된 부분도 없구요 ;;

혹시 대강이라도 설명해 주실 수 있는 분이 계실까요?

대강 설명을 하면 select는 db table에서 어떤 자료를 빼와라! 하는 명령입니다.
"어이, 전화번호부에서 짜장면집 전화번호 좀 가져와라~" 같은 것이지요.

[]는 추가적인 옵션입니다.
<>는 []를 사용하면 추가적으로 넣어줘야 하는 조건입니다.

예를 들어 앞의 짜장면집 전화번호.. 라고 하면
select 짜장면집이름, 전화번호 from 전화번호부
같이 되겠지요.

그런데 이렇게 하면 전국의 짜장면집-_- 전화번호가 나열되겠죠?
그럴 때 쓰는 옵션이 where 입니다.
사용법은where 지역="종로구" 같이 사용합니다. 즉
select 짜장면집이름, 전화번호 from 전화번호부 where 지역="종로구"
가 됩니다.

그런데 그냥 가져오기 하면.. 미리 설정된 특정 컬럼(=필드)의 순서대로 자료를
가져오게 됩니다. 그런데 나는 짜장면집 이름순서대로 보고 싶습니다.
그때 사용하는 것이 order by 입니다.
사용법은 order by 짜장면집이름 ASC
이렇게 하면 가나다,abc 같이 순서대로 정렬해서 가져옵니다.
ASC 대신 DESC 를 넣으면 역순으로 가져오고요. 그래서
select 짜장면집이름, 전화번호 from 전화번호부
where 지역="종로구" order by 짜장면집이름 ASC
라고 하면 종로구 지역에 있는 짜장면집 이름과 전화번호를
짜장면집이름 순서대로 정렬해서 가져와라! 가 됩니다.

그런데 어떤 이유로 해서 짜장면집 이름만 가져와 보기로 했다고 합시다.
그래서 select 짜장면집이름 from 전화번호부
where 지역="종로구" order by 짜장면집이름
라고 했더니만, 어이쿠.. 홍콩반점이 10개나 나오는 둥 같은 이름이 잔뜩
나와서 괴롭습니다. 이걸 하나하나 지우기도 귀찮고..
이걸 해결해주는 옵션이 distinct 입니다. 즉 가져오는 결과가 같은 것들이
여럿 있으면 하나만 남기고 지워줍니다. (앞에서처럼 이름과 전화번호가
같이 있는 상태면 전화번호는 다를 것이기에 소용이 없겠죠?)
select distinct 짜장면집이름 from 전화번호부
where 지역="종로구" order by 짜장면집이름 ASC
이러면 깔끔하게 짜장면집 이름들만 중봅없이 가져오게 됩니다.

group by 는 특정 필드 기준으로 나눠서 출력해줍니다.
예를 들어서 앞에서처럼 각 지역마다 존재하는 짜장면집이름을
가져오게 하고 싶다고 합시다.
그러면 group by 지역 이라 해주면 지역별로 출력해줍니다.
select distinct 짜장면집이름 from 전화번호부
order by 짜장면집이름 ASC
group by 지역

그런데 지역 중에서 종로구와 구로구만 가져와서 보고 싶습니다.
이럴 때 group by에 조건을 거는 것이(즉 group by에 대한 where 역할)
having 입니다.
select distinct 짜장면집이름 from 전화번호부
order by 짜장면집이름 ASC
group by 지역
having 지역 = "종로구" or 지역="구로구"

대강 써봤지만.. 역시 책을 보고 실습하시면서 익히시는게
최고일 것 같네요.. ^^;

posted by progh2
2008. 6. 2. 22:40 카테고리 없음

Cafe24 등에서 윈도우즈 서버에서 작동하는 ASP기반의 사이트는
MS-SQL2000 서버를 사용합니다. 그런데 관리 화면에서 DB백업을
하면 bak라는 확장자를 가진 파일을 생성해줍니다.
아래 내용은 이 bak 파일을 SQL2000 DB서버가 설치되어있는 컴퓨터에서
복원하는 방법입니다.

책을 뒤져보기면 나오겠지만 귀찮아서 -_- (여러 권의 책들 아래에 깔려있습니다;)
조금 끄적거리다보니 방법을 찾아냈습니다.


01234

SQL2000서버의 영원한 친구-_-인 엔터프라이즈 매니저로 들어가서
좌측 트리모양의 뷰에서 '서버' 아이콘을 선택, 마우스 오른쪽 클릭,
데이터베이스 복원을 선택한 후
장치 선택, ~.bak파일이 있는 곳을 선택하면 복원을 할 수 있습니다.

그런데 주의점이 있는데,
해당 파일이 원래 있었던 절대경로를 기준으로 복원이 되기 때문에,
설정에서 적절히 복원될 위치를 수정해줘야 합니다.

예를 들어서 이번 cafe24에서 백업받은 db백업본의 경우
f:\MSSQL\Data 폴더로 지정되어 있어
c:\MSSQL\Data 폴더를 고치고 해당 폴더를 생성해줬습니다.
물론 복원도 잘 되었지요.

직접 해보면 별 것 아닌데...
글로 쓰고 그림도 넣다보니 뭔가 복잡해보이고 길어지네요. ^^
자동차 네비게이션처럼 윈도우 프로그램도
이런 네비게이션이 있으면 좋을 것 같기도.. ㅠ_ㅠ
클릭해서 메뉴 뒤지는 것은 좋지 않아요~
posted by progh2
prev 1 next