본문 바로가기

컴퓨터/데이터베이스

2008년 8월 21일 데이터베이스

/*스키마 확인
2000:서버/db/사용자/개체 -> 2005:서버/db/스키마/개체
서버접근 - 로그인   >   db접근 - 사용자/사용권한(permission) => 구별하자
로그인,사용자,사용권한에 대해서 역할을 부여할 수 있다*/
use pubs
exec sp_helpdb
exec sp_tables

--복사 백업시
use master
go
backup database pubs to disk='c:\pubs.bak'

--데이타 삭제후 복우너하여 확인할 것
use pubs
select * from sales
delete from sales
use master
go
restore database pubs from disk='c:\pubs.bak' with replace

* language syntax
1. 변수(선언, 범위, 할당)
2. 제어문(조건, 반복)
3. 함수, 프로시져 호출

select sum(final) from enrol < = 이런게 함수

ex) select sum(final) from enrol, exec sp_help

*데이타타입
1. 숫자: 정수 - bigint, int, smallint, tinyint(+만), bit
    실수 - float, real, numeric(p,s), decimal(p,s)
2. 문자: char(100), varchar(100,10), nchar, nvarchar
   ex) char(10) - 한글5, 영문10, nchar(10) - 어떤문자나 10
 
3. 날짜: datetime(millisecond까지표현), smalldatetime(분까지표현)
4. 기타: blob

*시스템함수
1. 숫자함수: round(대상,  반올림위치, 옵션)
    floor(대상)-절사, ceiling(대상)-올림
2. 문자함수: substring(대상,대상위치,길이),len,ltrim,rtrim
3. 날짜함수: getdate()-시스템날짜, year(), month(), day()
4. 형변환함수: cast(), convert()
     문자
    숫자  날짜간 명시적인 형변환을 할 수 있다.

select round(29.1,0), round(29.9,0), round(29.953,1),round(29.953,-1)
           소수 첫째         소수 첫째         소수 둘째        정수첫째

select floor(29.1), floor(29.9) - 내림
select ceiling(29.1), ceiling(29.9) - 올림하는데 정수로 표현

select substring('한글abcd데이타',1,3), len('한글abcd데이타') - 글자를 짜른다 1위치에서 3글자
select len('aaa'+ltrim('    한글abcd데이타')), len('bbb'+rtrim('한글abcd데이타 '))

select getdate()
select year(getdate())
select datepart(month, getdate())
select datepart(hour, getdate())
select datepart(minute, getdate())
select datepart(second, getdate())
select datepart(weekday, getdate()), dateadd(mm,6,getdate()) - mm 일 경우 뒤의 6을 개월로 여기고
yy일 경우 년 dd 경우 일로 여김 ,,, weekday는 요일

* 암시적 형변환
select 1+'5' -> 숫자
select 10.0/4 -> 1. 식의 타입대로 (타입이 동일할때)
      2. 실수+정수=실수

select cast(10.0/4 as int)

select getdate()+5 -> 날짜+숫자 =일(날짜)

select getdate()+'2008/08/01' -> 날짜+문자=날짜
select '2008/08/01'+5
select convert(char(10),getdate())+'aaa'

select dateformat 'ymd'

select convert(char(20),getdate(),8)+'aaa'
실행결과 23:36:19       aaa
나오는 시간과 aaa사이의 공백은 char(20) 때문에 일어나는 거다
8로 했을 경우 시간이 저렇게 24표현식으로 나옴