DB/오라클(Oracle) 19

[Oracle] 오라클 NULL 관련 함수(NVL, NVL2, NULLIF, COALESCE)

NULL이란? 아직 정의되지 않은 값으로 0 또는 공백과 다르다. (0은 숫자, 공백은 문자) 빈 값 대신 미정 값을 부여할 때 사용한다. PK, NOT NULL 제약조건이 있는 칼럼에는 NULL을 넣을 수 없다. WHERE절에서는 IS NULL, IS NOT NULL을 통해 조건을 줄 수 있다. -- NICKNAME이 NULL인 데이터 조회 SELECT NICKNAME FROM PLAYER WHERE NICKNAME IS NULL; -- NICKNAME이 NULL이 아닌 데이터 조회 SELECT NICKNAME FROM PLAYER WHERE NICKNAME IS NOT NULL; NVL(표현식1, 표현식2) 표현식 1의 값이 NULL이면 표현식 2의 값을 출력하는 함수이다. SELECT NICKNAM..

[Oracle] 오라클 LIKE 사용법

우리는 가끔 특정 문자를 포함한 데이터를 찾고 싶을 때가 있다. 오라클에서는 LIKE를 이용하면 간단하게 해결된다. LIKE 사용법 SELECT PLAYER_NAME FROM PLAYER WHERE PLAYER_NAME LIKE '김%'; 와일드카드(%)는 모든 문자가 와도 상관없다. LIKE '김%'를 통해 김씨로 시작하는 플레이어 이름을 찾았다. SELECT PLAYER_NAME FROM PLAYER WHERE PLAYER_NAME LIKE '김_'; 특정 문자열 자릿수를 제한해서 찾고 싶다면 언더바(_)를 사용하면 된다. LIKE '김_'를 통해 김씨로 시작하지만 외자인 플레이어 이름을 찾았다. SELECT PLAYER_NAME FROM PLAYER WHERE PLAYER_NAME NOT LIKE ..

[Oracle] 오라클 문자열 합치기(CONCAT, ||)

오라클에서 CONCAT과 ||를 이용하여 문자열 합치기를 할 수 있다. CONCAT 사용법 SELECT CONCAT(PLAYER_NAME, NICKNAME) FROM PLAYER; PLAYER_NAME 칼럼과 NICNAME 칼럼을 합쳤다. 근데 칼럼 간 데이터 구분이 힘들어 가독성이 안 좋다. 칼럼 사이에 공백을 넣어보자. SELECT CONCAT(CONCAT(PLAYER_NAME, ' '), NICKNAME) FROM PLAYER; 공백을 주기 위해서 CONCAT을 두 번 사용해야 한다. 만약, 추가해야 할 문자열이 많을수록 불편할 것이다. 이런 불편함을 해소하기 위해 ||이 존재한다. || 사용법 SELECT PLAYER_NAME || ' ' || NICKNAME FROM PLAYER ||을 사용하면..

[Oracle] 오라클 별칭(AS) 사용법

