-
11/24 오라클 수업 1일차!ORACLE 2021. 11. 24. 21:35
오늘은 오라클 수업을 처음 하는 날!
선생님이 설치 처음부터 도와주셔서 수월하게 설치했다.
SELECT절FROM employees;SELECT email, phone_number, hire_dateFROM employees;-- 컬럼을 조회하는 위치에서 * / + - 연산이 가능합니다.SELECTemployee_id,first_name,last_name,salary,salary+salary*0.1FROMemployees;-- NULL 값의 확인SELECT department_id, commission_pctFROM employees;-- alias(컬럼명의 이름을 변경해서 조회합니다.)SELECT first_name as 이름, last_name as 성,salary as 급여 FROM employees;-- 오라클은 홑따옴표로 문자를 표현하고, 문자열 안에 홑따옴표를-- 표현하고 싶다면 ''를 두번 연속으로 쓰면 됩니다.-- || -> 연결자SELECTfirst_name || ' ' || last_name || '''s salary is $' || salaryas 급여내역 FROM employees;-- distinct (중복 행의 제거)SELECT department_id FROM employees;SELECT DISTINCT department_id FROM employees;-- ROWNUM, ROWID-- (**로우넘: 쿼리에 의해 반환되는 행 번호를 출력)-- (로우아이디: 데이터베이스에서 행의 주소값을 반환)SELECT ROWNUM, ROWID, employee_idFROM employees;-- WHERE절 비교(데이터 값은 대/소문자를 구분합니다.)SELECT first_name, last_name, job_idFROM employeesWHERE job_id = 'IT_PROG';SELECT * FROM employeesWHERE last_name = 'king';SELECT * FROM employeesWHERE department_id = '90';SELECT * FROM employeesWHERE salary >= 15000;SELECT * FROM employeesWHERE hire_date = '04/01/30';--데이터 행 제한 (BETWEEN, IN, LIKE)SELECT * FROM employeesWHERE salary BETWEEN 15000 AND 20000;SELECT * FROM employeesWHERE hire_date BETWEEN '03/01/01' AND '03/12/31';SELECT * FROM employeesWHERE salary >= 15000AND salary <= 20000;--IN 연산자의 사용 (특정 값들과 비교할 때 사용합니다.)SELECT * FROM employeesWHERE manager_id IN(100,102,102);SELECT * FROM employeesWHERE job_id IN('IT_PROG','AD_VP');--LIKE 연산자-- %는 모든, _는 데이터의 위치를 찾아낼 때SELECT first_name, hire_dateFROM employeesWHERE hire_date LIKE '03%';SELECT first_name, hire_dateFROM employeesWHERE hire_date LIKE '%15';SELECT first_name, hire_dateFROM employeesWHERE hire_date LIKE '%05%';SELECT first_name, hire_dateFROM employeesWHERE hire_date LIKE '___05%';--IS NULL (null값을 찾습니다.)SELECT * FROM employeesWHERE manager_id IS NULL;SELECT * FROM employeesWHERE commission_pct IS NULL;SELECT * FROM employeesWHERE commission_pct IS NOT NULL;--AND, OR--AND가 OR보다 빠릅니다.SELECT * FROM employeesWHERE job_id = 'IT_PROG'OR job_id = 'FI_MGR'AND salary >= 6000;이렇게 조건을 주면 salary가 6000 이하인 숫자도 들어오게 된다.
--소괄호로 우선순위를 끌어올릴 수 있습니다.SELECT * FROM employeesWHERE (job_id = 'IT_PROG'OR job_id = 'FI_MGR')AND salary >= 6000;소괄호를 사용하여 우선 순위를 끌어올려 주면 된다.
--데이터의 정렬 (SELECT 구문의 가장 마지막에 옵니다.)SELECT * FROM employeesORDER BY hire_date ASC;SELECT * FROM employeesORDER BY hire_date DESC;SELECT * FROM employeesWHERE job_id = 'IT_PROG'ORDER BY first_name ASC;SELECT * FROM employeesWHERE salary >= 5000ORDER BY employee_id DESC;SELECT first_name, salary * 12 as payFROM employeesORDER 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 employeesWHERE 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;--TRUNCSELECT 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_dateFROM employees;SELECT first_name, hire_date,(sysdate - hire_date) / 7 AS weekFROM 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