2일차

고규빈·2021년 12월 14일
0

오늘배운 언어

  • 조인 ( JOIN )
    2개 이상의 테이블의 데이터들을 결합하여 하나의 결과값으로 출력하는 것

  • ORDER BY
    ORDER BY는 가장 마지막에 넣는 절이다.
    ORDER BY 컬럼명 [ASC | DESC] ( ASC : 오름차순 정렬, DESC : 내림차순 정렬 )

  • GROUP BY
    GROUP BY는 특정 컬럼을 기준으로 집계를 하는데 사용된다.
    HAVING 절은 GROUP BY로 집계된 값의 조건문으로 사용된다.
    WHERE 절과 같이 사용 가능하지만 특수한 경우가 아니면 사용하지 않는다.
    GROUP BY 다음에 HAVING 절이 온다.

예)
SELECT 집계할 컬럼
FROM 테이블
[WHERE 조건]
GROUP BY 집계할 컬럼
[HAVING 집계조건]

함수

오라클은 내장되어 있는 함수를 사용하여 연산작업을 할 수 있다.

  • 집계 함수
    sum(expr) : expr의 전체 합계

    count(*) : 쿼리 결과건 수, 로우 수 반환

    avg(expr) : expr의 평균

    min(expr) : expr의 최소값

    max(expr) : expr의 최대값

    variance(expr) : expr의 분산

    stddev(expr) : expr의 표준편

  • NULL 관련 함수
    NVL (expr1,expr2) : expr1 값이 null 일때 expr2 값을 반환

    NVL2 (expr1,expr2, expr3) : expr1 값이 null이 아니면 expr2값, null 이면 expr3 값을 반환

  • 날짜함수
    SYSTIMESTAMP : 현재일자와 시간 반환 (TIMESTAMP)

    SYSDATE : 현재일자와 시간 반환

  • 변환함수
    TO_NUMBER(expr, format) : 문자나 다른 유형의 숫자를 NUMBER 형으로 변환

    TO_CHAR (숫자 혹은 날짜, format) : format에 맞게 문자형으로 변환

  • 문자함수
    LOWER(char) : 소문자 변환 후 반환

    UPPER(char) : 대문자 변환 후 반환

    CONCAT(char1, char2) : 두 문자를 붙여 반환

    SUBSTR(char, pos, len) : char의 pos번째 문자부터 len 길이만큼 잘라낸 결과를 반환

    REPLACE(char, search_str, replace_str) : char에서 search_str을 찾아 이를 replace_str로 대체한 결과를 반환

  • 숫자 함수
    CEIL(n) : n과 같거나 가장 큰 정수 반환

    ABS(n) : n의 절대값 반환

    FLOOR(n) : n보다 작거나 가장 큰 정수 반환

    ROUND(n, i) : n을 소수점 기준 ( i+1 ) 번째에서 반올림한 결과 반환

함수 연습

--대문자 변환 함수 (UPPER, LOWER)
SELECT UPPER(bookname), LOWER(publisher)
FROM book;

--문자 연결 (CONCAT)
SELECT CONCAT('책이름:', bookname)
FROM book;

--축구의 역사, 굿스포츠
SELECT CONCAT(bookname,', ' || publisher)
FROM book;
SELECT CONCAT(bookname,CONCAT(', ', publisher))
FROM book;

--문자 잘라내기 (SUBSTR), 문자길이(LENGTH)
SELECT SUBSTR(bookname, 1, 2)
FROM book;

SELECT SUBSTR(name, 1,1) "성", SUBSTR(name, 2, LENGTH(name)) "이름"
FROM customer;

-- 문자 바이트수 (LENGTHB)
SELECT publisher, LENGTHB(publisher) "바이트수"
FROM book;

-- 문자 대체 (REPLACE)
SELECT REPLACE(publisher, '미디어', '출판사' )
FROM book;

--현재날짜(SYSDATE), 문자타입변환(TO_CHAR)
SELECT SYSDATE, TO_CHAR(SYSDATE,'YYYY-MM-DD HH:MI:SS') "현재날짜,시분초"
FROM dual;

--NULL 값 변경 (NVL, NVL2)
SELECT name, NVL(phone, ''), NVL2(phone, '입력완료','입력해주세요') "비고"
FROM customer;

--집계 함수(숫자에서만 사용가능) (COUNT(), SUM, AVG, MIN, MAX)
SELECT COUNT(
), SUM(price), AVG(price), MIN(price), MAX(price)
FROM book;

profile
안녕하세요

0개의 댓글