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정보는 복사되지 않는다.

요~ 노란부분 유용하게 사용했습니다!!!!

Posted by Ozahir
,