[DB:Oracle]SQL - 트랜잭션(Transaction)과 DML
트랜잭션(Transaction) 트랜잭션이란 DBMS 내의 논리적인 작업 단위를 말하며, 하나의 트랜잭션이 완료되어야만 작업이 저장된다. SQL은 크게 3가지 언어로 분류되는데, select와 insert, update, delete 구문을 포함하는 데이터 조작어(DML), create, alter, drop, truncate 구문을 포함하는 데이터 정의어(DDL), 그리고 grant, revoke 구문을 가지는 데이터 제어어(DCL)가 있다. 하나의 트랜잭션은 여러 개의 DML이나 하나의 DDL/DCL로 이루어진다. 트랜잭션이 진행되는 중, 즉 트랜잭션이 완료되기 전까지는 어떤 작업을 하든 실제 DB에 반영이 되지 않는다. 그래서 트랜잭션 도중에 SQL Plus에서 SQL Developer로 변경하는 ..
[DB:Oracle]SQL - 그룹 함수와 group by절
그룹 함수 ( - 집계 함수) sql에서 그룹 함수란, 행 그룹을 하나의 결과로 만들어 반환하는 함수다. 그 예시로는 avg, sum, count, max, min, stddev, variance 등이 있다. 마지막 두 개는 자주 쓰지 않기 때문에 앞의 함수들만 설명하자면, 이름에서 알 수 있듯 각각 평균, 총합, 개수, 최대, 최솟값을 구하는 함수다. 모든 그룹 함수는 조작 시 null값을 제외시키며, avg와 sum은 숫자 타입만 가능, min과 max, count는 모든 타입으로 가능하다. group by절, having절 이 그룹 함수가 select절의 컬럼들 중 포함되어 있을 때 group by절을 사용할 수 있다. group by절은 결과를 특정 그룹별로 묶이게 한다. 만약 나이를 기준으로 하..
[DB:Oracle]SQL - 단일 행 함수
sql 함수에는 단일 행 함수와 그룹 함수가 있다. 그중 단일 행 함수에는 5가지가 있는데, 문자함수는 문자 입력을 받고 문자 및 숫자 값을 반환하며, 숫자함수는 숫자 입력을 받아 숫자 값을 반환한다. 날짜함수는 날짜 데이터에 대해 실행되고, 변환함수는 데이터의 유형을 변환, 그리고 일반함수는 어디에든 사용 가능하다. 문자함수 문자함수도 2종류로 나눌 수 있다. 대소문자 변환함수(lower, upper, initcap)는 말 그대로 대소문자를 바꾸고, 문자 조작 함수에는 아래와 같은 것들이 있다. concat(expr1, expr2) : 두 인수를 연결해서 문자열로 반환, ||와 같은 역할이며 중첩 가능 substr(expr, 시작위치, 개수) : 문자열에서 시작 위치부터 개수만큼 문자를 반환, 위치 음..
[DB:Oracle]SQL - where절, order by절
SQL에서 select 구문은 select, from, where, order by 절로 나뉜다. select와 from 절은 필수이고, 선택사항인 where 절은 조건을, order by 절은 정렬 기준을 나타낸다. where 절 where절은 from절 밑에 작성하는데, 좌변에 열 이름, 우변에 리터럴 값을 적는다. 문장이 너무 길어지게 아래줄에 and나 or로 추가 작성도 가능하다. 이 where절에 올 수 있는 연산자로는 단일행 비교 연산자(=, >, =, 와