DB/Oracle

DB/Oracle

[Oracle DB] 그룹 함수

그룹 함수 - 하나의 컬럼값을 그룹 기준으로 삼아 여러 행들을 하나로 합쳐 조회하는 것 - 그룹의 기준이 되는 컬럼을 GROUP BY절을 통해 선택할 수 있다. - 그룹 함수를 사용하면 일반 컬럼은 함께 출력할 수 없다. - 그룹 대상이 되는 컬럼과 그룹 함수의 결과만 출력 가능하다. SUM(column) : 해당 컬럼의 총합을 구해주는 그룹 함수 SELECT SUM(salary) FROM employees; -- 부서 번호별 월급의 총합 SELECT department_id, SUM(salary) FROM employees GROUP BY department_id; -- 직책별 월급의 총합 SELECT job_id, SUM(salary) FROM employees GROUP BY job_id; -- 같..

DB/Oracle

[Oracle DB] CASE

CASE - DECODE()는 컬럼과 정확하게 일치하는 케이스만 매핑할 수 있었다. - CASE 문법은 해당 컬럼에 원하는 조건을 적용할 수 있다. CASE WHEN 조건절 THEN 출력할 것 ... ELSE 기본값 END -- ex: 모든 종류의 CLERK을 3퍼센트 인상하고 싶은 경우 SELECT first_name, job_id, salary AS before_salary, CASE WHEN job_id = 'IT_PROG' THEN salary * 1.1 WHEN job_id LIKE '%_CLERK' THEN salary * 1.03 ELSE salary END AS after_salary FROM employees;

DB/Oracle

[Oracle DB] DECODE

DECODE - 자바의 switch-case와 유사하다. - DECODE(column, case, value, ...) SELECT first_name, department_id FROM employees; SELECT DISTINCT department_id FROM employees; SELECT * FROM departments; SELECT first_name, decode(department_id, 90, '익스큐티브', -- case 90; 100, '파이낸스', -- case 100; 110, '어카운팅', -- case 110; 80, '세일즈', -- case 80; '아직 디코드하지 않음') -- default AS 한글부서명 FROM employees;

DB/Oracle

[Oracle DB] 집합

SELECT * FROM employees WHERE first_name LIKE '%a%'; -- 66명 SELECT * FROM employees WHERE last_name LIKE '%o%'; -- 20명 -- INTERSECT : 교집합 SELECT * FROM employees WHERE first_name LIKE '%a%' INTERSECT SELECT * FROM employees WHERE last_name LIKE '%o%'; -- 20명 -- UNION : 합집합 SELECT * FROM employees WHERE first_name LIKE '%a%' UNION SELECT * FROM employees WHERE last_name LIKE '%o%'; -- 76명 -- UNIO..

DB/Oracle

[Oracle DB] WHERE

SELECT 컬럼명 FROM 테이블명 WHERE 조건절; - SELECT문 뒤에 WHERE절을 추가하여 해당 조건을 만족하는 행만 조회할 수 있다. - 조건에 사용되는 데이터는 대소문자에 영향을 받으므로 주의해야 한다. - 오라클의 비교 연산자와 논리 연산자를 사용해 조건절을 만들 수 있다. 비교 연산자 = : 같으면 true, (==은 안된다.) , = : 비교 !=, , ^= : 다르면 true 논리 연산자 AND, OR, NOT SELECT * FROM employees WHERE job_id = 'FI_ACCOUNT'; -- 숫자 타입 비교 SELECT * FROM employees WHERE salary >= 10000; SELECT * FROM employees WHERE salary = 'T..

DB/Oracle

[Oracle DB] SELECT

SELECT 컬럼명 FROM 테이블명; - 원하는 테이블의 원하는 컬럼을 조회할 수 있는 쿼리문 - 여러 컬럼을 조회할 때는 ,를 사용해 구분한다. - 컬럼명 자리에 *를 쓰는 것은 모든 컬럼을 의미한다. - 컬럼명과 테이블명은 대소문자를 구분하지 않는다. - 쿼리문과 명령어도 대소문자를 구분하지 않는다. - 하지만, 데이터는 대소문자를 구분한다. SELECT first_name FROM employees; SELECT first_name, salary FROM employees; SELECT * FROM employees; HR 계정에 미리 만들어져 있는 연습용 테이블들 SELECT * FROM tab; SELECT * FROM countries; -- 나라 정보 테이블 SELECT * FROM emp..

DB/Oracle

[Oracle DB] 데이터 베이스(Data Base)

데이터베이스 (Database, DB) - 아주 효율적인 메모장 - 데이터 창고 - 데이터를 효율적으로 저장하고 검색할 수 있는 데이터 저장 전문 프로그램 - 단순 파일 시스템의 많은 문제점과 한계들을 극복하기 위해 만들어진 프로그램 (오목 전적 저장 파일의 문제점 등) 파일 시스템의 문제점 - 데이터 수정 시 불일치를 유발할 수 있다. - 다수 사용자가 하나의 파일에 동시에 접속할 수 없다. - 중복 데이터를 필요 이상으로 많이 저장하게 된다. - 보안을 따로 구현해야 한다. - 파일 복구 기능을 따로 구현해야 한다. DBMS (database Management System) - 데이터베이스를 관리하는 프로그램 - 데이터베이스는 데이터가 보관되는 장소이고 그 데이터베이스를 다루는 프로그램이 DBMS이..

DB/Oracle

[Oracle DB] 주석 및 기본

주석 1. -- 한 줄 주석 2. /* 여러 줄 주석 */ 단축키 - CTRL + ENTER : 명령어 하나 실행하기 - F5 : 모든 명령어 실행하기 계정 - HR : 연습용 계정 - SYSTEM, SYS : 관리자 계정 SELECT * FROM all_users; -- 계정 확인하기 명령어 Tab SELECT * FROM tab; -- 현재 계정이 가진 테이블 보기

로아다
'DB/Oracle' 카테고리의 글 목록 (3 Page)