사이트 이전,서버이전작업 등을 할때 유용하게 쓰이는 간단한 사용법..



신규 계정 생성

EXEC sp_addlogin 'userid', 'passwd', 'testDB'



사용자이름이 빈칸으로 나오는경우 아래와 같이 하면 된다.

testDB에 해당하는 신규 로그인과 기존 사용자의 매핑
use testDB
go
EXEC sp_change_users_login 'Update_One', 'userid', 'userid'

신고

댓글을 달아 주세요

mssql 테이블 소유자 변경

Posted by 비회원 프로그래밍/DB : 2010.03.17 09:54

EXEC sp_changeobjectowner '기존계정.바꿀테이블', '바꿀계정';

기존 '바꿀테이블' 이 dbo 소속이고 test 계정으로 변경 하려면

EXEC sp_changeobjectowner 'dbo.바꿀테이블', 'test'; 

이와같이 변환하여 사용할수 있다.
신고

댓글을 달아 주세요

1. 자료형의 종류
 
   [mssql2000]
        bigint           8바이트    64비트    부호 있음
        int               4바이트    32비트       "
        smallint        2바이트    16비트       "
        tinyint          1바이트     8비트        "
        decimal(p,s)   실수표현    p: 전체자리수 , s는 소수점 부분의 길이
        numeric(p,s)    "
        money         8바이트   64비트  통화 단위  1/10000의 정확성을 가짐
        smallmoney  4바이트 32비트    "
   [oracle]
        number          10바이트   80비트 부호있음  , 기본이 10바이트
        number(n)      바이트 지정, n은 바이트 숫자 
        number(p, s)  실수표현   p: 전체자리수, s는 소수점 부분의 길이
 
   [mysql]  : 가장 많음 .ㅠ.ㅠ
        tinyint            1바이트   정수
        smallint          2바이트   정수
        mediumint       3바이트   정수
        int, integer      4바이트   정수
        bigint             8바이트   정수
        float               4바이트   부동소수점 표현
        double           8바이트   부동소수점 표현
        real                double과 같음
        decimal(p,s)  실수표현   p: 전체자리수, s는 소수점 부분의 길이
        numeric(p,s)   decimal과 같음
        bit(n)             n비트 정수 표현
       
2. 자료형의 선언
   
    테이블을 만들 때 이 자료형에 대해서 선언 하는 방법을 알아보자. 대부분 다 비슷하다.
   다만 몇가지  () 안에 옵션에 있는 것만 알아보면 될 것이다.
 
    [mssql2000]
        create table test (
             aaa bigint,
             bbb decimal(10, 2) not null
        )
 
    [oracle]
        create table test (
             aaa number(8),
             bbb number,
             ccc number(10, 2)
        )
 
    [mysql]
         create table test (
              aaa bigint,
              bbb double,
              ccc decimal(10, 2)
         )
 
    위와 같은 형태로 테이블을 생성 할 때 우리는 자료형을 지정할 수 있다.
 
3. 숫자형에 대한 몇가지 옵션
 
   [mssql2000]
       mssql에서는 정수형에 대해서 identity 라는 옵션을 걸어 줄 수 있다.
       이것은 그 필드에 숫자를 자동으로 채우줌으로써.. 유일안 키값을 생성 할 수 있다.
 
   [oracle]
       오라클에서는 따로 옵션은 없다.
 
   [mysql]
       mysql에서는 auto_increment 라는 옵션으로 identity와 같은 역할을 하게끔 할 수 있다.
       mysql은 unsigned와 zerofill을 가지고 있다. unsigned는 부호없는 숫자를 만들어서 좀 더 넓은 범위의 숫자를 사용
       할 수 있게 하고 zerofill은 현재 필드의 값을 0으로 모두 채우는 옵션이다.
 
   다만 주의 해야 할 것은 mysql 에서는 auto_increment가 되면 그 필드는 기본키가 되어야 하지만 mssql에서는 identity가 되어도
   기본키가 되지 않아도 된다. 다만 대부분 기본적으로 그 필드를 기본키로 걸 뿐이다.
 
4. 이기종 디비간의 호환성
   대부분의 디비는 정수형에 대해서 가지고 있다. 하지만 몇가지 충족되지 않는 자료형을 가지고 있기 때문에
   숫자형에 대해서는
 
   mssql : int, decimal(p,s)
   oracle : number, number(p,s)
   mysql : int, decimal(p,s)
 
 
