Programming/SQL

[SQL 입문] 데이터 타입, PROJECTION 연산

aram 2022. 8. 18. 01:57

* 데이터 타입(column type)

문자열 CHAR(고정길이 문자열),
VARCHAR2(가변길이 문자열)
char(10) -- 'A          '로 저장되고 'A         '와 비교할때 False리턴
varchar2(10) 'A' - 뒤의 불필요한 공백은 제거 : 메모리 절약
정수 NUMBER(가변숫자) number(5)  --정수5자리
실수(소수) NUMBER(가변숫자, 소수점 00자리),
FLOAT(이진수 기준)
number(8, 2)  --정수 6자리, 소수점 2자리의 실수
날짜시각 DATE, TIMESTAMP date  --xx세기 xx년 xx월 xx일 xx시 xx분 xx초 numeric으로 저장됨

-- number 컬럼 : 컬럼들 간에 산술연산자(+. -, *, /)

-- date 컬럼 : +n, -n, +n/24, -n/24, +n/1440, date-date

-- varchar2 컬럼 : 결합 연산자 || > 모든 컬럼에 대해서  문자열로 변환

 

* PROJECTION 연산

select * | [distinct] 컬럼 연산자 값, column, column, .... | 표현식  [as Alias]
from tableName;

 

-- 테이블에 정의된 컬럼 순서와 무관하게 컬럼순서 검색 가능

더보기
select ename, sal, job --지정한 순서대로 검색됨
from emp;

 

-- dual table
: 단순 연산 결과 반환 받고자 할 때,
  sysdate
(시스템의 오늘 날짜), user함수의 결과를 반환 받고자 할 때,
  from절에 사용하는 테이블

select sysdate from dual; --dual : SYS소유의 테이블인데, public으로 select 권한을 받음

-- * = all

desc dual
select * from dual;

 

-- ' ' ' : ' (싱글쿼테이션) 그대로 출력
-- Q : 대체 인용 연산자 - 시작과 끝이 동일한 구분자 사용

select '''A''' from dual; 
  -- 가운데 ' 을 출력하기 위해 ''을 양쪽을 감쌈

select q'[ ' A ' ]' from dual;
   -- Q의 구분자 = [] >> '의 양쪽으로 공백 표시
   -- 가장 끝의 '' = | ' A ' 라는 문자열 표시

select q'# 'A' #' from dual;
    -- Q의 구분자 = ##
    -- ' 의 바깥쪽 공백을 포함해서 출력

 

Q>> 테이블 생성

create table test (name varchar2(10));
insert into test values ('ABCDE');
insert into test values ('A___E');
insert into test values ('A%%%E');
select * from test;

 

-- [NOT] LIKE '검색방법' [ESCAPE]: 검색방법의 동일한 문자를 찾은 후 반환

Q1 > %가 포함된 이름 검색

select * from test
where name like '%\%%' escape '\';
   -- 양쪽 %% : 값에서 0 이상의 문자가 존재한다는 걸 표시\
   -- escape '\' : 이스케이프 문자 = \ 라는 걸 명시
   -- 가운데 \% : % 문자 그 자체를 의미 >> 이걸(%) 포함하는 문자를 검색하라

Q2 > _이 포함된 이름 검색

select * from test
where name like '%\_%' escape '\';

 

 

[SQL 입문] PROJECTION 연산 : 날짜

* 날짜 format의 디폴트값 변경[ALTER] alter session set nls_date_format = 'RR/MM/DD'; --기존설정 alter session set nls_date_format = 'YYYY/MM/DD HH24:MI:SS'; --초까지 나오도록 변경 더보기 -- session..

dailystudy.tistory.com

 

* 내용참고&출처 : 태그의 수업을 복습 목적으로 정리한 내용입니다.