Oracle #14. 산술연산자 ~ #15.비교연산자

이경영·2023년 2월 6일
0

오라클

목록 보기
7/43

14. 산술연산자

  • +,-,*,/
  • 공지사항의 조회수를 조회하시오. 단 기존값에 1을 더해서 조회하시오
select hit+1 as hit from notice; //컬럼명이 "HIT"가 되도록 
select 1+'3' from dual; //더미테이블 제공. 답이 4가 나옴. 
//왜? 덧셈은 숫자만 더해주는 연산자임.
  • || : 문자열을 더해주는 연산자
select 1 || '3' from dual; // 답 13나옴
select 1+'a' from dual; //number을 바꿀수 없다는 형태의 오류 
  • 모든 회원의 이름을 조회하시오. 단 이름은 ID를 붙여서 나타내시오.
select name || '(' || id || ')' as name from member
select name || '(' || id || ')' name from member

15. 비교연산자

  • =, !=, ^=, <>, >, <, >=, <=, IS NULL, IS NOT NULL

  • !=, ^=(ORACLE), <>(ANSI SQL) 같지않다는 연산자

  • 게시글 중에서 작성자가 'newlac'인 게시글만 조회하시오

select * from notice where writer_id ='newlac';
  • 게시글 중에서 조회수가 3이 넘는 글만 조회하시오
select * from notice where hit > 3;
  • 게시글중에 내용을 입력하지 않은 게시글을 조회하시오.
    select * from notice where CONTENT IS NULL;

16. 관계연산자

  • NOT, AND, OR, BETWEEN, IN
  • 조회수가 0,1,2인 게시글을 조회하시오
select * from notice where 0 <= hit and hit <= 2; //포함되지않을때
select * from notice where hit between 0 and 2; // 포함
  • 조회수가 0,2,7인 게시글을 조회하시오.
select * from notice where hit in (0, 2, 7);

17. 패턴 비교 연산자

  • LIKE, %, _
  • 회원중에서 '박'씨 성을 조회하시오.
select * from member where name LIKE '박%';
  • 회원중에서 '박'씨이고 이름이 외자인 회원을 조회하시오.
select * from member where name LIKE '박_';
  • 회원중에서 박씨성을 제외한 회원을 조회하시오
select * from member where name NOT LIKE '박%';
  • 회원중에서 이름에 '도'자가 들어간 회원을 조회하시오.
select * from member where name NOT LIKE '%도%';

18. 정규식을 이용한 패턴연산

  • 검색 패턴 기호
  • 전화번호를 제목에 달고있는 게시글이 있는지?
select * from notice where REGEXP_LIKE(title,'01[016-9]-\d{3,4}-\d{4}');
  • 자리수를 3~4글자로 제한해야한다.
    ^01[016-9]-\d{3,4}-\d{4}$
  • [] : 하나의 글자를 대변
  • \d : decimal digit
  • {} : 4번, 3번
  • ^: 시작, $: 끝

전화번호만 가지고 있는 컬럼에서는 ^01[016-9]-\d{3,4}-\d{4}$
제목에 전화번호가 아니라 다른것과 함께 들어와있는경우 01[016-9]-\d{3,4}-\d{4}

19. 문자열 비교를 위한 정규식

  • 이메일 관련 정규식
    newlec@nana.com
    \D\w*@\w*.(org|net|com)

문자 @ . org net com

[0-9a-zA-Z] : 한 자표현
\w : 알파벳, 숫자기호 _까지 포함
\D : [^0-9] : 0-9까지가 아닌걸로만 올수있음.

  • : 문자 하나이상 올수 있음
profile
꾸준히

0개의 댓글