728x90
반응형

테이블

STUDENT

 

SUBJECT

 

ENROL

 

EMP

 

DEPT

 

SALGRADE

 

 

 

1. 김인중 학생이 듣는 수업의 과목명과 교수 이름을 출력

▶ 김인중 학생이 듣는 수업을 찾는다.

SELECT STU_DEPT, STU_GRADE
FROM STUDENT
WHERE STU_NAME = '김인중';

  • 김인중은 과목 점수가 1인 컴퓨터 정보과 수업을 듣는다.

 

▶ 코드

SELECT SUB.SUB_DEPT AS 과목명, SUB.SUB_PROF AS 교수
FROM SUBJECT SUB
INNER JOIN (
    SELECT STU_DEPT, STU_GRADE
    FROM STUDENT
    WHERE STU_NAME = '김인중'
)STU ON SUB.SUB_DEPT = STU.STU_DEPT
    AND SUB.SUB_GRADE = STU.STU_GRADE
;

 

 

 

 

2. 컴퓨터개론 수업을 듣는 학생의 학번, 이름 출력

▶ 컴퓨터 개론의 SUB_NO을 받아온다. SUB_NO의 값이 기본키이기 때문이다. 

SELECT SUB_NO
FROM SUBJECT
WHERE SUB_NAME = '컴퓨터개론';

  • SUB_NO이 101인 학생들은 컴퓨터 개론 수업을 듣는다.

 

▶ 코드

SELECT STU.STU_NO AS 학번, STU.STU_NAME AS 이름
FROM ENROL E
INNER JOIN (
    SELECT SUB_NO
    FROM SUBJECT
    WHERE SUB_NAME = '컴퓨터개론'
) SUB ON E.SUB_NO = SUB.SUB_NO
INNER JOIN STUDENT STU ON E.STU_NO = STU.STU_NO;

 





 

3. 기계공작법, 기초전자실험 수업을 듣는 학생의 학번, 이름, 수업명 출력

▶ 기계공작법, 기초전자실험 수업을 듣는 넘버를 받아온다.

SELECT SUB_NO
FROM SUBJECT
WHERE SUB_NAME IN('기계공작법','기초전자실험');

  • 기계공작법, 기초전자실험 수업을 듣는 학생의 NO은 102,103이다.

 

▶ 코드

SELECT STU.STU_NO AS 학번, STU.STU_NAME AS 이름, SUB.SUB_NAME AS 수업명
FROM ENROL E
INNER JOIN (
    SELECT SUB_NO, SUB_NAME
    FROM SUBJECT
    WHERE SUB_NAME IN('기계공작법','기초전자실험')
) SUB ON E.SUB_NO = SUB.SUB_NO
INNER JOIN STUDENT STU ON E.STU_NO = STU.STU_NO;

 

 

 

 

4. 여자이면서 구봉규 교수의 수업을 듣는 학생의 학번, 이름, 학과, 수업명, 과목 점수 출력

▶구봉규 교수가 수업하는 과목의 넘버를 받아온다.

SELECT SUB_NO
FROM SUBJECT
WHERE SUB_PROF ='구봉규';

  • 구봉규 교수가 수업하는 과목의 넘버는 107이다.

 

 

▶ 과목의 넘버를 이용해 구봉규 교수의 수업을 듣는 학생을 구한다.

SELECT STU.STU_NO, STU.STU_NAME, STU.STU_DEPT, SUB.SUB_NAME, STU.STU_GRADE
FROM ENROL E
INNER JOIN(
    SELECT SUB_NO, SUB_NAME
    FROM SUBJECT
    WHERE SUB_PROF ='구봉규'
) SUB ON E.SUB_NO = SUB.SUB_NO 
INNER JOIN STUDENT STU ON E.STU_NO =STU.STU_NO
    AND STU.STU_GENDER = 'F'
;

 

 


▶ 이너 조인 두 번 쓰는 방법

