자바스크립트

 

타입 체크

String

        var n = prompt("숫자를 입력하세요.",4); /* 4입력하면 기본값으로 출력 */
        console.log(typeof n);/*콘솔에서 타입 확인*/

 

 

입력 값 숫자로 변경

        var n = prompt("숫자를 입력하세요.",4);
        console.log(typeof parseInt(n));/*콘솔에서 타입 확인*/

 

 

 

 

 

 

취소 버튼 클릭 시 이벤트 처리 / 4x4x4x 마지막 x 안붙히기

        if(n !== null){/*취소 버튼 클릭 시 이벤트*/
            var nFact = 1;
            var i = 1;
            str = "";
            
            while(i <= n){
                if( i != n ){ /*마지막에 X 안붙히기*/
                    str += i + "X";
                  
                }else{
                    str += i;
                }
                
                
                i++;
            }
            console.log(str);
            msg = n + "!=" + nFact;
        }else
            msg = "값을 입력하지 않았습니다.";

 

 

While 문으로 팩토리얼 만들기 ( 3의 팩토리얼은 1 x 2 x 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>
    <h1 style="text-align: center">
        while문을 사용한 팩토리얼 계산
    </h1>
    <script>
        var n = prompt("숫자를 입력하세요.");
        var msg = "";

        if(n !== null){/*취소 버튼 클릭 시 이벤트*/
            var nFact = 1;
            var i = 1;
            
            
            while(i <= n){
                
                nFact *= i;
                                
                i++;

                console.log(`nFact = ${nFact}`);
            }
            msg = n + "!=" + nFact;
        }else
            msg = "값을 입력하지 않았습니다.";
        
            document.write(msg);
    </script>

</body>
</html>

 

 

 

 

 

 

break 문으로 구구단을 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>
    <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>");
            if(i === 3) break;
        }
        
            
        

    </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;
}

 

 

 

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>
    <h1 style="text-align: center;">짝수끼리 더하기</h1>
    <script style>
        var i;
        var n = 10;
        var sum = 0;

        for(i = 1; i <= n; i++){
            if(i % 2 === 1)
                continue
                sum += i;
            
            document.write(i + "---------" + sum + "<br>")
        }

    </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>
        
    <style>
        table, td {
            border: 1px solid #ccc;
            border-collapse: collapse;
        }
        td {
            padding: 5px;
            font-size: 0.9em;
        }

    </style>

</head>
<body>
    <h1 style="text-align: center;">자리 배치도</h1>
    <script>
        var i, j;
        var memNum = prompt("입장객 수는 ?");
        var colNum = prompt("한 줄에 몇 명씩 앉습니까?");

        if(memNum % colNum === 0){
            rowNum = parseInt(memNum / colNum);
        }else{
            rowNum = parseInt(memNum / colNum)+1;
        }

        /*document.write(`모두 ${rowNum}개의 줄이 필요합니다.`)*/

        
        document.write("<table>");
        for(i = 0; i < rowNum; i++){
            document.write("<tr>");
            for(j = 1; j <= colNum; j++){
                seatNo = i * colNum + j;
                if(seatNo > memNum) break;
                document.write("<td> 좌석 " + seatNo + "</td> ");
            }
            
            document.write("</tr>");
        }
        document.write("</table>");
    </script>
</body>
</html>

 

 


 

 

 

 

오라클

 

DEPTNO를 먼저 그룹화한 후 ROLLUP 함수에 JOB 지정하기

SELECT deptno, job, count(*)
    FROM emp
    GROUP BY deptno, ROLLUP(job);

 

JOB을 먼저 그룹화한 후 ROLLUP 함수에 DEPTNO 지정하기

SELECT deptno, job, count(*)
    FROM emp
    GROUP BY job, ROLLUP(deptno);

두 SELECT문의 결과 값은 각각 10번 부서에 존재하는 각 직책별 사원 수와 각 부서별 사원수의 합,

그리고 특정 직책인 사람들의 부서별 인원수와 각 직책별 사원 수의 합형태로 다르게 출력 

 

 

 

 

 

GROUPING SETS 함수 

해당 함수는 같은 수준의 그룹화 열이 여러 개일 때 각 열별 그룹화를 통해 결과 값을 출력하는데 사용한다.

 

 

GROUPING SETS 함수를 사용하여 열별로 그룹으로 묶어 출력하기

부서별 인원수, 직책별 인원수의 결과 값을 하나의 결과로 출력할 수있음

( 열을 계층적으로 분류하지 않고 각각 따로 그룹화한 후 연산을 수행 )

