<오늘의 학습-데이터 관리>
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
'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 |