SELECT S.STU_NO, STU_NAME, STU_DEPT, SUB_NAME
FROM STUDENT S
INNER JOIN ENROL E ON S.STU_NO = E.STU_NO
INNER JOIN SUBJECT SUB ON SUB.SUB_NO = E.SUB_NO
WHERE S.STU_GENDER = 'F' AND SUB.SUB_PROF = '구봉규';

 

 

 

 

 

5. 김인중의 평균 점수보다 낮은 점수를 받은 학생들의 이름, 과목명, 점수 출력

▶ 김인중의 학번을 구한다.

SELECT STU_NO
FROM STUDENT
WHERE STU_NAME='김인중';

 


▶ 학번 20151062의 평균 점수

SELECT AVG(ENR_GRADE)
FROM STUDENT S
INNER JOIN ENROL E ON S.STU_NO = E.STU_NO
WHERE STU_NAME = '김인중';

 


▶ 김인중의 평균 점수보다 낮은 점수를 받은 학생들을 구하는 코드

SELECT *
FROM STUDENT S
INNER JOIN ENROL E ON S.STU_NO = E.STU_NO
WHERE ENR_GRADE < (
    SELECT AVG(ENR_GRADE)
    FROM STUDENT S
    INNER JOIN ENROL E ON S.STU_NO = E.STU_NO
    WHERE STU_NAME = '김인중'
);

 

 

 

 

6. 기계과의 최고 점수보다 높은 점수를 받은 학생 출력

1) 기계과에서 가장 높은 점수 출력

SELECT MAX(E.ENR_GRADE)
FROM SUBJECT SUB
INNER JOIN ENROL E ON SUB.SUB_NO = E.SUB_NO
WHERE SUB_DEPT = '기계';

 

 

2) 학생들과 점수 목록

SELECT *
FROM STUDENT S
INNER JOIN ENROL E ON S.STU_NO = E.STU_NO;

 

 

3) 기계과의 최고점수

SELECT MAX(ENR_GRADE)
FROM ENROL E
INNER JOIN STUDENT S ON S.STU_NO = E.STU_NO
WHERE S.STU_DEPT = '기계';

 



4) 기계과의 최고 점수보다 높은 점수를 받은 학생 출력

SELECT S.STU_NO, S.STU_NAME, E.ENR_GRADE
FROM STUDENT S
INNER JOIN ENROL E ON S.STU_NO = E.STU_NO
WHERE E.ENR_GRADE > (
    SELECT MAX(ENR_GRADE)
    FROM ENROL E
    INNER JOIN STUDENT S ON S.STU_NO = E.STU_NO
    WHERE S.STU_DEPT = '기계'
);

 

 

 

 

 

7. 2개 이상의 과목을 들은 학생들의 목록 출력

▶ 2개 이상의 과목을 듣는 학생의 학번

SELECT STU_NO, COUNT(STU_NO) AS CNT
FROM ENROL
GROUP BY STU_NO
HAVING COUNT(*) > 1;

 

▶ 해당 학번의 학생 목록 출력

SELECT *
FROM STUDENT S
INNER JOIN (
    SELECT STU_NO
    FROM ENROL
    GROUP BY STU_NO
    HAVING COUNT(*) > 1
) E ON S.STU_NO = E.STU_NO;

 

 

▶ INNER JOIN이 아닌 WHERE 절으로 표현이 가능하다.

SELECT *
FROM STUDENT S
WHERE STU_NO IN(
    SELECT STU_NO
    FROM ENROL
    GROUP BY STU_NO
    HAVING COUNT(*) > 1
);

 

 

▶ 코드-- HAVING 절을 사용하지 않고 CNT 값을 구할 수 있다.

SELECT *
FROM (
    SELECT STU_NO, COUNT(*) AS CNT
    FROM ENROL
    GROUP BY STU_NO
)
WHERE CNT > 1;

 

 

 

 

 

8. 전기전자과의 평균 점수보다 높은 점수를 받은 학생들의 목록 출력

▶ 전기전자과의 평균 점수

SELECT AVG(ENR_GRADE)
FROM ENROL E
INNER JOIN SUBJECT SUB ON E.SUB_NO = SUB.SUB_NO
WHERE SUB.SUB_DEPT = '전기전자';

 