오라클에서는 AS를 이용해 별칭을 부여할 수 있다. AS 사용법 SELECT PLAYER_ID AS 선수번호, PLAYER_NAME 선수이름 FROM PLAYER; SELECT 절에서는 AS 뒤에 별칭을 작성할 수 있으며 생략가능하다. SELECT PLAYER_ID AS "선수 번호", PLAYER_NAME 선수이름 FROM PLAYER; 만약 별칭에 공백을 주고 싶으면 큰따옴표(")를 붙여주면 된다. SELECT P.PLAYER_NAME "플레이어 이름", T.TEAM_NAME "팀", P.TEAM_ID "팀아이디" FROM PLAYER P, TEAM T; FROM절에서는 한 칸 띄우고 작성하면 별칭을 사용할 수 있다. 여기서 알아야 하는 것은 SELECT절처럼 AS는 붙일 수 없다. 추후 배우게 될 ..

오라클 TCL(COMMIT, ROLLBACK, SAVEPOINT)

TCL이란? TCL(Transaction Control Language)은 트랜잭션 제어를 위해 사용한다. 여기서 말하는 트랜잭션은 데이터 처리의 한 단위이다. 즉, 다수의 SQL문을 하나의 논리적인 작업 단위로 보는것이다. 트랜잭션 특성 원자성(Automicity) : 트랜잭션에 정의된 연산들은 모두 성공적으로 실행되던지 아니면 전혀 실행되지 않은 상태로 남아 있어야 한다. (= All or Nothing) 일관성(Consistency) : 트랜잭션이 실행되기 전의 데이터베이스 내용이 잘못되어있지 않다면 실행된 이후에도 데이터베이스 내용에 잘못이 있으면 안 된다. 고립성(Isolation) : 트랜잭션이 실행되는 도중에 다른 트랜잭션의 영향을 받아 잘못된 결과를 만들어서는 안 된다. 지속성(Durabi..

오라클 DML(INSERT, SELECT, UPDATE, DELETE)

DML이란? DML(Data Manipulation Language)은 데이터 조작어이다. 종류로는 INSERT(데이터 삽입), SELECT(데이터 조회), UPDATE(데이터 수정), DELETE(데이터 삭제)가 있다. 예제용 테이블(TBL_STUDENT) 생성 CREATE TABLE TBL_STUDENT( ID NUMBER, NAME VARCHAR2(100), MAJOR VARCHAR2(100), GENDER CHAR(1) DEFAULT 'W' NOT NULL CONSTRAINT BAN_CHAR CHECK(GENDER IN('M', 'W')), CONSTRAINT STD_PK PRIMARY KEY(ID) ); 예제를 위해 TBL_STUDENT 테이블을 생성했다. ID, NAME, MAJOR, GEND..

오라클 DDL(CREATE, ALTER, RENAME, TRUNCATE, DROP)

DDL이란? DDL(Data Definition Language)은 데이터 정의어로 테이블 조작 및 제어 관련 쿼리문이다. 종류로는 CREATE, ALTER, RENAME, TRUNCATE, DROP이 있다. 명령어를 수행하자마자 자동 COMMIT이 되어 바로 반영되는 특성이 있다. 즉, ROLLBACK을 통한 실행 취소가 불가능하여 사용에 주의하여야 한다. CREATE 테이블 생성 CREATE TABLE 테이블명 ( 컬럼명1 데이터타입(SIZE) [DEFAULT 기본값] [제약조건], 컬럼명2 데이터타입(SIZE) [DEFAULT 기본값] [제약조건], 컬럼명3 데이터타입(SIZE) [DEFAULT 기본값] [제약조건] ); CREATE TABLE TBL_CAR( ID NUMBER, BRAND VARC..

오라클 테이블 생성(CREATE TABLE, CONSTRAINT, COMMENT)

오라클 테이블 생성(CREATE TABLE) 오라클에서 테이블을 생성하기 위해서는 CREATE TABLE 명령어를 사용한다. CREATE TABLE 테이블명 ( 컬럼명 데이터타입(SIZE) [DEFAULT 기본값] [제약조건] ); CREATE TABLE 명령어의 형태이다. ▶ 테이블명 / 컬럼명 문자(영문, 한글)로 시작해야한다. 문자, 숫자, 특수문자(_, #, $)만 입력가능하다. ▶ 데이터타입(자료형) 데이터를 효율적으로 처리하기 위해 식별하는 분류이다. 오라클 데이터타입(Data Type) 정리 데이터타입(Data Type) 이란? 자료형으로도 불리며 프로그래밍 언어에서 실수치, 정수, 불린 등 여러 종류의 데이터를 식별하는 분류이다. 데이터를 효율적으로 처리하기 위해 적절한 데이터타입 foco..

오라클 데이터타입(Data Type) 정리

데이터타입(Data Type) 이란? 자료형으로도 불리며 프로그래밍 언어에서 실수치, 정수, 불린 등 여러 종류의 데이터를 식별하는 분류이다. 데이터를 효율적으로 처리하기 위해 적절한 데이터타입을 선정할 필요가 있다. 오라클에서 제공하는 데이터타입은 무엇이 있는지 알아보자. 문자 데이터타입 데이터타입 설명 CHAR(n) 고정길이 문자 최대 2000byte 디폴트 값은 1byte VARCHAR2(n) 가변길이 문자 최대 4000byte 디폴트 값은 1byte NCHAR(n) 고정길이 유니코드 문자(다국어 입력가능) 최대 2000byte 디폴트 값은 1byte NVARCHAR(n) 가변길이 유니코드 문자(다국어 입력가능) 최대 2000byte 디폴트 값은 1byte LONG 가변길이 문자 최대 2GB 테이블..