MS-SQL의 간단한 조작
1-1 DB정보 알기
--시스템에 생성된 테이블 보기
select * from sysobjects where type='U'
--버전알아내기
select @@version
1-2 데이타베이스 백업
--백업
backup database pubs to disk='c:\temp\pubs' with init
--복원
restore database pubs to disk='c:\temp\pubs'
1-3 변수의 크기
bigint 8바이트 정수
int 4바이트 정수
smallint 2바이트 정수
tinyint 1바이트 정수
bit 0,1
float 부동소숫점(15자리)
real 부동소숫점(7자리)
datetime 8바이트 날짜시간
smalldatetime 4바이트 날짜시간
char, varchar 8000자이하
nchar,nvarchar 4000자 이하 유니코드
text 8000자 이상
Ntext 4000자 이상 유니코드
binary, varbinary 8000 바이트 이하 이진
image 8000 바이트 이상 그림
money 8바이트 화폐
smallmoney 4바이트 화폐
table 테이블자체
sql_variant text, ntext, image, timestamp 를 제외한 모든 자료형
cursor 커서
timestamp 유일한수
1-4 문자열 변형
convert(char(30), title) --30글자짜리 문자열로 변형
substring(title,1,30) -- 전체문장중 30글자만 표시하고 나머지는 공백으로 남겨둠
cast(title as char(30)) -- 문자열변경
replicate(0,5) --0을 5번 반복
select getdate()
--날짜
select convert(varchar(30), getdate(),111)
select convert(varchar(30), getdate(),112)
--시간
select convert(varchar(30), getdate(),108)
-- 앞자리 0으로 채우기
create function fn_FillStr
(
@No bigint,
@Length int,
@ReplaceChar char(1)
)
returns varchar(8000)
as
begin
return
(
replicate(@ReplaceChar, @Length - len(convert(varchar(20), @No))) + Convert(varchar(20), @No)
)
end
go
select dbo.fn_FillStr(123,6,'0')
1-5 테이타입력
--새로운 테이블에 입력 : 색인이나 키는 복사하지 않는다.
select * into test2
from t1
-- 이미 존재하는 테이블에 테이터 입력
insert test2
select *
from test1
1-6 CASE
select ... ,
case whe sex=1 then '남' else '여' end as '성별'
from ...
2-1 테이블생성
create database test on primary
(
NAME = N'test_data',
FILENAME = N'c:\temp\test_Data.MDF',
SIZE=5,
MAXSIZE=100,
FILEGROWTH = 10%
)
log on
(
NAME = N'test_log',
FILENAME = N'c:\temp\test_Log.MDF',
SIZE=2,
FILEGROWTH = 1MB
)
2-2 테이블의 복사*********************************************************
SELECT * INTO 생성될 테이블명 FROM 복사할 테이블 명
사용)
SELECT * INTO publishers2 FROM publishers where '1'='2'
>데이터는 빼고 복사
SELECT * INTO publishers2 FROM publishers where '1'='1'
>데이터까지 복사.
단)제약조건이나, Identity정보는 복사되지 않는다.
요~ 노란부분 유용하게 사용했습니다!!!!