출처 :
1. 문자열 형의 종류
 
    [mssql]
        char(n)         최대 8000자, 유니코드 아님, 고정길이      
        varchar(n)     최대 8000자, 유니코드 아님, 가변길이      
        text               최대 2^31-1 자, 유니코드 아님, 가변길이       (32비트)
 
        nchar(n)         최대 4000자, 유니코드 아님, 고정길이      
        nvarchar(n)     최대 4000자, 유니코드 아님, 가변길이      
        ntext               최대 2^30-1 자, 유니코드 아님, 가변길이       (32비트)
 
        binary           최대 8000바이트, 고정길이, 이진문자열(비트 스트링)
        varbinary       최대 8000바이트, 고정길이, 이진문자열(비트 스트링)
        image           최대 2^31-1 바이트, 고정길이, 이진문자열(비트 스트링)
 
    [oracle]
       char(n)          최대 2000 바이트
       varchar2(n)      최대 4000 바이트
 
       nchar(n)         최대 2000 바이트
       nvarchar2(n)      최대 4000 바이트
 
       CLOB            1바이트 문자열, 최대 4GB
       BLOB            이진 문자열, 최대 4GB
       BFILE            바이너리 데이타 외부화일로 저장, 최대 4GB
 
       LONG           가변길이 문자열, 최대 2GB
       LONG RAW    가변길이 이진 데이타, 최대 2GB
       RAW             가변길이 이진 데이타, 최대 2000 바이트
 
    [mysql]
       char(n)          최대 255 바이트 까지
       varchar(n)      최대 255 바이트 까지
 
       binary(n)        이진데이타, 바이트 지정한만큼, 고정길이
       varbinary(n)    이진데이타, 바이트 지정한만큼, 가변길이
 
       tinyblob           이진데이타, 최대 255 바이트  (2^8)
       blob                이진데이타, 최대 65535 바이트  (2^16)
       mediumblob      이진데이타, 최대 2^24 바이트
       longblob          이진데이타, 최대 2^32 바이트,
 
       tinytext           1바이트 문자열, 최대 255 자  (2^8)
       text                1바이트 문자열, 최대 65535 자(2^16)
       mediumtext      1바이트 문자열, 최대 2^24 자
       longtext          1바이트 문자열, 최대 2^32 자
 
손수 다 적을려니 너무 빡시네. .ㅋㅋ 암튼 대충 이런 문자열 타입들이 있네요...
 
전체적으로 크게 보면
 
    일반 문자열 데이타, 유니코드 문자열 데이타, 대용량 이진 데이타, 대용량 문자열 데이타 등 으로 나눌 수 있는데요.
    실제로 코딩 할 때 쓰는건 몇 개 없네요..ㅋㅋ 암튼 이것으로 다들 잘 해봅시다.
 
2. 자료형의 선언
 
    [mssql]
     create table test (
        aaaa varchar(200)
     )
 
    [oracle]
     create table test (
        aaaa varchar2(300)
     )
 
    [mysql]
     create table test (
        aaaa varchar(400)
     )
 
    기본적으로 바이트 선언하는 형태는 너무나도 간단합니다. 특정 자료형과 길이만 적어 주기 때문에.. ^^
 
3.  이기종간의 디비 호환성
 
    일반적으로 문자열은 varchar 를 많이 씁니다.
    물론 속도 줄인다고 char 쓰시는 분들도 계시는데 이건 디비에 따라서 일정길이 이상이 되면 내부적으로 varchar로 돌아가기 때문에
    그냥 varchar 쓰시는게 더 좋을 듯 합니다.. 그리고 속도 차이도 거의 없구여..
 
    대부분의 디비에 들어가는 형태는 가변길이 문자열입니다. 그래서
   
    varchar, nvarchar, 오라클은 varchar2 등을 쓰게 됩니다.
 
    다만 조금씩 차이 나는 부분이  대용량의 글을 적을 때가 문제인데요...
 
    mssql : text
    oracle : clob
    mysql : text 관련 타입
 
    등으로 보편화 될 수가 있겠습니다..
 
    그래서 varchar(varchar2) 나 text(clob) 등으로 문자열에 대한 데이타를 정의해주시면 되겠구여..
 
    가끔씩 이미지를 통째로 필드에 넣는 경우가 있습니다. 그럴경우는 이진데이타 자료형으로 해서 넣어줄 수 있는데요..
 
    mssql : varbinary
    oracle : blob, bfile
    mysql : blob 관련 타입
 
    등을 많이 사용하게 됩니다.
 
    하지만 아직까지는 그런 대용량 이미지 데이타 들은 디비에 넣지 않고 그냥 파일로 복사하고 링크만 저장하는 방식이 선호가
    되고 있습니다. 나중에 디비 성능이 좀더 좋아지고 하드웨어, 네트워크 성능이 더 좋아지면 그때는 데이타베이스에서 모든 것을
    처리하는 때가 오겠죠? ^^ 그 때를 기대해봅니다.