SELECT deptno, job, count(*)
    FROM emp
    GROUP BY GROUPING SETS(deptno, job)
    ORDER BY deptno, job;

 

 

 

그룹화 함수

해당 함수는 데이터 자체의 가공이나 특별한 연산 기능을 수행하지는 않지만 그룹화 데이터의 식별이 쉽고 가독성을

높이기 위한 목적으로 사용한다.

 

 

GROUPING 함수

해당 함수는 ROLLUP 또는 CUBE 함수를 사용한 GROUP BY절에 그룹화 대상으로 지정한 열이 그룹화된 상태로 결과가

집계되었는지 확인하는 데 사용

 

SELECT deptno, job, count(*), GROUPING(deptno), GROUPING(job)
    FROM emp
    GROUP BY CUBE(deptno, job)
    ORDER BY deptno, job;

실행 결과를 살펴보면 GROUPING 함수에 DEPTNO와 JOB열을 각각 적용한 결과가 0, 1로 출력되는 것을 알 수 있다.

여기서 0은 GROUPING함수에 지정한 열이 그룹화되었음을 의미하고

1이 나왔다는 것은 그룹화되지 않은 데이터를 의미한다.

 

 

 

DECODE문으로 GROUPING 함수를 적용하여 결과 표기하기

SELECT DECODE(GROUPING(deptno), 1, 'ALL_DEPTNO', deptno) AS DEPTNO,
        DECODE(GROUPING(job), 1, 'ALL_JOB', job) AS JOB,
        COUNT(*)
    FROM emp
    GROUP BY CUBE(deptno, job)
    ORDER BY deptno, job;

 

 

 

GROUPING_ID 함수

해당 함수는 GROUPING 함수와 동일하게 특정 열이 그룹화되었는지 출력하는 함수이지만 다른 점은 

GROUPING 함수는 그룹화 여부를 검사할 열을 하나씩 지정하지만GROUPING_ID함수는 한 번에 여러 열을 지정할 수 있다. GROUPING_ID함수를 사용한 결과는 밑에 이미지처럼 그룹화 비트 백터값으로 나타낸다. 

 

각 열의 그룹화 유무에 따라 0과 1이 결과 값으로 나오는 것은 GROUPING과 같다. 하지만 GROUPING_ID 함수는 여러 개

열을 지정할 수 있으므로 지정한 열의 순서에 따라 0, 1값이 하나씩 출력된다. 이렇게 0과 1로 구성된 그룹화 비트 백터 값을 2진수로 보고 10진수로 바꾼 값이 최종 결과로 출력된다.

 

 

DEPTNO, JOB을 함께 명시한 GROUPING_ID 함수 사용하기

SELECT deptno, job, count(*), sum(sal),
        GROUPING(deptno),
        GROUPING(job),
        GROUPING_ID(deptno, job)
    FROM emp
    GROUP BY CUBE(deptno, job)
    ORDER BY deptno, job;

 

 

 

LISTAGG 함수 

그룹에 속해 있는 데이터를 가로로 나열할 때 사용 

 

GROUP BY절로 그룹화하여 부서 번호와 사원 이름 출력하기

SELECT deptno, ename
    from emp
   GROUP BY deptno, ename

 

부서별 사원 이름을 나란히 나열하여 출력하기

SELECT deptno, LISTAGG(ename, ', ')
                WITHIN GROUP(ORDER BY SAL DESC) AS ENAMES
    from emp
   GROUP BY deptno;

 

 

 

 

 

 


 

 

DBCP 설정

 

 

context.xml
0.00MB

 

 

 

해당 파일 밑에 이미지 경로에 설정 ( 이클립스 기준 ) 

 

접속 코드 

	@Override
	public Connection getConnection() {
		Context initCtx;
		Connection conn = null;
		try {
			initCtx = new InitialContext();
			DataSource source
			= (DataSource)initCtx.lookup(
					"java:comp/env/jdbc/OracleDB");
			conn = source.getConnection();
			System.out.println("DB 커넥션 성공");
			
		} catch (NamingException | SQLException e) {
			// TODO: handle exception
		}
		return conn;
	}

 

'프로젝트 기반 자바(JAVA) 응용 SW개발자 취업과정' 카테고리의 다른 글

2023-07-07 36일차  (0) 2023.07.07
2023-07-06 35일차  (0) 2023.07.06
2023-07-04 33일차  (0) 2023.07.04
2023-07-03 32일차  (0) 2023.07.03
2023-06-30 31일차  (0) 2023.06.30

+ Recent posts