본문 바로가기

전체 글

(123)
제약조건 - 엔티티 제약조건 (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..
기타 함수 ● 조건에 따른 값 선택하기 DECODE(기준깂, 비교값, 출력값, 비교값, 출력값) SELECT DECODE(GENDER, '남성', 1, 2) FROM MEMBERS;SELECT DECODE(SUBSTR(PHONE, 1, 3),'011,'SK','016','KT','기타') FROM MEMBERS;
NULL 관련 함수 ● 반환 값이 NULL일 경우에 대체 값을 제공하는 NVL(NULL, 대체값) 함수 SELECT NVL(AGE, 0) FROM MEMBERS; ● NVL에서 조건을 하나 더 확장한 NVL2(입력값, NOTNULL 대체값, NULL대체값) 함수 SELECT NVL2(AGE, 100/AGE, 0) FROM MEMBERS; ● 두 값이 같은 경우 NULL 그렇지 않은 경우 첫 번째 값 반환 NULLIF(값1, 값2) 함수 SELECT NULLIF(AGE, 19) FROM MEMBERS;
변환 함수 ● NUMBER 형식을 문자열(VARCHAR2)로 변환 TO_CHAR(NUMBER) SELECT TO_CHAR(12345678, '$99,999,999,999.99') FROM DUAL; - 숫자 길이보다 길어야 함. 포맷문자 설명 9 숫자 0 빈자리를 채우는 문자 $ 앞에 $ 표시 , 천 단위 구분자 표시 . 소수점 표시 - 공백 없애고 출력SELECT TRIM(TO_CHAR(1234567.3, '9,999,999,999.99')) || '원' FROM DUAL; ● DATE 형식을 문자열(VARCHAR2)로 변환 TO_CHAR(DATETIME) SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') FROM DUAL; 포맷문자설명 YYYY/RRRR/YY/YEAR년도표시..