자바스크립트
자바스크립트_태어난 연도 입력해서 나이 출력 하기
document.write(" "+ currentYear +"년 현재<br> ") 이렇게 사용하는거 보다 밑에 처럼 사용
document.write(`${currentYear}년 현재<br>`); 백틱 `${ }`
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>나이 계산하기</title>
</head>
<body>
<script>
var currentYear = 2023;
var birthYear;
var age;
birthYear = prompt("태어난 연도를 입력하세요. (YYYY)", "")
age = currentYear - birthYear + 1;
document.write(`${currentYear}년 현재<br>`);
document.write(`${birthYear}년에 태어난 사람의 나이는 ${age}세입니다.`);
</script>
</body>
</html>
자바스크립트_현재시간 출력
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>What time is it?</title>
<style>
body {
font-size:2em;
text-align: center;
}
</style>
</head>
<body>
<script>
var now = new Date();
var display = now.toLocaleTimeString();
document.write(`현재 시각은 ${display}`);
</script>
</body>
</html>
자바스크립트_이름 입력 받은 후 출력
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
var name = prompt("이름을 입력하세요");
document.write(`<b><big>${name}</big></b>님, 환영합니다.`);
</script>
</body>
</html>
오라클
다중행 함수와 데이터 그룹화
다중행 함수는 여러행을 바탕으로 하나의 결과 값을 도출해 내기 위해 사용하는 함수
실습 SUM 함수를 사용하여 급여 합계 출력하기
select sum(sal)
from emp
SUM 함수를 사용하여 사원 이름과 급여 합계 출력하기
SELECT절에는 기본적으로 여러 행이 결과로 나올 수 있는 열을 함께 사용할 수 없다.
select ename ,sum(sal)
from emp
오류 ( 단일 그룹의 그룹 함수가 아닙니다 )
결과 값이 한행으로 나온 데이터(SUM(SAL))와 여러 행이 나올 수 있는 데이터(ENAME)를 함께 명시했을때
에러 발생
SUM 함수와 같이 간단하게 사용할 수 있는 다중행 함수
함수 | 설명 |
SUM | 지정한 데이터의 합 반환 |
COUNT | 지정한 데이터의 개수 반환 |
MAX | 지정한 데이터 중 최댓값 반환 |
MIN | 지정한 데이터 중 최솟값 반환 |
AVG | 지정한 데이터의 평균값 반환 |
실습_급여 합계 구하기 (DISTINCT, ALL 사용 )
SUM 함수를 작성할 때 생략 가능 옵션 DISTINCT, ALL을 사용한 결과를 비교
DISTINCT : 중복 제거
ALL : 중복 허용 ( 작성안해도 무관 ) 옵션 지정 안 하면 ALL이 기본
select sum(DISTINCT sal),
sum(ALL SAL),
sum(SAL)
FROM emp
데이터 개수를 구해 주는 COUNT 함수
COUNT 함수에 *을 사용하면 SELECT문의 결과 값으로 나온 행 데이터의 개수를 반환해준다.
SUM 함수와 마찬가지로 DISTINCT나 ALL을 사용 가능
select count(*)
from emp;
select count(*)
from emp
where deptno = 30;
COUNT 함수와 DISTINCT, ALL 함께 사용하기
select count(DISTINCT sal),
count(ALL SAL),
count(SAL)
from emp
COUNT 함수를 사용하여 추가 수당 열 개수 출력하기
COUNT 함수를 사용하면 추가 수당 열처럼 NULL이 데이터로 포함되어 있을 경우, NULL데이터는 반환 개수 제외두 코드 결과값이 같음
select count(comm)
from emp
select count(comm)
from emp
where comm is not null
최댓값과 최솟값을 구하는 MAX, MIN 함수
select max(sal)
from emp
where deptno = 10
select min(sal)
from emp
where deptno = 10
날짜 데이터에 MAX, MIN 함수 사용하기
오라클 데이터베이스에서는 날짜 및 문자 데이터 역시 크기 비교가 가능
부서 번호가 20인 사원의 입사일 중 제일 최근 입사일 출력하기
select max(HIREDATE)
from emp
where deptno = 20
부서 번호가 20인 사원의 입사일 중 제일 오래된 입사일 출력하기
select min(HIREDATE)
from emp
where deptno = 20
평균 값을 구하는 AVG 함수
AVG 함수는 입력 데이터의 평균 값을 구하는 함수이다. 숫자 또는 숫자로 암시적 형 변환이 가능한 데이터만 사용할 수 있다.
부서 번호가 30인 사원들의 평균 급여 출력하기
select avg(sal)
from emp
where deptno = 30
DISTINCT로 중복을 제거한 급여 열의 평균 급여 구하기
select avg(distinct sal)
from emp
where deptno = 30
결과 값을 원하는 열로 묶어 출력하는 GROUP BY 절
앞에 다중행 함수는 지정 테이블의 데이터를 가공하여 하나의 결과 값만 출력했다.
그렇기 때문에 부서를 의미하는 부서 번호, 즉 DEPTNO 열 값별로 급여의 평균 값을 구하려면 각 부서의 평균 값을 구하기
위헤 SELECT문을 밑에 처럼 하나하나 제작해야 했다.
집합 연산자를 사용하여 각 부서별 평균 급여 출력하기
select avg(sal), '10' as deptno from emp where deptno = 10
UNION all
select avg(sal), '20' as deptno from emp where deptno = 20
UNION all
select avg(sal), '30' as deptno from emp where deptno = 30
GROUP BY절의 기본 사용법
위에 실습 같이 여러 데이터에서 의미 있는 하나의 결과를 특정 열 값별로 묶어서 출력할 때 데이터를 '그룹화'한다고 표현
SELECT문에서는 GROUP BY절을 작성하여 데이터를 그룹화할 수 있는데 밑에 처럼 순서에 맞게 작성하면 그룹으로
묶을 기준 열을 지정한다.
SELECT [조회할 열1 이름], [열2 이름], ..., [열 N 이름]
FROM [조회할 테이블 이름]
WHERE [조회할 행을 선별하는 조건식]
GROP BY [그룹화할 엽을 지정(여러 개 지정 가능)]
ORDER BY [정렬하려는 열 지정]
GROUP BY를 사용하여 부서별 평균 급여 출력
select avg(sal), deptno
from emp
GROUP BY DEPTNO
부서 번호 및 직책별 평균 급여로 정렬하기 ( ORDER BY 정렬 )
select deptno, job, avg(sal)
from emp
group by deptno, job
order by deptno, job
GROUP BY절에 없는 열을 SELECT절에 포함했을 경우
GROUP BY절을 사용하여 출력 데이터를 그룹화할 경우 유의해야 할 점은 다중행 함수를 사용하지 않은 일반 열은
GROUP BY절에 명시하지 않으면 SELECT절 사용할 수 없다.
밑에 쿼리문은 DEPTNO를 기준으로 그룹화되어 DEPTNO 열과 AVG(SAL)열은 한 행으로 출력되지만, ENAME 열은
여러 행으로 구성되어 각 열별 데이터 수가 달라져 출력이 불가능해진다.
select ename, deptno, avg(sal)
from emp
group by deptno
select ename, deptno, avg(sal)
from emp
group by deptno, ename
해당 처럼 바꾸면 출력 가능
GROUP BY절을 사용할 때에는 SELECT절의 열도 유심히 살펴 볼 것
'프로젝트 기반 자바(JAVA) 응용 SW개발자 취업과정' 카테고리의 다른 글
2023-07-05 34일차 (0) | 2023.07.05 |
---|---|
2023-07-04 33일차 (0) | 2023.07.04 |
2023-06-30 31일차 (0) | 2023.06.30 |
2023-06-29 30일차 (0) | 2023.06.29 |
2023-06-28 29일차 (0) | 2023.06.28 |