'전체'에 해당되는 글 337건
- 2008/11/15 부팅 USB 제작하기
- 2008/11/15 MS SQL : 샘플 테이블 (학생 테이블 + 동아리 테이블 + 학생동아리 테이블)
- 2008/11/15 Transact-SQL ( OUTTER JOIN )
- 2008/11/15 Asp.Net 팝업창 구현 ( *.aspx 페이지 사용)
- 2008/11/15 Transact-SQL ( INNER JOIN )
- 2008/11/15 SQL Server 2005 데이터 형식
- 2008/11/15 Transact-SQL ( DELETE ) : 회원값 삭제
- 2008/11/15 Transact-SQL ( UPDATE ) : 회원값 수정
- 2008/11/15 Transact-SQL ( INSERT ) : 회원 테이블 입력
- 2008/11/14 DECLARE 코드 - 해당 테이블의 행 개수를 변수에 담는 방법
- 2008/11/14 Transact-SQL ( Select ) : 회원데이터, 구매데이터 사용예 #2
- 2008/11/14 Transact-SQL ( Select ) : 회원데이터, 구매데이터 사용예
- 2008/11/14 Adventureworks DB - Sample Files
- 2008/11/14 회원테이블 + 구매테이블 샘플
- 2008/11/12 MS-SQL 2005 테이블 컬럼 점검
1. USB TOOL SETUP.exe 를 사용해서 설치 한다.
2. USB의 데이터는 모드 백업한 후에 위의 설치된 프로그램을 사용해서 생성 가능합니다.
3. 설치후에 해당 내용은 도움말을 참조 하세요.
전 위의 내용을 사용해서 win98의 부팅 이미지가 복사되도록 하고 나서
부팅 해보니 제대로 되네요. (단, BIOS에서 USB 부팅이 지원되어야 합니다.)
설치 파일 :
USBTOOLSETUP.exe |
조인 테이블 테스트시 필요한 쿼리문
학생, 동아리 테이블은 기본으로 생성됨
학생동아리 테이블은 FK로 구성되어짐
-------------------------------------------------------------------------------------------
use sqlDB
create table stdTbl
(
stdName nvarchar(10) not null primary key,
addr nchar(4) not null
)
go
create table clubTbl
(
clubName nvarchar(10) not null primary key,
roomNo nchar(4) not null
)
go
create table stdclubTbl
(
num int identity not null primary key,
stdName nvarchar(10) not null
foreign key references stdTbl(stdName),
clubName nvarchar(10) not null
foreign key references clubTbl(clubName)
)
go
insert into stdTbl values('박지성', '서울')
insert into stdTbl values('박주영', '경기')
insert into stdTbl values('조재진', '충북')
insert into stdTbl values('이천수', '인천')
insert into stdTbl values('안정환', '강원')
go
insert into clubTbl values('수영', '101호')
insert into clubTbl values('바둑', '102호')
insert into clubTbl values('축구', '103호')
insert into clubTbl values('봉사', '104호')
go
insert into stdclubTbl values('박지성', '바둑')
insert into stdclubTbl values('박지성', '축구')
insert into stdclubTbl values('조재진', '축구')
insert into stdclubTbl values('이천수', '축구')
insert into stdclubTbl values('이천수', '봉사')
insert into stdclubTbl values('안정환', '봉사')
go
--===============================================================--
-- OUTER JOIN
--===============================================================--
-- OUTER JOIN에는 LEFT, RIGHT, FULL 을 OUTER JOIN에 추가할 수 있다.
-- LEFT OUTER JOIN의 의미를 "왼쪽 테이블의 것은 모두 출력 되어야 한다.
-- 정도로 해석하면 된다.
select U.userid, U.name, B.prodName, U.addr, U.mobile1 + U.mobile2 as [연락처]
from userTbl U
left outer join buyTbl B
on U.userid = B.userid
order by U.userid
/* 결과
userid name prodName addr 연락처
-------- ---------- -------- ---- -----------
AJH 안정환 책 강원 NULL
CJC 최진철 모니터 제주 0190000000
CJC 최진철 메모리 제주 0190000000
CJC 최진철 운동화 제주 0190000000
CJC 최진철 운동화 제주 0190000000
JJJ 조재진 NULL 충북 0193333333
KNI 김남일 NULL 경북 0166666666
LCS 이천수 모니터 인천 0114444444
LYP 이용표 NULL 전북 NULL
PJS 박지성 NULL 서울 0111111111
PJY 박주영 운동화 경기 0112222222
PJY 박주영 노트북 경기 0112222222
PJY 박주영 청바지 경기 0112222222
SJK 송종국 NULL 경기 0189999999
SKH 설기현 책 서울 0118888888
SKH 설기현 청바지 서울 0118888888
SKH 설기현 책 서울 0118888888
*/
-- 위와 같이 NULL의 정보도 같이 출력되는 것을 볼 수 있다.
-- left outer join 을 left join으로만 기록해도 된다.
--
select U.userid, U.name, B.prodName, U.addr, U.mobile1 + U.mobile2 as [연락처]
from buyTbl B
right outer join userTbl U
on U.userid = B.userid
order by U.userid
-- 결과는 위와 같다.
--
해당 UI의 버튼을 누를때 팝업창이 뜨고 싶다면
아래의 코드를 버튼 이벤트에 추가해 주어야 합니다.
조금 다른 부분이라면 aspx 파일을 팝업창으로 사용한다는 것이다.
{
StringBuilder strBuilder = new StringBuilder();
strBuilder.Append("<script language='javascript'>");
strBuilder.Append("w=810;h=620;");
strBuilder.Append("x=Math.floor( (screen.availWidth-(w+12))/2 );y=Math.floor( (screen.availHeight-(h+30))/2 );");
strBuilder.Append("window.open('Default2.aspx', '',");
strBuilder.Append("'height='+h+',width='+w+',top='+y+',left='+x+',scrollbars=no,resizable=no');");
strBuilder.Append("</script>");
if (!ClientScript.IsClientScriptBlockRegistered("PopupScript"))
{
ClientScript.RegisterClientScriptBlock(this.GetType(), "PopupScript", strBuilder.ToString());
}
}
** 이때 StringBuilder 는 System.Text 네임스페이스를 추가해 주어야 합니다.
해당 팝업은 Web Form으로 추가 한 다음에
UI를 구성하시면 됩니다.
그리고 여기서 입력 또는 닫기 버튼을 통한 윈도우창 닫는 방법은 아래의 자바스크립트 코드를 추가해 주어야 합니다.
function submitComment()
{
var oForm = document.commentToComment; -- 보내기 위한 데이터가 존재하는 폼
oForm.submit(); -- 다른 웹 페이지로 post 데이터를 보낸다.
self.close(); -- 현재 창을 닫는다.
}
</script>
팝업창샘플코드 보기
--============================================================--
-- INNER JOIN
--============================================================--
use sqlDB
go
-- inner join 사용
-- 구매 테이블 중에 LCS 라는 아이디를 가진 사람이 구매한 물건을
-- 발송하기 위해서 이름/주소/연락처 등을 조인해서
-- 검색하려면 아래와 같이 사용
select *
from buyTbl
inner join userTbl
on buyTbl.userid = userTbl.userid
where buyTbl.userid='LCS'
/* 결과
num userid prodName ... birthYear addr mobile1 mobile2 height
----------- -------- -------- --------- ----------- ------ -------- ---------- ----------- ---- ------- -------- ------
3 LCS 모니터 ... 1983 인천 011 4444444 179
*/
-- 아이디/이름/구매물품/주소/연락처만 추출
select buyTbl.userid, name, prodName, addr, mobile1 + mobile2 as [연락처]
from buyTbl
inner join userTbl
on buyTbl.userid = userTbl.userid
-- select userid << 이렇게 하면 buyTbl, userTbl에 userid가 있기 때문에
-- 오류가 납니다. 정확하게 명시를 해야 합니다.
-- >> buyTbl.userid 로 적어야 합니다.
/* 결과
userid name prodName addr 연락처
-------- ---------- -------- ---- -----------
PJY 박주영 운동화 경기 0112222222
PJY 박주영 노트북 경기 0112222222
LCS 이천수 모니터 인천 0114444444
CJC 최진철 모니터 제주 0190000000
PJY 박주영 청바지 경기 0112222222
CJC 최진철 메모리 제주 0190000000
*/
-- WHERE로 JOIN을 처리 할 수 있다.
select buyTbl.userid, name, prodName, addr, mobile1 + mobile2 as [연락처]
from buyTbl, userTbl
where buyTbl.userid = userTbl.userid
/* 결과
userid name prodName addr 연락처
-------- ---------- -------- ---- -----------
PJY 박주영 운동화 경기 0112222222
PJY 박주영 노트북 경기 0112222222
LCS 이천수 모니터 인천 0114444444
CJC 최진철 모니터 제주 0190000000
PJY 박주영 청바지 경기 0112222222
CJC 최진철 메모리 제주 0190000000
*/
-- 테이블에 별칭을 붙인다.
select B.userid, U.name, B.prodName, U.addr, U.mobile1 + U.mobile2 as [연락처]
from buyTbl B, userTbl U
where B.userid = U.userid
/* 결과
userid name prodName addr 연락처
-------- ---------- -------- ---- -----------
PJY 박주영 운동화 경기 0112222222
PJY 박주영 노트북 경기 0112222222
LCS 이천수 모니터 인천 0114444444
CJC 최진철 모니터 제주 0190000000
PJY 박주영 청바지 경기 0112222222
CJC 최진철 메모리 제주 0190000000
*/
-- LCS 아이디의 사용자가 구매한 정보를 보여주는 쿼리
select B.userid, U.name, B.prodName, U.addr, U.mobile1 + U.mobile2 as [연락처]
from buyTbl B
inner join userTbl U
on B.userid = U.userid
where B.userid = 'LCS'
/* 결과
userid name prodName addr 연락처
-------- ---------- -------- ---- -----------
LCS 이천수 모니터 인천 0114444444
*/
-- 전체 회원들이 구매한 목록을 모두 출력하자.
-- 그리고 결과를 정렬해보자.
select U.userid, U.name, B.prodName, U.addr, U.mobile1 + U.mobile2 As [연락처]
from userTbl U
inner join buyTbl B
on U.userid = B.userid
order by U.userid
/* 결과
userid name prodName addr 연락처
-------- ---------- -------- ---- -----------
AJH 안정환 책 강원 NULL
CJC 최진철 메모리 제주 0190000000
CJC 최진철 모니터 제주 0190000000
CJC 최진철 운동화 제주 0190000000
CJC 최진철 운동화 제주 0190000000
LCS 이천수 모니터 인천 0114444444
PJY 박주영 청바지 경기 0112222222
PJY 박주영 운동화 경기 0112222222
PJY 박주영 노트북 경기 0112222222
SKH 설기현 책 서울 0118888888
SKH 설기현 청바지 서울 0118888888
SKH 설기현 책 서울 0118888888
*/
-- 위의 결과에는 구매 테이블에 대한 목록이다.
-- 하지만 구매를 하지 않은 나머지 회원은 나타나지 않는다.
-- 쇼핑몰에서 한번이라도 구매한 기록이 있는 우수회원들에게
-- 감사의 안내문을 발송하도록 하자. 라는 경우에
-- DISTINCT 를 사용한다.
select distinct U.userid, U.name, U.addr
from userTbl U
inner join buyTbl B
on U.userid = B.userid
order by U.userid
/* 결과
userid name addr
-------- ---------- ----
AJH 안정환 강원
CJC 최진철 제주
LCS 이천수 인천
PJY 박주영 경기
SKH 설기현 서울
*/
-- 이 내용은 바로위의 내용에서 중복되는 목록을
-- DISTINCE로 해서 하나로 묶어 주는 역활을 한다.
-- 위의 결과를 EXISTS 문을 사용해서도 동일한 결과를 낼 수 있다.
-- 내부적으로 JOIN보다 복잡하여 성능이 떨어지므로 권장은 하지 않는다.
select U.userid, U.name, U.addr
from userTbl U
where exists(
select *
from buyTbl B
where U.userid = B.userid
)
/* 결과
userid name addr
-------- ---------- ----
AJH 안정환 강원
CJC 최진철 제주
LCS 이천수 인천
PJY 박주영 경기
SKH 설기현 서울
*/
-- ★★"학생 동아리"생성 후에 해야함..
-- 학생 테이블, 동아리 테이블, 학생동아리을 이용해서 학생을 기준으로
-- 학생 이름/지역/가입한 동아리/동아리명으로 출력해 보도록 하자.
select s.stdName, S.addr, C.clubName, C.roomNo
from stdTbl S
inner join stdclubTbl SC
on S.stdName = SC.stdName
inner join clubTbl C
on SC.clubName = C.clubName
order by S.stdName
/* 결과
stdName addr clubName roomNo
---------- ---- ---------- ------
박지성 서울 바둑 102호
박지성 서울 축구 103호
안정환 강원 봉사 104호
이천수 인천 축구 103호
이천수 인천 봉사 104호
조재진 충북 축구 103호
*/
-- 동아리를 기준으로 가입한 학생의 목록을 출력
select C.clubName, C.roomNo, S.stdName, S.addr
from stdTbl S
inner join stdclubTbl SC
on SC.stdName = S.stdName
inner join clubTbl C
on SC.clubName = C.clubName
order by C.clubName
/* 결과
clubName roomNo stdName addr
---------- ------ ---------- ----
바둑 102호 박지성 서울
봉사 104호 이천수 인천
봉사 104호 안정환 강원
축구 103호 박지성 서울
축구 103호 조재진 충북
축구 103호 이천수 인천
*/
-- 외부 조인은 조인의 조건에 만족되지 않는 행까지도 포함시키는 것
--
숫자형 데이터 형식
- 숫자형 데이터 형식은 정수, 실수 등의 숫자를 표현한다.
|
데이터 형식 |
바이트 수 |
숫자 범위 |
설 명 |
|
★BIT |
1 |
0 또는 1 |
Boolean형인 참(True), 거짓(False)에 사용 |
|
★INT |
4 |
약 -21억 ~ +21억 |
정수 |
|
★SMALLINT |
2 |
-32,768~32,767 |
정수 |
|
★TINYINT |
1 |
0 ~ 255 |
양의 정수 |
|
★BIGINT |
8 |
-263 ~ +263-1 |
정수 |
|
★DECIMAL(p,[s]) |
5 ~ 17 |
N/A |
고정 정밀도(p)와 배율(s)을 가진 숫자형, 예) decimal(5,2)는 전체 자리수를 5자리로 하되, 그 중 소수점 이하를 2자리로 하겠다는 의미 |
|
NUMERIC |
5 ~ 17 |
N/A |
DECIMAL과 동일한 데이터 형식 |
|
REAL |
4 |
|
FLOAT(24)와 동일 |
|
FLOAT[(p)] |
4 ~ 8 |
|
P가 25미만이면 4바이트, 25이상이면 8바이트의 크기를 할당 |
|
MONEY |
8 |
-263 ~ +263-1 |
화폐 단위로 사용 |
|
SMALLMONEY |
4 |
약 -21억 ~ +21억 |
화폐 단위로 사용 |
문자형 데이터 형식

USBTOOLSETUP.exe