본문 바로가기
자바 풀스택 공부

Day 38. 데이터 딕셔너리, 키, 콜백 함수, 익명 함수

by seung_nari 2022. 2. 25.

데이터 딕셔너리 보는 방법

파일 > DATA MODELER > 임포트 > 데이터 딕셔너리

 


실선 : NULL 값 불가능한 무결성
점선 : NULL 값 가능한 무결성


P : PRIMERI KEY 기본키
NULL 값 불가 칼럼
P를 붙이면 바로 NOT NULL 이 자동
기본키에 대한 제약조건 >> 개체에 대한 무결성 (시험문제)

점점 작은 범위
슈퍼키 > 후보키 > 기본키 & 대체키
슈퍼키 : 유일성 O, 최소성 X 예) 주민등록번호(복합속성 및 유도속성)
후보키 : 유일성 O, 최소성 O
기본키 : 후보키 중 선택받은 키 예) 당선 된 자
대체키 : 후보키 중 선택받지 못한 키 예) 당선 못된 자

 

SCOTT 쓰는 방법!!

C:\oraclexe\app\oracle\product\11.2.0\server\rdbms\admin 안에

 

 

-- 10개씩 출력하게 만들기 (페이징)
SELECT ROWNUM, EMPLOYEE_ID, FIRST_NAME, LAST_NAME
FROM employees
WHERE ROWNUM <= 20
AND ROWNUM > 10;

-- SUB QUERY 를 활용한 페이지
-- 3페이지 10개씩
SELECT RN, ID, FN, LN FROM (
    SELECT ROWNUM RN , EMPLOYEE_ID ID, FIRST_NAME FN, LAST_NAME LN
    FROM employees
    WHERE ROWNUM <= 3 * 10
)
WHERE RN > (3-1) * 10;

-- 3페이지 보고 5개씩
SELECT RN, ID, FN, LN FROM (
    SELECT ROWNUM RN , EMPLOYEE_ID ID, FIRST_NAME FN, LAST_NAME LN
    FROM employees
    WHERE ROWNUM <= 3 * 5
)
WHERE RN > (3 - 1) * 5;
-- 학생 테이블에서 1학년 학생만 검색하여 학번, 이름, 학과 번호를 출력하여라
SELECT STUDNO, NAME, DEPTNO 
FROM STUDENT
WHERE GRADE = 1;

-- 학생 테이블에서 몸무게가 70kg 이하인 학생만 검색하여 이름, 학년, 몸무게, 학과번호를 출력하여라.
SELECT NAME, GRADE, WEIGHT, DEPTNO
FROM STUDENT
WHERE NOT WEIGHT > 70;


--  학생 테이블에서 1학년 이면서 몸무게가 70kg 이상인 학생만 검색하여 이름, 학년, 몸무게, 학과번호를 출력하여라.
SELECT NAME, GRADE, WEIGHT, DEPTNO
FROM STUDENT
WHERE GRADE = 1 AND WEIGHT >= 70;

-- BETWEEN 연산자를 사용하여 몸무게가 50kg에서 70kg 사이인 학생의 학번, 이름, 몸무게를 출력하여라.
SELECT STUDNO, NAME, WEIGHT
FROM STUDENT
WHERE WEIGHT BETWEEN 50 AND 70;

-- 학생테이블에서 81년에서 83년도에 태어난 학생의 이름과 생년 월일을 출력해라
SELECT NAME, BIRTHDATE
FROM STUDENT
--WHERE BIRTHDATE BETWEEN '81/01/01' AND '83/12/31'
--WHERE TO_CHAR(BIRTHDATE, 'YY') IN (81, 82, 83)
WHERE TO_CHAR(BIRTHDATE, 'YY') BETWEEN 81 AND 83;

-- IN 연산자를 사용하여 102번 학과와 201번 학과 학생의 이름, 학년, 학과번호를 춗력하여
SELECT NAME, GRADE, DEPTNO
FROM STUDENT
WHERE DEPTNO IN (102, 201);

-- 학생 테이블에서 성이 "김"씨인 학생의 이름, 학년, 학과 번호를 출력하여라.
SELECT NAME, GRADE, DEPTNO
FROM STUDENT
WHERE NAME LIKE '김%';

-- 이름 중에 '동'이 들어가는 학생의 학번, 이름 조회
SELECT * FROM student;
SELECT STUDNO, NAME
FROM STUDENT
WHERE NAME LIKE '%동%';

INSERT INTO STUDENT(NAME) VALUES ('동서남');
INSERT INTO STUDENT(NAME) VALUES ('홍길동');

-- 성을 제외하고 '동'이 들어가는거 찾기
SELECT STUDNO, NAME
FROM STUDENT
WHERE NAME LIKE '_%동%';


자바스크립트

콜백함수, 익명함수

$(function() {

}); // $(); 이름이 $인 함수

$(""); // selector
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.js" integrity="sha512-n/4gHW3atM3QqRcbCn6ewmpxcLAHGaDjpEBu4xZd47N0W2oQ+6q7oc3PXstrJYXcbNU1OHdQ1T7pAP+gi5Yu8g==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
    <title>Document</title>
    <script>
        // BOM 브라우저 객체가 window
        // window 객체 안에 있는 값들 중 하나인 onload
        // on으로 시작하는 함수는 전부 이벤트함수
        // window.onload = function(){
        //     var h1 = document.getElementsByTagName("h1");
        //     console.log(h1[0]);
        //     alert(h1[0].innerHTML);
        //     alert(h1[0].innerText);
        // } // onload가 이벤트 타입이라 함수
        // open ("https://www.uhducom.com");

        // 이벤트 관련 용어
        // window.onload = function() {}
        // window : 이벤트 대상
        // onload : 이벤트 속성
        // load : 이벤트 이름
        // function() {} : 이벤트 핸들러(리스너)

        var myFunc = function(){
            // alert($("h1").html());
            $("h1").text("안녕 세상").css("color", "red").hover(function() {
                // 마우스가 들어갔을때
                $(this).css("text-decoration", "underline");
            }, function() {
                // 마우스가 나갔을때
                $(this).css({textDecoration : "none"}); // 이런 방식도 가능
            }).click(function() { // on("click", function() {...}) 도 가능
                // alert($(this).text());
                location.href = "https://www.naver.com";
            });

            setInterval(function() {
                $("p").text(new Date());
            }, 1000); // 1000은 timing function 1초동안 계속 반복 
        } // $(...) ...만큼의 익명함수를 던진 것

       $(myFunc);
</script>
</head>
<body>
    <h1>hello <span>my</span> world</h1>
    <p></p>
</body>
</html>
var res = [1, 2, 3].map(function(item){
    return item * 2;
})
console.log(res);
var res = [1, 2, 3].filter(function(item){
    return item % 2;
})
// var res = [1, 2, 3].filter(item => item % 2) // 람다식 표현
console.log(res);
var res = [1, 2, 3].reduce((acc, cur) =>{
    return acc + cur;
}, 0) // 누적 계산기
console.log(res);

 

댓글