▶ 전기전자과의 평균 점수보다 높은 점수를 받은 학생 출력

SELECT *
FROM STUDENT S
INNER JOIN ENROL E ON S.STU_NO = E.STU_NO
WHERE E.ENR_GRADE > (
    SELECT AVG(ENR_GRADE)
    FROM ENROL E
    INNER JOIN SUBJECT SUB ON E.SUB_NO = SUB.SUB_NO
    WHERE SUB.SUB_DEPT = '전기전자'
);

 

728x90
반응형

'HRD_훈련 > 실습' 카테고리의 다른 글

[SQL] 시간 함수 실습 (21일차)  (0) 2023.06.14
[SQL] JOIN 실습 2 (20일차)  (0) 2023.06.13
[SQL] SQL 함수 실습 (19일차)  (0) 2023.06.12
[SQL] 심화 문제 (19일차)  (0) 2023.06.12
[SQL] UPDATE 실습 (19일차)  (0) 2023.06.12
728x90
반응형

테이블

STUDENT

 

EMP

 

 

문제1. STU_NO을 보기와 같이 출력하시오.

 

▶ 코드

SELECT RPAD(SUBSTR(STU_NO, 1, 4), 10, '*') AS TEST
FROM STUDENT;
  • SUBSTR 함수를 이용하여 학번의 맨 앞 4자리를 구해오고, 나머지를 '*'으로 채워넣는다.

 

 

 

 

문제2. 주민번호를 아래와 같이 출력하시오.

▶ EX) 800000-1234567 =>800000-1*******

 

 코드

SELECT RPAD(SUBSTR('800000-1234567', 1, 8), 14,'*') AS TEST
FROM STUDENT;

 

 

 

문제3. 보기와 같이 출력하는 코드를 작성하시오.

 

▶ 코드

SELECT STU_NAME || ' 의 학과는  ' || STU_DEPT || '입니다.'
FROM STUDENT;

 

 

 

문제4. 보기와 같이 출력하는 코드를 작성하시오.

 

▶ 코드

SELECT STU_NAME || ' 학생은 ' || SUBSTR(STU_NO, 3, 2) || '학번 입니다.' AS TEST
FROM STUDENT;
  • SUBSTR을 이용하여 '~~@@~' 학번 @@를 받아왔다.

 

 



문제5. 가상 테이블 TEMP을 참고하여 주민번호에 따라 남자/여자를 출력하시오.

▶ 실습을 위해 만든 가상 테이블 TEMP

--실습을 위해 만든 가상 테이블 TEMP
WITH TEMP AS (
    SELECT '800000-1234567' AS JUMIN, '홍길동' AS NAME FROM DUAL UNION ALL
    SELECT '900000-2234567' AS JUMIN, '홍길순' AS NAME FROM DUAL UNION ALL
    SELECT '700000-1234567' AS JUMIN, '유재석' AS NAME FROM DUAL UNION ALL
    SELECT '800100-3234567' AS JUMIN, '강호동' AS NAME FROM DUAL UNION ALL
    SELECT '800200-4234567' AS JUMIN, '박미선' AS NAME FROM DUAL 
)

 

 

 주민번호가 1,3은 남자/2,4는 여자 출력

SELECT NAME, RPAD(SUBSTR('800000-1234567', 1, 8), 14,'*') AS JUMIN,
    DECODE(SUBSTR(JUMIN,8,1),
            1, '남자',
            3, '남자',
            2, '여자',
            4, '여자'
            '이상한 사람'
    )AS GENDER
FROM TEMP;

 

 

 

 

문제6. <STUDENT> 테이블에서 15학번인 사람을 출력하시오.

▶ SUBSTR() 을 이용해서 학번이 '2015'인 학생을 찾는다. 

SELECT SUBSTR(STU_NO, 3,2) AS 학번, STU_NAME
FROM STUDENT
WHERE SUBSTR(STU_NO, 1,4) = '2015';

 

▶ LIKE 를 이용해서 학번이 '2015'인 학생을 찾는다. 

