본문 바로가기

Database/Oracle

(14)
ROWNUM, 행 제한 - ROWNUM SELECT * FROM (SELECT ROWNUM, MEMBERS.* FROM MEMBERS)WHERE ROWNUM BETWEEN 1 AND 5 - 중복 값 제거 SELECT DISTINCT AGE FROM MEMBERS
정규식 - 정규식 : 검색 패턴을 형성하는 문자열 정규식 예제 참조 사이트 : http://regexlib.com PHONE LIKE '^01[016-9]-\d{3,4}-\d{4}$' WHERE REGEXP_LIKE(first_name, '^Ste(vlph)en$') SELECT * FROM MEMBERS WHERE REGEXP_LIKE(SSN, '^\d{2}0[23]\d{2}-\d{7}$')
연산자 - 산술 연산자+, -, *, / SELECT AGE+10 FROM MEMBERS - 문자열 더하기 연산자|| SELECT NAME||​​'('||AGE||')' FROM MEMBERS​- 비교 연산자=, !=, ^=, , >, =
제약조건 - 엔티티 제약조건 (UNIQUE, PRIMARY KEY) CONSTRAINT 제약조건명 PRIMARY KEY(컬럼명) CREATETABLE NOTICES(SEQ VACHAR2(10) PRIMARY KEY, -- 기본키 제약 조건TITLE VARCHAR2(300) NOT NULL, -- NOT NULLWRITER VARCHAR2(50) NOT NULL UNIQUE, -- NOT NULL/UNIQUECONTEN VARCHAR2(4000),REGDATE DATE DEFAULT SYSDATE, -- 기본값 현재날짜HIT NUMBER DEFALT 0 -- 기본값 0) CREATETABLE NOTICES(SEQ VACHAR2(10) CONSTRAINT NOTICES_SEQ_PK PRIMARY KEY,TITLE V..
SEQUENCE TABLE - 시퀀스 테이블 생성CREATE SEQUENCE TEST_CODEMINVALUE 1 -- 최소값MAXVALUE 1000000 -- 최대값INCREMENT BY 1 -- 증가값START WITH 3 -- 시작값 [옵션]NOCACHE -- 일련번호를 호출할때 마다 다음값 알아내서 알려줌CACHE -- 일련번호를 미리 뽑아놨다가 알려줌NOCYCLE -- MAXVALUE가 다 찼을 때 에러 발생CYCLE -- MAXVALUE가 다 찼을 때 1부터 다시 시작 - 다음값 조회SELECT TEST_CODE.NEXTVAL FROM DUAL - 현재값 조회SELECT TEST_CODE.CURRVAL FROM DUAL - 시퀀스 삽입INSERT INTO TEST(CODE, TITL, CONTENT)VALUES(TEST_..
집계 함수 - 그룹별로 집계 SELECT MAJOR, COUNT(MID) FROM MEMBERS GROUP BY MAJOR; - 그룹별로 집계(함수 사용) SELECT SUBSTR(NAME, 1, 1), COUNT(MID) FROM MEMBERSGROUP BY SUBSTR(NAME, 1, 1) - WHERE 절에서는 집계 함수를 사용할 수 없음 SELECT SUBSTR(NAME, 1, 1), COUNT(MID) FROM MEMBERSWHERE COUNT(MID) < 10GROUP BY SUBSTR(NAME, 1, 1) -- GROUP BY를 끝낸후 조건 조회(조건에 집계함수가 필요한 경우)SELECT SUBSTR(NAME, 1, 1), COUNT(MID) FROM MEMBERSGROUP BY SUBSTR(NAME,..
서브쿼리 - 동적인 결과를 얻어야 하는 경우 / 구절의 순서를 바꿔야 하는 경우--()안을 먼저 실행 SELECT * FROM (SELECT * FROM MEMBERS ORDER BY NAME DESC)WHERE ROWNUM BETWEEN 1 AND 10 - 서브쿼리가 격자형 데이터를 반환하는 경우 : FROM 절에 사용 SELECT * FROM (SELECT * FROM MEMBERS ORDER BY NAME DESC)WHERE ROWNUM BETWEEN 1 AND 10 - 서브쿼리가 단일 값을 반환하는 경우 : 비교연산에 사용--동적인 값과 비교 SELECT * FROM MEMBERSWHERE AGE > (SELECT AVG(AGE) FROM MEMBERS) - 서브쿼리가 목록을 반환하는 경우 : 목록형 연산..
JOIN - INNER JOIN (1개 테이블) SELECT * FROMMEMBERS MINNER JOIN NOTICES N ON M.MID = N.WRITER - INNER JOIN (다중 테이블) SELECT * FROMMEMBERS MINNER JOIN NOTICES N ON M.MID = N.WRITERINNER JOIN COMMENTS C ON N.CODE = N.NOTICE_CODE - OUTER JOIN (LEFT : 왼쪽 테이블 컬럼 기준, RIGHT : 오른쪽 테이블 컬럼 기준, FULL : 기준없이 모든 컬럼)SELECT * FROMMEMBERS MLEFT OUTER JOIN NOTICES N ON M.MID = N.WRITER - OUTER JOIN (테이블 기준 설정)SELECT * FROM..