신고

댓글을 달아 주세요

mysql datatype 목록

Posted by 비회원 프로그래밍/DB : 2010.02.17 09:45

문자형

 DataType

 최대길이

 저장크기

 CHAR  255  char(M) / M 바이트
 VARCHAR  255  M+1 바이트
 TINYBLOB, TINYTEXT  255  M+1 바이트
 BLOB, TEXT  65535  M+2 바이트
 MEDIUMBLOB, MEDIUMTEXT  16777215  M+3 바이트
 LONGBLOB, LONGTEXT  4294967295  M+4 바이트 (대략 4기가)
 ENUM  1 or 2 바이트  

숫자형 (정수 or 실수)

 DataType

 표시범위 (unsigned)

 저장크기 (byte)

 TINYINT

 -128 ~ 127 (0 ~ 255)

 1
 SMALLINT  -32768 ~ 32767 (0 ~ 65535)  2
 MEDIUMINT

 -8388608 ~ 8388607

 (0 ~ 16777215)

 3
 INT

 -2147483648 ~ 2147483647

 (0 ~ 4294967295)

 4
 INTEGER  -2147483648 ~ 2147483647

 (0 ~ 4294967295)

 4
 BIGINT  -9223372036854775808 ~ 9223372036854775807  8
 FLOAT

 -3.402823466E+38 ~

-1.175494351E-38, 0,

 1.175494351E-38 ~ 3.402823466E+38

 8
 DOUBLE

 -1.79769313486231517E+308 ~ -2.2250738585072014E-308, 0,

 2.2250738585072014E-308 ~

1.79769313486231517E+308

 8

 

날짜시간형

 DataType

 표시범위 (표시형식)

 저장크기 (byte)

 DATE

 1000-01-01 ~ 9999-12-31

(YYYY-MM-DD)

 3
 DATETIME

 1000-01-01 00:00:00 ~ 9999-12-31 23:59:59

(YYYY-MM-DD HH:MM:SS)

 8
 TIMESTAMP

 1970-01-01 00:00:00 ~ 2037-12-31 23:59:59

(YYYYMMDDHHMMSS)

 4
 TIME

 -839:59:59 ~ 838:59:59

(HH:MM:SS)

 3
 YEAR

 1901 ~ 2155

(YYYY)

 1

 

신고

댓글을 달아 주세요

[MS SQL] ldf 파일 사이즈 줄이기 또는 삭제하기
윈도우/데이터베이스 2009년 07월 25일 06시 53분 
어느 순간엔가 신경쓰지 않던 문제가 일어났다.
단순하게 DB만 생성해서 사용하면 되지 하는 안이한 생각에 로그파일이 계속 쌓이면서
속도와 디스크공간에 압박을 가하고 있다.

그래서 ldf 로그 파일을 줄이거나 삭제하는 방법을 고려했다.
일단 방법은 아래와 같이 했다. 

+  testdb를 지정한다.(물론 다들 알고 계시겠죠.)
   줄이길 원하는 데이터베이스를 사용하겠다고 지정하는 겁니다.
use testdb

+ 로그파일의 정보를 확인합니다.

dbcc loginfo


+ 현재 지정된 디비가 사용하는 mdf 및 ldf파일의 경로, 이름 및 크기를 확인합니다.

exec sp_helpfile


+ 디비의 로그를 백업해 줍니다.

backup Log testdb to disk='f:\mssql\dbbackup\temp\testdb.bak'



+ 로그파일을 최소의 단위로 축소합니다.

backup log testdb with truncate_only


+ 로그파일을 삭제합니다.

backup log testdb with no_log


+ 로그파일을 10메가로 다시 생성합니다.

dbcc shrinkfile (testdb_log, 10)


+ mdf와 ldf파일 확인
exec sp_helpfile


+ 로그파일의 최대크기를 지정(물론 안해도 상관없습니다.)

alter database testdb

    modify file ( name = testdb_log, maxsize = 100 mb )


이상입니다.위에 축소나 삭제에 대한 사항은 원하시는 것을 선택해서 작업하시면 됩니다.

신고

댓글을 달아 주세요

 «이전 1  다음»