SELECT SUBSTR(STU_NO, 3,2) AS 학번, STU_NAME
FROM STUDENT
WHERE STU_NO LIKE '2015%';

 

▶ 출력 결과

 

 

 

문제7. 키가 170이상이면서 180 미만인 사람 출력

▶ LIKE를 이용해서 170대인 사람을 찾는다.

SELECT *
FROM STUDENT
WHERE STU_HEIGHT LIKE '17_';

 

▶ 출력 결과

 

728x90
반응형

'HRD_훈련 > 실습' 카테고리의 다른 글

[SQL] JOIN 실습 2 (20일차)  (0) 2023.06.13
[SQL] JOIN 실습 1 (20일차)  (0) 2023.06.13
[SQL] 심화 문제 (19일차)  (0) 2023.06.12
[SQL] UPDATE 실습 (19일차)  (0) 2023.06.12
[SQL] DELETE 실습 (19일차)  (0) 2023.06.12
728x90
반응형

11) PADDING

  • PADDING : 빈 곳을 채워준다.
  • CHAR(9) - 20111234 <- 한 칸이 빈다. 이 빈 공간을 채워주는 것이 패딩이다.
  • 컬럼명, 자릿수를 표시한다.
  • 영어는 한 글자씩, 한글은 두 글자씩 자리를 차지한다.

 


▶ RPAD(속성, 자릿수, 채울 것) : 오른쪽에 채워준다.

예제1

SELECT RPAD(STU_DEPT, 15, '*')
FROM STUDENT;

 

 예제2

SELECT RPAD(JOB, 10, '*')
FROM EMP;

 


▶ LPAD(속성, 자릿수, 채울 것) : 왼쪽에 채워준다.

 예제

SELECT LPAD(JOB, 10, '*')
FROM EMP;

 

 

 


12) TRIM() : 앞뒤 공백을 제거한다.

SELECT TRIM('   TEST ')
FROM DUAL;

 

▶ RTRIM : 오른쪽 공백을 제거한다..

SELECT RTRIM('   TEST ')
FROM DUAL;

 

▶ LTRIM : 왼쪽 공백을 제거한다..

SELECT LTRIM('   TEST ')
FROM DUAL;

 

 

 


<EMP 테이블>을 이용한 실습

EMP 테이블

 


13) INSTR() : 문자를 찾는다.


 예제1

SELECT INSTR(JOB, 'N')
FROM EMP;

 

 예제2

SELECT INSTR(JOB, 'A', 1)
FROM EMP;

 

 예제3) 첫 번째부터 글자부터 찾되 두 번째 자리부터 A를 찾아라

SELECT INSTR(JOB, 'A', 1, 2)
FROM EMP;

 

 

 


14) INITCAP() : 첫 번째 글자를 대문자로 출력해 준다.

SELECT INITCAP(JOB)
FROM EMP;

 

 

 


14) UPPER() : 모든 문자를 대문자로 출력해 준다.

SELECT UPPER(JOB)
FROM EMP;

 

 

 


15) LOWER() : 모든 문자를 소문자로 출력해 준다.

SELECT LOWER(JOB)
FROM EMP;

 

 

 


16) SUBSTR(컬럼명, 시작위치,  몇 개를 출력할지) : 위치를 지정하여 출력해 준다.

예제1) 네 번째 자리부터 3글자 출력

SELECT SUBSTR(JOB, 4, 3)
FROM EMP;

 

 예제2) 네 번째 자리부터 끝까지 출력

SELECT SUBSTR(JOB, 4)
FROM EMP;

 

 

 


17) LENGTH() : 컬럼의 길이를 받아온다.

SELECT LENGTH (JOB)
FROM EMP;

 

 

 


18) REPLACE(컬럼명, 변경할 글자, 변경되는 글자) : 글자를 변경한다.

예제) A를 Z로 바꿔 출력

SELECT REPLACE (JOB, 'A', 'Z')
FROM EMP;

 

 

 


19) DECODE() :  조건문.JAVA의 IF와 비슷하다. 

STU_GENDER가 'M'이면 '남자', 나머지는 '여자'(else 와 같은 의미)

