Programming/Oracle

Programming/Oracle

[Oracle] 릴레이션 (Relation)

💡릴레이션 릴레이션(Relation)은 행과 열로 구성된 테이블이다. 따라서 릴레이션이라고 하면 표를 떠올리면 된다. 이때 행과 열은 단순히 구조만 나타내는 게 아니라 서로 연관되어 있는데, 서로 관계있는 것들을 모아놓았기에 릴레이션이라는 표현을 사용한 것이다. 릴레이션 스키마와 인스턴스 회원 테이블에 주황색으로 컬럼이 정의되어 있다. 이를 스키마라고 한다. 스키마에 구성된 하나하나를 속성(어트리뷰트)라고 한다. 속성은 컬럼의 정보이다. 표의 행(레코드)에 데이터를 집어 넣는데, 이를 인스턴스라고 부르기도 하고, 이론적으로는 튜플이라는 표현을 쓰기도 한다. 튜블, 레코드, 로우, 인스턴스 이 말을 모두 같은 말이다. 어디에서 이 말을 만들어 냈는지에 대한 차이가 있을 뿐이다. 각 속성이 어떤 값을 가질 ..

Programming/Oracle

[Oracle] 형변환 함수

💡형변환 함수 to_char(숫자): 숫자를 문자로 변환 to_char(날짜): 날짜를 문자로 변환 to_number(문자): 문자를 숫자로 변환 to_date(문자): 문자를 날짜로 변환 숫자형과 문자형, 무엇이 다를까? SELECT weight, to_char(weight), length(to_char(weight)), --같은 구문 length(weight), --같은 구문 substr(weight, 1, 1), weight || 'kg' FROM tblcomedian; 숫자형인 경우 왼쪽 상단에 '123', 문자형인 경우 'ABC'가 있는 것을 확인할 수 있다. 그리고 숫자는 우측 정렬, 문자는 좌측 정렬이 되어 있다. length가 암시적인 형변환으로 숫자형인 weight를 문자형으로 변환하여 ..

Programming/Oracle

[Oracle] 문자열 함수: upper(), lower(), initcap(), substr(), length(), instr(), lpad(), rpad(), trim(), ltrim(), rtrim(), replace(), decode()

💡문자열 함수 upper(), lower(), initcap() varchar2 upper(컬럼) varchar2 lower(컬럼) varchar2 initcap(컬럼) upper, lower, initcap 함수는 대소문자 반환 함수라고 한다. 위 함수는 주로 검색에 사용한다. upper, lower, initcap 함수의 사용 SELECT first_name, upper(first_name), lower(first_name) FROM employees; SELECT 'abc', initcap('abc'), initcap('aBC') FROM dual; initcap 함수는 첫 문자를 대문자로 반환할 뿐 아니라, 첫 문자를 제외한 나머지 문자는 소문자로 변환한다. 마치 파스칼 표기법처럼 보이게 할 때 ..

Programming/Oracle

[Oracle] 숫자 함수: round(), floor(), trunc(), mod()

💡숫자 함수 round() number round(컬럼명): 정수 반환 number round(컬럼명, 소수 이하 자릿수): 실수 반환 round 함수는 반올림을 해주는 함수이다. round 함수의 사용 SELECT 3,5678, round(3.5678), round(3.5678, 0), round(3.5678, 1), round(3.5678, 2) FROM dual; 원하는 자릿수의 반올림된 값을 확인할 수 있다. round의 소수 이하 자릿수를 지정하지 않자 실수가 정수로 반올림되어 출력되었다. SELECT round(avg(basicpay)) FROM tblinsa; --1556527 소수 이자 자릿수가 긴 값의 경우 round 함수를 이용해 깔끔하게 출력할 수 있다. floor(), truc() ..

Programming/Oracle

[Oracle] dual 테이블

💡dual 테이블 SELECT * FROM dual; dual 테이블은 시스템 테이블(오라클에서 만든 테이블)로, 컬럼이 하나뿐이다. dual은 1행 1열짜리 테이블이라는 것을 의미하며, 여기에 들어 있는 이 데이터는 아무 의미가 없다. dual 테이블의 사용 SELECT sysdate FROM tblinsa; sysdate는 날짜/시간을 출력한다. 그런데 특정 테이블에서 이를 출력하려고 하면 select 데이터의 개수만큼 출력이 된다. 이를 한 번 출력하려면 WHERE num = 1001; 을 붙여주어야 한다. 이럴 때 사용할 수 있는 게 dual 테이블이다. SELECT sysdate FROM dual; 원하는대로 날짜가 한 번만 출력된 것을 확인할 수 있다. 이처럼 dual 테이블의 행이 하나라는 ..

Programming/Oracle

[Oracle] 집계 함수: count(), sum(), avg(), max(), min()

💡집계 함수 집계 함수(Aggregation Function)는 여러 행 또는 테이블 전체 행으로부터 결괏값을 반환하는 함수를 의미한다. 집계 함수 사용시 주의할 점 1. SQL Error [937] [42000]: ORA-00937: not a single-group group function SELECT count(*) FROM tblInsa; --직원수 SELECT name FROM tblInsa; --직원명 SELECT count(*), name FROM tblInsa; 위와 같은 데이터가 있다는 가정 하에 직원들 이름과 총 직원수를 동시에 가져오려고 할 때, 에러가 발생했다. 에러는 싱글 그룹 함수가 아니라는 메시지가 출력되었다. 이런 에러가 발생하는 이유는 컬럼 리스트에서는 집계 함수(coun..

Programming/Oracle

[Oracle] SELECT문: ORDER BY절

💡ORDER BY절 [WITH ] SELECT column_list FROM table_name [WHERE search_condition] [GROUP BY group_by_expression] [HAVING search_condition] [ORDER BY order_expression [ASC|DESC]] SELECT 컬럼리스트: 3. 컬럼 지정 (보고 싶은 컬럼만 가져오기) > Projection FROM 테이블: 1. 테이블 지정 WHERE 조건: 2. 조건 지정 (보고 싶은 행만 가져오기) > Selection ORDER BY 정렬기준: 4. 순서대로 정렬 ORDER BY절의 사용 order by 컬럼명 [ASC|DESC] order by절은 위와 같은 형태로 작성하며, 생략할 경우 ASC로 ..

Programming/Oracle

[Oracle] SELECT문: WHERE절

💡WHERE절 [WITH ] SELECT column_list FROM table_name [WHERE search_condition] [GROUP BY group_by_expression] [HAVING search_condition] [ORDER BY order_expression [ASC|DESC]] SELECT 컬럼리스트: 3. 컬럼 지정 (보고 싶은 컬럼만 가져오기) > Projection FROM 테이블: 1. 테이블 지정 WHERE 조건: 2. 조건 지정 (보고 싶은 행만 가져오기) > Selection WHERE은 조건을 가지고 있는 절이다. SELECT절에는 실행순서가 정해져 있는데, 이때 실행순서는 코딩 순서가 아니라 FROM(1) > WHERE(2) > SELECT(3) 순서이다. W..

Isaac-Christian
'Programming/Oracle' 카테고리의 글 목록 (6 Page)