ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 11/24 오라클 수업 1일차!
    ORACLE 2021. 11. 24. 21:35

    오늘은 오라클 수업을 처음 하는 날!

    선생님이 설치 처음부터 도와주셔서 수월하게 설치했다.

     
    SELECT절
    FROM employees;
    SELECT email, phone_number, hire_date
    FROM employees;
    -- 컬럼을 조회하는 위치에서 * / + - 연산이 가능합니다.
    SELECT
    employee_id,
    first_name,
    last_name,
    salary,
    salary+salary*0.1
    FROM
    employees;
    -- NULL 값의 확인
    SELECT department_id, commission_pct
    FROM employees;
    -- alias(컬럼명의 이름을 변경해서 조회합니다.)
    SELECT first_name as 이름, last_name as 성,
    salary as 급여 FROM employees;
    -- 오라클은 홑따옴표로 문자를 표현하고, 문자열 안에 홑따옴표를
    -- 표현하고 싶다면 ''를 두번 연속으로 쓰면 됩니다.
    -- || -> 연결자
    SELECT
    first_name || ' ' || last_name || '''s salary is $' || salary
    as 급여내역 FROM employees;
    -- distinct (중복 행의 제거)
    SELECT department_id FROM employees;
    SELECT DISTINCT department_id FROM employees;
    -- ROWNUM, ROWID
    -- (**로우넘: 쿼리에 의해 반환되는 행 번호를 출력)
    -- (로우아이디: 데이터베이스에서 행의 주소값을 반환)
    SELECT ROWNUM, ROWID, employee_id
    FROM employees;

     

     
    -- WHERE절 비교(데이터 값은 대/소문자를 구분합니다.)
    SELECT first_name, last_name, job_id
    FROM employees
    WHERE job_id = 'IT_PROG';
    SELECT * FROM employees
    WHERE last_name = 'king';
    SELECT * FROM employees
    WHERE department_id = '90';
    SELECT * FROM employees
    WHERE salary >= 15000;
    SELECT * FROM employees
    WHERE hire_date = '04/01/30';
    --데이터 행 제한 (BETWEEN, IN, LIKE)
    SELECT * FROM employees
    WHERE salary BETWEEN 15000 AND 20000;
    SELECT * FROM employees
    WHERE hire_date BETWEEN '03/01/01' AND '03/12/31';
    SELECT * FROM employees
    WHERE salary >= 15000
    AND salary <= 20000;
    --IN 연산자의 사용 (특정 값들과 비교할 때 사용합니다.)
    SELECT * FROM employees
    WHERE manager_id IN(100,102,102);
    SELECT * FROM employees
    WHERE job_id IN('IT_PROG','AD_VP');
    --LIKE 연산자
    -- %는 모든, _는 데이터의 위치를 찾아낼 때
    SELECT first_name, hire_date
    FROM employees
    WHERE hire_date LIKE '03%';
    SELECT first_name, hire_date
    FROM employees
    WHERE hire_date LIKE '%15';
    SELECT first_name, hire_date
    FROM employees
    WHERE hire_date LIKE '%05%';
    SELECT first_name, hire_date
    FROM employees
    WHERE hire_date LIKE '___05%';
    --IS NULL (null값을 찾습니다.)
    SELECT * FROM employees
    WHERE manager_id IS NULL;
    SELECT * FROM employees
    WHERE commission_pct IS NULL;
    SELECT * FROM employees
    WHERE commission_pct IS NOT NULL;
    --AND, OR
    --AND가 OR보다 빠릅니다.
    SELECT * FROM employees
    WHERE job_id = 'IT_PROG'
    OR job_id = 'FI_MGR'
    AND salary >= 6000;

    이렇게 조건을 주면 salary가 6000 이하인 숫자도 들어오게 된다.

    --소괄호로 우선순위를 끌어올릴 수 있습니다.
    SELECT * FROM employees
    WHERE (job_id = 'IT_PROG'
    OR job_id = 'FI_MGR')
    AND salary >= 6000;

    소괄호를 사용하여 우선 순위를 끌어올려 주면 된다.

    --데이터의 정렬 (SELECT 구문의 가장 마지막에 옵니다.)
    SELECT * FROM employees
    ORDER BY hire_date ASC;
    SELECT * FROM employees
    ORDER BY hire_date DESC;
    SELECT * FROM employees
    WHERE job_id = 'IT_PROG'
    ORDER BY first_name ASC;
    SELECT * FROM employees
    WHERE salary >= 5000
    ORDER BY employee_id DESC;
    SELECT first_name, salary * 12 as pay
    FROM employees
    ORDER BY pay ASC;
     

    문자열함수

    -- lower(소문자), initcap(앞글자만 대문자), upper(대문자)
    /* dual이라는 테이블은 sys가 소유하는 오라클의 표준 테이블로서
    오직 한 행에 한 컬럼만 담고 있는 dummy 테이블입니다.
    일시적인 산술 연산이나 날짜 연산 등을 위해 주로 사용됩니다.
    모든 사용자가 접근할 수 있습니다.
    */
    SELECT 'abcDEF', lower('abcDEF'), upper('abcDEF')
    FROM dual;
    SELECT last_name, lower(last_name), initcap(last_name),
    upper(last_name) FROM employees;
    SELECT last_name FROM employees
    WHERE lower(last_name) = 'austin';
    --length(길이), instr(문자 찾기)
    SELECT 'abcdef' AS ex, ('abcdef'), INSTR('abcdef', 'z')
    FROM dual;
    SELECT first_name, LENGTH(first_name), INSTR(first_name, 'a')
    FROM employees;
    --substr(문자열 자르기), concat(문자 연결)
    SELECT 'abcdef' AS ex, SUBSTR('abcdef', 1,2), CONCAT('abc','def')
    FROM dual;
    SELECT first_name, SUBSTR(first_name, 1,3),
    CONCAT(first_name, last_name)
    FROM employees;
    --LPAD, RPAD (좌, 우측 지정 문자열로 채웁니다.)
    SELECT LPAD('abc', 10, '*') FROM dual;
    SELECT RPAD('abc', 10, '*') FROM dual;
    --LTRIM(), RTRIM(), TRIM() 공백 제거
    --L, RTRIM -> 좌, 우측에 지정한 문자를 제거합니다.
    SELECT LTRIM('javascript_java', 'java') FROM dual;
    SELECT RTRIM('javascript_java', 'java') FROM dual;
    SELECT TRIM(' java ') FROM dual;
    --REPRACE(문자열 치환)
    SELECT REPLACE('my dream is a president', 'president', 'doctor')
    FROM dual;
    SELECT REPLACE('my dream is a president', ' ', '')
    FROM dual;
    SELECT REPLACE( REPLACE('my dream is a president', 'president', 'doctor'), ' ', '')
    FROM dual;
    SELECT REPLACE(CONCAT('hello ', 'world'), ' ', '') FROM dual;

     

    숫자날짜함수

    --숫자 함수
    --ROUND(반올림)
    --소수점 1번째 위치 반올림
    SELECT ROUND(3.1415, 1), ROUND(45.923,0), ROUND(45.923, -1)
    FROM dual;
    --TRUNC
    SELECT ROUND(3.1415, 1), TRUNC(45.923,0), TRUNC(45.923, -1)
    FROM dual;
    --ABS(절대값)
    SELECT ABS(-34) FROM dual;
    --CEIL (올림), FLOOR(내림)
    SELECT CEIL(3.14), FLOOR(3.14)
    FROM dual;
    --mod(나머지)
    SELECT 10/2, MOD(10,2)
    FROM dual;
    SELECT sysdate FROM dual;
    SELECT systimestamp FROM dual;
    SELECT first_name, sysdate - hire_date
    FROM employees;
    SELECT first_name, hire_date,
    (sysdate - hire_date) / 7 AS week
    FROM employees;
    --날짜 반올림, 절사
    SELECT ROUND(sysdate) FROM dual;
    SELECT ROUND(sysdate, 'year') FROM dual;
    SELECT ROUND(sysdate, 'month') FROM dual;
    SELECT ROUND(sysdate, 'day') FROM dual;
    SELECT TRUNC(sysdate) FROM dual;
    SELECT TRUNC(sysdate, 'year') FROM dual;
    SELECT TRUNC(sysdate, 'month') FROM dual;
    SELECT TRUNC(sysdate, 'day') FROM dual;

     

    여기까지 배우고 오늘 수업 종료!

    컴활에서 배운 것들이 나와서 익숙하기도 하고 재미있던 수업이었다.

    'ORACLE' 카테고리의 다른 글

    오라클 PL/SQL 제어문, 반복문, 탈출문  (0) 2021.12.04
    오라클 PL/SQL 진입!  (0) 2021.12.03
    11/29 오라클  (0) 2021.11.29
    11/26 복습복습 금토일..[3]  (0) 2021.11.28
    11/25 오라클 [2]  (0) 2021.11.25
Designed by Tistory.