자바스크립트
자바스크립트 연산자 ( 몫 구하기 )
Math.floor(15/7);
parseInt(15/7);
자바스크립트 연산자 비교 연산자
3 == "3" 피연산자가 서로 같으면 true
3 === "3" 피연산자도 같고 자료형도 같으면 true
자바스크립트 연산자 문자열의 비교
"A" > "B" A의 아스키값(65), B의 아스키값(66) 비교
자바스크립트 ( if ) 조건문 3의 배수 확인
<!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 userNumber = prompt("숫자를 입력하세요.");
if(userNumber !== null){
if(userNumber % 3 === 0){
alert("3의 배수 입니다.")
}else{
alert("3의 배수가 아닙니다.")
}
}else{
alert("입력이 취소 되었습니다.")
}
</script>
</body>
</html>
자바스크립트 ( if )조건문 3의 배수 확인 ( 삼항 연산자 ) 결과는 위와 동일
<!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 userNumber = prompt("숫자를 입력하세요.");
if(userNumber !== null)
(userNumber % 3 === 0 ) ? alert("3의 배수입니다.") : alert("3의 배수가 아닙니다.");
else
alert("입력이 취소 되었습니다.");
</script>
</body>
</html>
자바스크립트 ( switch )조건문 숫자 입력은 case 번호
<!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 s = prompt("숫자입력?")
switch(s){
case "1" :
var b = 100 + parseInt(s);/*숫자로 변환*/
console.log(b);
break;
default :
console.log("잘못 입력")
break;
}
</script>
</body>
</html>
자바스크립트 ( if ) 조건문 좌석 자리배치도 만들기
<!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 memNum = prompt("입장객 수는 ?");
var colNum = prompt("한 줄에 몇 명씩 앉습니까?");
if(memNum % colNum === 0){
rowNum = parseInt(memNum / colNum);
}else{
rowNum = parseInt(memNum / colNum)+1;
}
document.write(`모두 ${rowNum}개의 줄이 필요합니다.`)
</script>
</body>
</html>
자바스크립트 ( for ) 반복문 1~10 합계
<!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 i;
var sum = 0;
for(i = 1; i < 10; i++){
sum += i;
}
document.write(`<h1>1~10 더하면 = ${sum}</h1>`);
document.write(`<h3>i의 값은 = ${i}</h3>`);
</script>
</body>
</html>
자바스크립트 중첩( for ) 구구단
스크립트
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<link rel="stylesheet" href="gugudan.css">
</head>
<body>
<script>
var i, j;
for(i = 1; i<=9; i++){
document.write("<div>");
document.write(`<h3>${i}단</h3>`)
for(j = 1; j <= 9; j++){
document.write(`${i} X ${j} = ${i*j} <br>`)
}
document.write("</div>");
}
</script>
</body>
</html>
CSS
div{
display: inline-block;
padding: 0 20px 30px 20px;
margin: 15px;
border: 1px solid #ccc;
line-height: 2;
background-color: black;
color: white;
border-radius: 30px;
box-shadow: 5px 5px 5px 5px gray inset;
}
div h3{
text-align: center;
font-weight: bold;
}
오라클
Group BY절에 조건을 줄 때 사용하는 HAVING절
HAVING절은 SELECT문에 GROUP BY절이 존재할 때만 사용할 수 있다. GROUP BY절을 통해 그룹화된 결과 값의 범위를 제한하는 데 사용된다.
SELECT deptno, job, avg(sal)
FROM emp
GROUP BY deptno, job
HAVING AVG(SAL) >= 2000
ORDER BY deptno, job;
HAVING절을 추가하지 않았을 때
HAVING절을 추가했을 때
HAVING절을 사용할 때 유의점
HAVING절도 WHERE절처럼 지정한 조건식이 참인 결과만 출력한다는 점에서 비슷한 부분이 있으나
WHERE절은 출력 대상 행을 제한하고, HAVING절은 그룹화된 대상을 출력에서 제한하므로 쓰임새는 전혀 다름
HAVING절 대신 WHERE절을 잘못 사용했을 경우
에러 = "그룹 함수는 허가되지 않는다"
SELECT deptno, job, avg(sal)
FROM emp
WHERE avg(sal) >= 2000
GROUP BY deptno, job
ORDER BY deptno, job;
WHERE절과 HAVING절의 차이점
WHERE절을 사용하지 않고 HAVING절만 사용한 경우
SELECT deptno, job, avg(sal)
FROM emp
GROUP BY deptno, job
HAVING avg(sal) >= 2000
ORDER BY deptno, job;
WHERE절과 HAVING절을 모두 사용한 경우
SELECT deptno, job, avg(sal)
FROM emp
WHERE SAL <= 3000
GROUP BY deptno, job
HAVING avg(sal) >= 2000
ORDER BY deptno, job;
WHERE절이 GROUP BY 절, HAVING절보다 먼저 실행 된다.
위에 쿼리문을 보면 WHERE절을 추가한 SELECT문에서는 10번 부서의 PRESIDENT 데이터가 출력되지
않는다. 이는 WHERE절이 GROUP BY절과 HAVING절을 사용한 데이터 그룹화보다 먼저 출력 대상이 될
행을 제한하기 때문이다.
그룹화와 관련된 여러 함수
ROLLUP, CUBE, GROUPING SETS 함수는 GROUP BY절에 지정할 수 있는 특수 함수이다.
ROLLUP 함수와 CUBE 함수는 그룹화 데이터의 합계를 출력할 때 유용하게 사용할 수 있다.
기존 GROUP BY 절만 사용한 그룹화
SELECT DEPTNO, JOB, COUNT(*), MAX(sal), SUM(sal), AVG(sal)
FROM emp
GROUP BY deptno, job
ORDER BY deptno, job;
ROLLUP 함수를 적용한 그룹화
SELECT DEPTNO, JOB, COUNT(*), MAX(sal), SUM(sal), AVG(sal)
FROM emp
GROUP BY ROLLUP(deptno, job);
결과를 보면 ROLLUP 함수는 명시한 열을 소그룹부터, 대그룹의 순서로 각 그룹별 결과를 출력하고
마지막에 총 데이터의 결과를 출력한다.
ROLLUP함수에는 그룹 함수를 지정할 수 없다.
n개의 열을 지정하면 기본적으로 n+1개의 조합이 출력된다.
CUBE 함수를 적용한 그룹화
SELECT DEPTNO, JOB, COUNT(*), MAX(sal), SUM(sal), AVG(sal)
FROM emp
GROUP BY CUBE(deptno, job)
ORDER BY deptno, job
결과를 보면 CUBE 함수는 ROLLUP 함수를 사용했을 때 보다 좀 더 많은 결과가 나온다.
여기서 확인해야 하는 부분은 부서와 상관없이 직책별 결과가 함께 출력되고 있는 부분(밑줄)
CUBE함수는 지정한 모든 열에서 가능한 조합의 결과를 모두 출력한다.
CUBE 함수에 n개 열을 지정하면 2n개 조합이 출력 ( 제곱수 )
'프로젝트 기반 자바(JAVA) 응용 SW개발자 취업과정' 카테고리의 다른 글
2023-07-06 35일차 (0) | 2023.07.06 |
---|---|
2023-07-05 34일차 (0) | 2023.07.05 |
2023-07-03 32일차 (0) | 2023.07.03 |
2023-06-30 31일차 (0) | 2023.06.30 |
2023-06-29 30일차 (0) | 2023.06.29 |