SELECT DECODE(STU_GENDER, 'M', '남자', '여자') AS TEST
FROM STUDENT;

 

 STU_GENDER가 'M'이면 '남자', 'F'이면 '여자'(else if 와 같은 의미), 나머지는 '없음' (else 와 같은 의미)

SELECT DECODE(STU_GENDER, 'M', '남자', 'F', '여자', '없음') AS TEST
FROM STUDENT;

 

 

 


20) NVL() : NULL값이 있으면 뒤에 작성한 값으로 대체한다.

 예제1) <EMP> 테이블에서 COMM값이 NULL이면 0으로 출력하라.

SELECT EMPNO, ENAME, JOB, SAL, NVL(COMM, 0) AS COMM
FROM EMP;

 

 

 예제2) <EMP> 테이블에서 COMM값이 NULL이면 99로 출력하라.

SELECT EMPNO, ENAME, JOB, SAL, NVL(DEPTNO, 99) AS DEPTNO
FROM EMP;

 

 

 


21) TO_DATE() :  컬럼의 값를 날짜 포맷으로 변환해준다.

SELECT COUNT(*)
FROM PROFESSOR
WHERE HIREDATE BETWEEN TO_DATE('95/01/01') AND TO_DATE('05/12/31');

 

 

 


22)  || : 앞 뒤 값을 이어 붙인다.

SELECT STU_NAME || STU_DEPT
FROM STUDENT;

 

 

 


22)  WHERE ROWNUM=1 : 최상위에 있는 값을 한 줄 가져온다

SELECT *
FROM STUDENT
WHERE ROWNUM=1;

 

 

 

 

 

실습 문제

 

[SQL] SQL 함수 실습 (19일차)

 

deliciouscode.tistory.com

 

 

 

 

 

 

 


2023년 6월 12일 월요일

<19일차 수업 후기>

그룹 함수만 몇 개 알고있었는데, 그 외에도 이렇게 많은 함수가 있다는 것을 깨달았다. 그 중, PADDING 함수와 DECODE 함수의 실습을 많이 했으니 이 두 개를 잘 외워야겠다.

728x90
반응형

'HRD_훈련 > ORACLE SQL' 카테고리의 다른 글

[SQL] 시간 함수 (21일차)  (0) 2023.06.14
[SQL] SELF, OUTER JOIN (21일차)  (0) 2023.06.14
[SQL] INNER JOIN (20일차)  (0) 2023.06.13
[SQL] SQL 함수(1/2) (19일차)  (0) 2023.06.12
[SQL] SQL 응용 (19일차)  (0) 2023.06.12
728x90
반응형

<오늘의 학습-데이터 관리>

1. 오라클 데이터베이스 설치

2. CREATE TABLE

3. INSERT

4. SELECT

5. UPDATE

6. DELETE

7. COMMIT과 ROLLBACK

8. 조건 연산자

9. 함수

 

 

9. 함수

 

1) MIN(속성명) : 최솟값을 구하는 함수

 

▶ 성별 가장 작은 학생의 키 값 구하기

SELECT MIN(STU_HEIGHT)
FROM STUDENT;

 

 

 


2) MAX(속성명) : 최댓값을 구하는 함수

 

▶ 성별 별 가장 키가 큰 값을 출력하시오.

SELECT STU_GENDER, MAX(STU_HEIGHT)
FROM STUDENT
GROUP BY STU_GENDER;

 

 


▶ 컴퓨터정보과 학생 중 가장 키가 큰 학생보다 큰 키를 가진 학생들을 구하시오.

▷ 컴퓨터정보과 학생 중 가장 키가 큰 학생 출력

SELECT MAX(STU_HEIGHT)
FROM STUDENT
WHERE STU_DEPT='컴퓨터정보';

 

▷ 컴퓨터정보과 학생 중 가장 키가 큰 학생보다 큰 키를 가진 학생 출력

SELECT STU_NAME, STU_HEIGHT
FROM STUDENT
WHERE STU_HEIGHT>(SELECT MAX(STU_HEIGHT)
                    FROM STUDENT
                    WHERE STU_DEPT='컴퓨터정보');

 

 


