'전체 글'에 해당되는 글 256건

  1. 2013.09.27 숫자형 함수
  2. 2013.09.26 문자형 함수
  3. 2013.09.26 부정 연산자
  4. 2013.09.26 논리 연산자

 

과목 II SQL 기본 및 활용

제1장 SQL 기본

제6절 함수 (FUNCTION)

3. 숫자형 함수

 

 

[예제] 소수점 이하 한 자리까지 반올림하여 출력한다.

 SELECT ENAME, ROUND(SAL/12,1)

 FROM EMP;

책에서 내림을 출력하기 위해 TRUNC 함수를 사용했지만 SQL Server에서 TRUNC 함수는 제공되지 않기 때문에 반올림만 출력하였습니다.

 

 

[실행결과]

(14개 행이 영향을 받음)

 

 


 

 

[예제] 정수 기준으로 반올림 및 올림하여 출력한다.

SELECT ENAME, ROUND(SAL/12,0), CEILING(SAL/12)
 FROM EMP; 

ROUND(SAL/12) 까지만 쓰면 책에는 Default 는 인수 0이라고 되어있지만 SQL Server 에서는 인수를 입력해야 합니다.

 

 

[실행결과]

(14개 행이 영향을 받음)

 

'SQL 전문가 가이드' 카테고리의 다른 글

변환형 함수  (0) 2013.09.27
날짜형 함수  (0) 2013.09.27
문자형 함수  (0) 2013.09.26
부정 연산자  (0) 2013.09.26
논리 연산자  (0) 2013.09.26
Posted by G4.
,

 

과목 II SQL 기본 및 활용

제1장 SQL 기본

제6절 함수 (FUNCTION)

2. 문자형 함수

 

 

[예제] ‘SQL Expert’라는 문자형 데이터의 길이를 구하는 문자형 함수를 사용한다.

 SELECT LEN('SQL Expert') AS ColumnLength;

 

 

[실행결과]

(1개 행이 영향을 받음)

 

 


 

 

[예제] 선수 테이블에서 CONCAT 문자형 함수를 이용해 축구선수란 문구를 추가한다. (SQL Server에서 Oracle의 CONCAT 문자형 함수와 같은 결과를 얻으려면 아래와 같이 수행하면 된다.)

 SELECT PLAYER_NAME + ' 축구선수' AS 선수명

 FROM PLAYER;

 

 

[실행결과]

(480개 행이 영향을 받음)

 

 


 

[예제] 경기장의 지역번호와 전화번호를 합친 번호의 길이를 구하시오. 연결연산자의 결과가 LENGTH(SQL Server는 LEN 사용) 함수의 인수가 된다.

 SELECT STADIUM_ID, DDD+TEL as TEL, LEN(DDD+TEL) as T_LEN
 FROM STADIUM;

 

 

[실행결과]

(20개 행이 영향을 받음)

 

'SQL 전문가 가이드' 카테고리의 다른 글

날짜형 함수  (0) 2013.09.27
숫자형 함수  (0) 2013.09.27
부정 연산자  (0) 2013.09.26
논리 연산자  (0) 2013.09.26
SQL 연산자  (0) 2013.09.26
Posted by G4.
,

 

과목 II SQL 기본 및 활용

제1장 SQL 기본

제5절 WHERE 절

6. 부정 연산자

 

 

[예제] 삼성블루윙즈 소속인 선수들 중에서 포지션이 미드필더(MF:Midfielder)가 아니고, 키가 175 센티미터 이상 185 센티미터 이하가 아닌 선수들의 자료를 찾아본다.

 SELECT PLAYER_NAME 선수이름, POSITION 포지션, BACK_NO 백넘버, HEIGHT 키
 FROM PLAYER
 WHERE TEAM_ID = 'K02'
 AND NOT POSITION = 'MF'
 AND NOT HEIGHT BETWEEN 175 AND 185;

 

 

[실행결과]

(12개 행이 영향을 받음)

 

 


 

 

[준비]

 UPDATE PLAYER
 SET NATION = NULL
 WHERE NATION = '';

처음 테이블 생성시에 NATION 칼럼 값을 NULL이 아닌 공백으로 입력했었습니다.

따라서 NATION 칼럼의 공백 값들을 NULL 값으로 수정 합니다.

 

 

[예제] 국적(NATION) 칼럼의 경우 내국인들은 별도 데이터를 입력하지 않았다. 국적 칼럼이 NULL이 아닌 선수와 국적을 표시하라.

 SELECT PLAYER_NAME 선수이름, NATION 국적
 FROM PLAYER
 WHERE NATION IS NOT NULL;

 

 

[실행결과]

(27개 행이 영향을 받음)

 

