예제노트

2008년 4월 17일 목요일 문제 및 답안 ms-sql

박은주 2008. 4. 21. 21:38

2008년 4월 17일 목요일 박은주

주안점 : 데이터형(type), 형변환/연산 함수, 문자 함수

# 본 문항들은 시험을 위한 것이 아닌 연습을 위한 것이므로 너무 부담 갖지 않으시기를 바랍니다. 풀이 후 필요 부분은 블로깅 하십시오. 기본 교재는 정원혁 교재이며 요약은 ppt 자료를 참조합니다.

기본전제) MS SQL 2000에 있는 pubs database를 이용하며 별다른 전제가 없을 경우 titles 테이블을 이용합니다.

문제1) 난이도(평이) (데이터형) (교과서 p.76)

보기 대한에 적절한 답안을 고르십시오.
보기) 왜 시스템 변수는 시스템 함수라고 불리는가? (  1  )  실제답:1

1) 변수지만 함수의 기능을 갖고 있기 때문이다.
2) 자료형을 포함하기 때문이다.
3) “( )”가 없기 때문이다.
4) 에러 메시지를 포함하기 때문이다.

문제2) 난이도(평이) (데이터형) (p.77-)

문자 데이터형 중에서 nchar, char 그리고 nvarchar, varchar가 서로 2배의 범위 제한이 있는 이유는 (   유니   )코드가 일반 (  문자 아스키?  )코드에 비해 단위 길이가 (  2  ) 배 차이가 나기 때문이다.
실제답: 유니코드/아스키코드/2배

문제3) 난이도(평이) (데이터형) (p.77-)

게시판에 해당되는 table을 제작한다고 가정하였을 때, varchar, nvarchar 와 같은 자료형이 HTML의 텍스트 필드(text field)에 해당되는 자료형이라면 게시판의 장문의 글을 기입할 수 있는 HTML의 textarea는 (nchar), (nvarchar ) 자료형에 해당된다.


실제답:text, ntext
문제4) 난이도(평이) (데이터형) (P.77-)

INT 형의 범위가 -231 ~ 231-1 와 같이 뒷부분의 “-1”이 포함되는 것은 두 범위의 수 사이에 (+) 이 포함되어 있기 때문이다.
답:0

문제5) 난이도(평이) (데이터형) (p.79-81)

Varchar, nvarchar와 같이 var-가 붙는 자료형은 길이가 고정되지 않는 ( 가변 ) 길이
라는 의미이다.

답:가변


문제6) 난이도(평이) (데이터형) (p.82-83)

보기)  ‘tCustomVar’ 라는 nchar(10) 데이터 타입을 만들라

Sp_addtype tCustomVar, nchar(10)
실제답: Sp_addtype tCustomVar, ‘nchar(10)’  --‘’안넣어도 실행됨 맞는거임

문제7) 난이도(평이) (데이터형) (p.83-)

Titles 테이블에서 제목을 5번째 글자부터 20자 정도만 나올 수 있도록 조치하되, “줄어든 제목” 이라는 가상 컬럼으로 title_id와 더불어 화면에 인쇄될 수 있도록 조치한다.

select title_id
, substring(title, 5, 20) as '줄어든제목'
from titles
실제답: select title_id, substring(title, 5, 20) as '줄어든제목' from titles


문제8) 난이도(중)  (데이터형, 형변환/연산 함수) (p.84-)

원주율을 소수 부분이 한자리만 생기도록 반올림하여 절대값을 출력한 결과를 LOG 값으로 반환한 후 가상 컬럼을 “원주율”이라고 하여 화면에 출력합니다.

select log(ABS(round(3.14, 0))) as '원주율'
실제답: select log(abs(round(PI(),0))) as '원주율';

문제9) 난이도(평이) (데이터형, 날짜 함수) (p.85-106)

다음의 빈 공란을 채우십시오.

금일의 날짜를 구하는 간단한 구문은 select  ( getdate() )이며,
출력하고자 하는 날짜의 형식을 “일/월/년”으로 설정하고자 한다면
Set dateformat  (  dmy    ); 이라고 하면 된다.
또한 날을 구하는 함수인 day(date) 함수는 ( DATEPART )와 같은 효과를 나타낸다.

답:
Select getdate();
Set dateformat dmy;
Datepart(day,date);


문제10) 난이도(평이) (날짜 함수) (p.91)

본 과정 종료일까지 며칠이 남았는지 구하는 구문을 작성하십시오. (토/일요일/공휴일 포함)
select datediff(dd, getdate(), '2008.9.22')

답:select datediff(dd, getdate(), '2008.9.22')
select datediff(dd, getdate(), '2008-9-22')

 

문제11) 난이도(중) (날짜 함수) (p.88-)

날짜 함수 day(), month(), 그리고 형변환 함수 convert()를 사용하여 금일의 날짜(4월17일)와 요일을 구하여 “비가 내린다. 그래도 열심히 공부하자” 와 결합한 후 “금일의 좌우명”이라는 컬럼 형식으로 화면에 출력합니다.
단, 문장 전후에 공백을 삽입하고 day(), month() 함수의 매개변수로는 날짜를 직접 입력하지 말고 날짜 함수를 이용한다.
(아래와 같이 출력이 나올 수 있도록 합니다.)

출력) 4월17일 목요일 비가 내린다. 그대로 열심히 공부하자.

select datename(mm, getdate())
+'월'+datename(dd, getdate())
+'일 '+datename(dw, getdate())
+' 비가 내린다. 그대로 열심히 공부하자.'
 as '금일의 좌우명'

실제답:
select convert(varchar, month(getdate()))
+ '월'
+convert(varchar, day(getdate()))
+ '일'
+ ' '
+ datename(dw, getdate())
+' 비가 내린다. 그래도 열심히 공부하자.' as '금일의 좌우명'

문제12) 난이도(고) (날짜 함수, 문자 함수) (p.86-)

위의 결과에서 ‘목요일 비가’ 만을 추출하여 화면에 출력하도록 조치합니다.

select substring('4월 17일 목요일 비가 내린다. 그대로 열심히 공부하자.',7,7)

답:select substring('4월 17일 목요일 비가 내린다. 그대로 열심히 공부하자.',7,7)
문제13) 난이도(평이) (문자 함수) (p.86-88)

“나는 반드시 취직 할 수 있다”를 화면에 10번을 출력합니다.
select replicate('나는 반드시 취직 할 수 있다',10)
답:select replicate('나는 반드시 취직 할 수 있다',10)

 

 

문제14) 난이도(중) (날짜 함수, 문자 함수) (p.86-)

Titles 테이블에서 id 가 BU2075 인 도서의 책 제목을 ‘나는 반드시 취직 할 수 있다’로 바꾸는 구문을 문자 함수를 이용하여 작성하여 바로 앞 컬럼에 “베스트셀러:” 라는 열을 삽입하여 출력하십시오.

select '베스트셀러:',replace(title,title,'나는 반드시 취직할수 있다')
from titles
where title_id ='BU2075';
[이 게시물은 486i님에 의해 2008-04-21 15:10:08 MS-SQL에서 이동 됨]