▶각 학과의 가장 키가 큰 학생의 학번, 이름, 키 출력

 각 학과에서 가장 키가 큰 학생의 키 출력

SELECT MAX(STU_HEIGHT)
FROM STUDENT
GROUP BY STU_DEPT;

 

 각 학과에서 가장 키가 큰 학생의 키를 가진 학생 출력

SELECT STU_NO, STU_NAME, STU_HEIGHT
FROM STUDENT
WHERE STU_HEIGHT IN
    (SELECT MAX(STU_HEIGHT)
    FROM STUDENT
    GROUP BY STU_DEPT
);

※ 받아온 키의 값이 어떤 학과의 키 값인지 알 수 없기 때문에 반환된 키의 값과 같은 값이 있다면 출력한다.

 

 

 WHERE 절과 두 번째 SELECT 절에서 2개의 값을 매치한다.

SELECT STU_NO, STU_NAME, STU_HEIGHT
FROM STUDENT
WHERE (STU_DEPT, STU_HEIGHT) IN
    (SELECT STU_DEPT, MAX(STU_HEIGHT)
    FROM STUDENT
    GROUP BY STU_DEPT
);
  • IN을 이용해 매치된 반환을 받는다. 한 쌍임을 알리기 위해 속성을 괄호 안에 함께 넣는다.

 

※ 다른과에서 키가 175인 사람이 출력되지 않았다.

 

 

 


3) AVG(속성명) : 그룹별 평균을 구하는 함수

▶ 학과별 평균 몸무게를 구하시오.

SELECT STU_DEPT, AVG(STU_WEIGHT)
FROM STUDENT
GROUP BY STU_DEPT;

 

 


 학과별 평균 키 값을 구하시오.

SELECT STU_GRADE, AVG(STU_HEIGHT)
FROM STUDENT
GROUP BY STU_GRADE;

 

 


 각 성별별 평균 키 값 구하기

SELECT STU_GENDER, AVG(STU_HEIGHT)
FROM STUDENT
GROUP BY STU_GENDER;

 

 


▶ 기계과 학생들의 평균 키보다 큰 학생을 구하시오.

▷ 기계과 학생들의 평균 키 출력

SELECT AVG(STU_HEIGHT)
FROM STUDENT
WHERE STU_DEPT= '기계';

 

 기계과 학생들의 평균 키보다 큰 학생의 이름과 키를 출력

SELECT STU_NAME, STU_HEIGHT
FROM STUDENT
WHERE STU_HEIGHT > (SELECT AVG(STU_HEIGHT)
                    FROM STUDENT
                    WHERE STU_DEPT= '기계');

 

 

 


4) SUM() : 합계

SELECT STU_NO, SUM(ENR_GRADE)
FROM ENROL
GROUP BY STU_NO;

  • 학번별 ENR_GRADE의 합이 출력되었다.

 

 

 


5) ABS() : 절댓값

SELECT -10, ABS(-10)
FROM DUAL;

  • ABS(-10)의 결과로 10의 절댓값인 10이 출력되었다.

 

 

 


6) ROUND() :  반올림해주는 함수

  • ROUND(반올림할 값, 위치 값)

 


▷ 소수점 첫 번째 자리까지 반올림하여 출력

SELECT STU_DEPT, ROUND(AVG(STU_WEIGHT),1) --ROUND 반올림해주는 함수
FROM STUDENT
GROUP BY STU_DEPT;

 


▷ 위치가 0일 때의 출력

SELECT 111.222, ROUND(111.222)
FROM DUAL;

 

▷ 위치 값을 음수로 지정하면 소수점 앞의 자리 값을 반올림한다.

SELECT 111.222, ROUND(118.222, -1)
FROM DUAL;

 

 

 


7) FLOOR() : 내림(버림).: 소수점을 버린다.

SELECT 111.222, FLOOR(118.222)
FROM DUAL;

 

 

 


8) CEIL() : 올림. 소수점을 올린다.

SELECT 111.222, CEIL(118.222)
FROM DUAL;

 

 

 


