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

Day 37. Oracle SYSDATE, 호이스팅

by seung_nari 2022. 2. 24.

데이터베이스

SELECT * FROM STUDENT;

-- tuple 셀 , row 행(가로) , col 열
-- 학생 테이블에서 학번 STUDNO, 이름 NAME, 학과번호 DEPTNO를 조회하시오
SELECT STUDNO, NAME, DEPTNO FROM STUDENT;

-- 학과 번호만 조회
SELECT DISTINCT NAME, DEPTNO FROM STUDENT ORDER BY -1;
-- DISTINCT 중복값 제거 : 카운트 할때 행 단위로 하기에
-- NAME, DEPTNO를 한 쌍으로 보고 그 쌍이 둘다 일치해야 중복으로 ㅇㅈ
-- ORDER BY 1 내림차순 -1 오름차순

SELECT
    DEPTNO,
    NAME
FROM
    STUDENT
WHERE
    DEPTNO = 201 -- 조건문 <> 같지 않다 > < 둘다 사용 가능! AND OR NOT 도 있음
ORDER BY 1; -- TUPLE 정렬 오름차순 또는 내림차순

-- 학생 테이블에서 학과별 인원수를 조회
SELECT DEPTNO, COUNT(*)
FROM STUDENT
GROUP BY DEPTNO
HAVING COUNT(*) >= 5;
-- HAVING TUPLE들의 그룹이 만족해야 하는 조건

-- 학생테이블에서 중복되는 학과 번호, 학년 제외하고 출력하라
SELECT DISTINCT DEPTNO, GRADE
FROM STUDENT
ORDER BY 1, 2 DESC;

-- 데이터베이스 문자열 리터럴 : ''
-- HELLO WORLD를 출력하시오.
SELECT 'HELLO WORLD' AS MAIN FROM DUAL;
SELECT 'HELLO WORLD' AS MAIN FROM STUDENT; -- STUDENT 행만큼 출력

-- 학생의 이름과 '안녕' 결합
SELECT NAME || 'HELLO' FROM STUDENT; -- SQL 표준문법은 아니고 ORACLE만 가능
SELECT CONCAT(NAME, ' 안녕') HI FROM STUDENT S; -- 표준문법
-- HI와 S는 별칭

-- 학번에 "학번" 이름에는 "이름"을 부여하는 별칭으로 학번, 이름을 조회
SELECT STUDNO AS "학번", NAME AS "이름" FROM STUDENT;

-- 부서 테이블에서 부서 이름 칼럼의 별명은 “Department Name”, 
-- 부서 번호 칼럼의 별명은 “부서 번호#”으로 부여하여 출력하여라
SELECT DNAME "Department Name", DEPTNO "부서 번호#" FROM department;

-- 학생 테이블에서 학번과 이름 칼럼을 연결하여
-- “Student”라는 별명으로 하나의 칼럼처럼 연결하여 출력하여라
SELECT STUDNO || ' ' || NAME AS "Student" FROM STUDENT; 

-- 학생의 몸무게를 pound로 홖산하고 칼럼 이름을 'weight_pound'
-- 라는 별명으로 출력하여라. 1kg은 2.2pound이다.
SELECT STUDNO, NAME, WEIGHT || ' kg' AS "WEIGHT", WEIGHT * 2.2 || ' pound' AS "weight_pound" FROM STUDENT;

SELECT DEPTNO, COUNT(*)
FROM STUDENT
WHERE WEIGHT IS NOT NULL
GROUP BY DEPTNO
HAVING COUNT(DEPTNO) >= 5
ORDER BY DEPTNO;

/*
처리 순서
SELECT 6
FROM 1
WHERE 5
GROUP BY 4
HAVING 3
ORDER BY 2

ORACLE HINT : SQL사용자가 SQL 구문에 작성하는 것을 뜻한다.
오라클이 항상 최적의 실행 경로를 만들어 내기는 불가능하기 때문에 직접 최적의 실행 경로를 작성
튜닝기법 사용할 예정 뒤에서 배움! 
*/


-- 슈슈슈슉 91PAGE로 이동

CREATE TABLE EX_TYPE (
    C CHAR(10),
    V VARCHAR(10)
);

INSERT INTO EX_TYPE VALUES ('sql','sql');
SELECT * FROM EX_TYPE;

DROP TABLE EX_TYPE;

SELECT *
FROM EX_TYPE
WHERE C = 'sql';

SELECT *
FROM EX_TYPE
WHERE v = 'sql';

SELECT *
FROM EX_TYPE
WHERE C = 'sql       '; -- 공백

SELECT *
FROM EX_TYPE
WHERE V = 'sql       '; -- 결과 : 없음

SELECT *
FROM EX_TYPE
WHERE C = V; -- 결과 : 없음

SELECT *
FROM EX_TYPE
WHERE C = V || '       ';

SELECT *
FROM EX_TYPE
WHERE 'sql       ' = 'sql';

SELECT 1
FROM DUAL
WHERE 1 = '1';

-- NUMBER N := 1;  := : 대입연산자
SELECT STUDNO, NAME, BIRTHDATE, SYSDATE, ROUND(SYSDATE - BIRTHDATE) FROM STUDENT WHERE STUDNO = 10101;

SELECT SYSDATE - TO_DATE('00/04/17') FROM DUAL;

SELECT 
    TO_CHAR(SYSDATE, 'YY/MM/DD HH24:MI:SS') AS NOW,
    TO_CHAR(SYSDATE + 1, 'YY/MM/DD HH24:MI:SS') AS "1 DAY AFTER",
    TO_CHAR(SYSDATE + 3/24, 'YY/MM/DD HH24:MI:SS') AS "3 HOURS AFTER",
    TO_CHAR(SYSDATE + 30/60/24, 'YY/MM/DD HH24:MI:SS') AS "30 MINUTE AFTER"
FROM DUAL;

SELECT TO_CHAR(TO_DATE('00/04/17'), 'YY/MM/DD HH24:MI:SS') FROM DUAL;

SELECT ROUND(SYSDATE - 1/24, 'YY') FROM DUAL;

SELECT ROWID, ROWNUM, S.* FROM STUDENT S ORDER BY STUDNO DESC;

자바스크립트

// console.log(add1(3, 5));
// console.log(add2(3, 5)); // 아직 undefined임

function add1(x, y){ // 호이스티이이잉
    return x + y;
}

var add2 = function(x, y) { // 호이스팅하는데 add2 까지만 함
    return x + y;
}

console.log(add1(3, 5));
console.log(add2(3, 5));
// var add = (x, y) => x + y;

var result = (function() {
    return "hello world";
})();

console.log(result);

function Student(no, name) {
    var n = no;
    var na = name;

    this.getNo = function() {
        return n;
    }

    this.setNo = function(no) {
        n = no;
    }
}

var student = new Student(10, "가가가");
console.log(student.getNo())

'자바 풀스택 공부' 카테고리의 다른 글

Day 39. NULL 개념, 문자 함수 및 문자 조작 함수  (0) 2022.02.28
Day 38. 데이터 딕셔너리, 키, 콜백 함수, 익명 함수  (0) 2022.02.25
Day 36. Oracle 다운로드  (0) 2022.02.23
Day 35.  (0) 2022.02.23
Day 34.  (0) 2022.02.21

댓글