SELECT 문법에서 DBMS에 따라 WHERE에 정규식을 사용하여 데이터를 조회할 수 있다.

 

오라클의 경우 REGEXP_LIKE 함수를 MySQL의 경우 REGEXP 함수를 사용한다.

 

 

ORACLE 10G

SELECT * FROM [테이블명] WHERE REGEXP_LIKE([컬럼명], [정규식]);
SELECT * FROM [테이블명] WHERE NOT REGEXP_LIKE([컬럼명], [정규식]);

 

ORACLE 11G에서는 REGEXP_COUNT 함수가 추가 되었다.

SELECT * FROM [테이블명] WHERE REGEXP_COUNT([컬러명], [정규식] ) > 0;

 

사용 예시

SELECT *
FROM MEMBER
WHERE REGEXP_LIKE(NAME, '[a-z] | [A-Z]');

SELECT *
FROM MEMBER
WHERE NOT REGEXP_LIKE(NAME, '[a-z] | [A-Z]');

SELECT *
FROM MEMBER
WHERE REGEXP_COUNT(NAME, '[a-z] | [A-Z]') > 0;

SELECT *
FROM MEMBER
WHERE REGEXP_COUNT(NAME, '[a-z] | [A-Z]') < 0;

 


MySQL

SELECT * FROM [테이블명] WHERE [컬럼명] REGEXP([정규식] );
SELECT * FROM [테이블명] WHERE [컬럼명] NOT REGEXP([정규식] );

 

사용 예시

SELECT *
FROM MEMBER
WHERE NAME REGEXP('[a-z] | [A-Z]');

SELECT *
FROM MEMBER
WHERE NAME NOT REGEXP('[a-z] | [A-Z]');

 

'데이터베이스' 카테고리의 다른 글

[SQL] 문자열 합치기  (0) 2021.01.15
[SQL]Oracle 인덱스 용량 계산  (0) 2021.01.14
[SQL] 기본 SQL  (0) 2021.01.11
[SQL] 매주 특정 요일의 날짜를 SQL로 계산하기  (0) 2020.12.23
[SQL Template] paging, grid template  (0) 2020.02.04

+테이터베이스 

    - 데이터베이스 목록보기

    show databases;

 

    - 테이터베이스 생성

    create database [테이터베이스명];

 

    - 테이터베이스 삭제

    drop database [테이터베이스명];

 

    - 데이터베이스 사용하기

    use [테이터베이스명];



+테이블

    - 테이블 생성

    create table [테이블명]{

        [컬럼명] [테이터타입] [제약조건]

    };

 

    - 테이블 삭제

    drop table [테이블명];

 

    - 테이블 조회 

    select [컬럼명]

    from [테이블명];

 

    - 데이터 추가

    insert into [테이블명] ( [컬럼명] )

    values ( [데이터] );

 

    - 데이터 삭제

    delte from [테이블명] 

    where [조건];

 

    - 데이터 수정

    update [테이블명]

    set [컬럼명] = [데이터]

    where [조건];



INSERT INTO TABLE_NAME VALUES('COLUMN_1','COLUMN_2','COLUMN_3');


일반적인 INSERT문을 사용하면서 COLUMN_1에 자동으로 증가하는 값으로 INSERT를 해야되는 경우,



먼저,


SELECT MAX(COLUMN_1) FROM TABLE_NAME



위와 같이 컬럼의 최대값을 획득하면서 +1 하면서 입력이 되어야 한다.


따라서, 최종적으로


INSERT INTO TABLE_NAME

VALUES ( (SELECT MAX(COLUMN_1) FROM TABLE_NAME) + 1

             , 'COLUMN_2'

             , 'COLUMN_3');


위와 같은 형태로 입력하여, COLUMN_1에 자동으로 최대값을 입력하면서 INSERT가 된다.






CLOB 컬럼에 많은 내용이 저장 되어있을 경우,


SELECT문을 사용하여도 모든 내용이 표시되지 않는다.


그 이유는, 오렌지에 Default로 사이즈가 80 Byte로 잡혀있기 때문이다.


따라서, 사이즈를 변경해야만 많은 내용을 표기 할 수 있다.


Option -> Options -> Database 탭으로 이동


Long Size 항목의 값을 변경한다.


최대 32000 Byte까지 설정 가능하다.


32000 Byte를 넘을 경우, Loader를 사용하여 엑셀로 출력해볼것을 권함.



추가 LOB 설명

오라클 8 버전 이후 부터 제공되는 LOB 타입이 있다.


LOB(Large Object) 타입은 대용량 데이터를 저장하기 위한 타입이며, 종류는 아래와 같다.


BLOB : unstructured binary large object를 저장한다.

CLOB : 싱글-바이트 또는 멀티바이트 문자 데이터를 저장한다.
NCLOB : unicode 데이터를 저장한다.
BFILE  : 데이터베이스 외부에 파일형태로 저장한다.




pgAdmin3 내용 추가

- pgAdmin의 경우, Query Editer에서 변경하지 않고, pdAdmin 프로그램에서 변경하여야 한다.

File -> Options -> Query Tool -> Query Editor 로 이동 

Max. characters per column 값이 256으로 세팅되어있고, 본인이 원하는 값으로 변경 하면 된다.
(최대값은 2147483647 인것 같음 )





'데이터베이스' 카테고리의 다른 글

[SQL Template] paging, grid template  (0) 2020.02.04
[SQL] INSERT VALUES((SELECT))  (0) 2016.06.03
MariaDB Connector  (0) 2014.11.17
[iBatis] 부등호 처리  (0) 2012.11.09
[SQL] INSERT INTO SELECT  (0) 2012.07.02