9) TRUNC() :  소수점 자르기

SELECT TRUNC(111.222, 1), TRUNC(111.222, -1), TRUNC(111.222)
FROM DUAL;

 

 

 


10)  SIGN() : 양수와 음수를 나타낸다.

SELECT SIGN(10), SIGN(-3), SIGN(0), SIGN(NULL), SIGN(100), SIGN(-100)
FROM DUAL;

 

 

 

 

 

다음 학습

 

[SQL] SQL 함수 (2/2) (19일차)

 

deliciouscode.tistory.com

 

728x90
반응형

'HRD_훈련 > ORACLE SQL' 카테고리의 다른 글

[SQL] 시간 함수 (21일차)  (0) 2023.06.14
[SQL] SELF, OUTER JOIN (21일차)  (0) 2023.06.14
[SQL] INNER JOIN (20일차)  (0) 2023.06.13
[SQL] SQL 함수 (2/2) (19일차)  (0) 2023.06.12
[SQL] SQL 응용 (19일차)  (0) 2023.06.12
728x90
반응형

STUDENT 테이블

 

EMP 테이블

 

 

 

 

1. STUDENT 테이블에서 기계과 이면서 키가 170 이상인 학생 조회

▶ 코드

SELECT STU_NAME
FROM STUDENT
WHERE STU_DEPT IN ('기계') AND STU_HEIGHT >= 170;

 

▶ 출력 결과

 

 

 

2. STUDENT 테이블에서 반(STU_CLASS)가 A이거나 B인 학생 구하기

▶ 코드

SELECT STU_NAME
FROM STUDENT
WHERE STU_CLASS IN ('A','B');

 

▶ 출력 결과

 

 

 

3. STUDENT 테이블에서 몸무게가 60~70 사이인 학생 구하기(BETWEEN 사용)

▶ 코드

SELECT STU_NAME
FROM STUDENT
WHERE STU_WEIGHT BETWEEN 60 AND 70;

 

▶ 출력 결과

 

 

 

4. STUDENT 테이블에서 키가 170이상인 학생의 수 구하기

▶ 코드

SELECT COUNT(STU_NAME) AS 학생수
FROM STUDENT
WHERE STU_HEIGHT >= 170;

 

▶ 출력 결과

 

 

 

5. EMP 테이블에서 급여가 4000 이상인 레코드 삭제

▶ 코드

DELETE
FROM EMP
WHERE SAL >= 4000;

 

▶ 출력 결과

SAL이 4000이 넘는 행이 삭제되었다.

 

 

6. EMP 테이블에서 부서번호(DEPTNO)가 20인 레코드 삭제

▶ 코드

DELETE
FROM EMP
WHERE DEPTNO IN (20);

 

▶ 출력 결과

  • DEPTNO가 20인 행이 삭제되었다.

 

 

 

7. STUDENT 테이블에서 키가 180이상인 학생의 몸무게 1씩 증가

▶ 코드

UPDATE STUDENT
SET STU_WEIGHT = STU_WEIGHT+1
WHERE STU_HEIGHT >= 180;

 

▶ 출력 결과

  • 몸무게가 90에서 1이 증가된 91으로 변경되었다.

 

 

 

8. STUDENT 테이블에서 기계과 이면서 3학년인 학생의 반(STU_CLASS)를 B로 변경

▶ 코드

UPDATE STUDENT
SET STU_CLASS = 'B'
WHERE STU_DEPT = '기계' AND STU_GRADE = 3;

 

▶ 출력 결과

  • A 값이 B로 출력되었다.

 

728x90
반응형

'HRD_훈련 > 실습' 카테고리의 다른 글

[SQL] JOIN 실습 1 (20일차)  (0) 2023.06.13
[SQL] SQL 함수 실습 (19일차)  (0) 2023.06.12
[SQL] UPDATE 실습 (19일차)  (0) 2023.06.12
[SQL] DELETE 실습 (19일차)  (0) 2023.06.12
[SQL] SELECT 실습 (19일차)  (0) 2023.06.12

+ Recent posts