'SQL 전문가 가이드' 카테고리의 다른 글

숫자형 함수  (0) 2013.09.27
문자형 함수  (0) 2013.09.26
논리 연산자  (0) 2013.09.26
SQL 연산자  (0) 2013.09.26
비교 연산자  (0) 2013.09.24
Posted by G4.
,

 

과목 II SQL 기본 및 활용

제1장 SQL 기본

제5절 WHERE 절

5. 논리 연산자

 

 

[예제] 예를 들어 “소속이 삼성블루윙즈”인 조건과 “키가 170 센티미터 이상”인 조건을 연결해 보면 “소속이 삼성블루윙즈이고 키가 170 센티미터 이상인 조건을 가진 선수들의 자료를 조회”하는 것이 되는 것이다. 

 SELECT PLAYER_NAME 선수이름, POSITION 포지션, BACK_NO 백넘버, HEIGHT 키
 FROM PLAYER
 WHERE TEAM_ID = 'K02' AND HEIGHT >= 170;

 

 

[실행결과]

(45개 행이 영향을 받음)

 

 


 

 

 

[예제] “소속이 삼성블루윙즈이거나 전남드래곤즈”인 조건을 SQL 비교 연산자로, “포지션이 미드필더(MF)”인 조건을 비교 연산자로 비교한 결과를 논리 연산자로 묶어서 처리한다.

 SELECT PLAYER_NAME 선수이름, POSITION 포지션, BACK_NO 백넘버, HEIGHT 키

 FROM PLAYER

 WHERE TEAM_ID IN ('K02','K07')

 AND POSITION = 'MF';

 

 

[실행결과]

(40개 행이 영향을 받음)

 

 


 

 

 

[예제] 요구 사항을 하나씩 하나씩 AND, OR 같은 논리 연산자를 사용하여 DBMS가 이해할 수 있는 SQL 형식으로 질문을 변경한다. 요구 사항을 순서대로 논리적인 조건을 적용한다.

------------------------------------------------------------------

소속팀이 삼성블루윙즈이거나 전남드래곤즈에 소속된 선수들이어야 하고,

포지션이 미드필더(MF:Midfielder)이어야 한다.

키는 170 센티미터 이상이고 180 이하여야 한다.

1) 소속팀이 삼성블루윙즈 OR 소속팀이 전남드래곤즈

2) AND 포지션이 미드필더

3) AND 키는 170 센티미터 이상

4) AND 키는 180 센티미터 이하

------------------------------------------------------------------ 

 SELECT PLAYER_NAME 선수이름, POSITION 포지션, BACK_NO 백넘버, HEIGHT 키
 FROM PLAYER
 WHERE TEAM_ID = 'K02' OR TEAM_ID = 'K07'
 AND POSITION = 'MF'
 AND HEIGHT >= 170
 AND HEIGHT <= 180;

책에 설명대로 괄호가 누락됨으로서 OR 논리 연산자보다 AND 논리 연산자를 먼저 실행하기 때문에 잘못된 결과를 나타낸 것입니다.

 

 

[실행결과]

(66개 행이 영향을 받음)

 

 


 

 

 

 

[예제] 잘못된 결과를 보여 준 SQL 문장을 괄호를 사용하여 다시 적용한다.

 SELECT PLAYER_NAME 선수이름, POSITION 포지션, BACK_NO 백넘버, HEIGHT 키
 FROM PLAYER
 WHERE (TEAM_ID = 'K02' OR TEAM_ID = 'K07')
 AND POSITION = 'MF'
 AND HEIGHT >= 170
 AND HEIGHT <= 180;

 

 

[실행결과]

(33개 행이 영향을 받음)

 

 


 

 

 

[예제] IN (list)와 BETWEEN a AND b 연산자를 활용하여 같은 결과를 출력하는 SQL 문장을 작성한다. 두개의 SQL 문장은 DBMS 내부적으로 같은 프로세스를 거쳐 수행되므로 당연히 실행 결과도 같다.

 SELECT PLAYER_NAME 선수이름, POSITION 포지션, BACK_NO 백넘버, HEIGHT 키
 FROM PLAYER
 WHERE TEAM_ID IN ('K02','K07')
 AND POSITION = 'MF'
 AND HEIGHT BETWEEN 170 AND 180;

 

 

[실행결과]

(33개 행이 영향을 받음)

 

'SQL 전문가 가이드' 카테고리의 다른 글

문자형 함수  (0) 2013.09.26
부정 연산자  (0) 2013.09.26
SQL 연산자  (0) 2013.09.26
비교 연산자  (0) 2013.09.24
SAVEPOINT  (0) 2013.09.24
Posted by G4.
,