/*스키마 확인
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표현식으로 나옴