LPAD() Byte 를 확보하여 왼쪽부터 문자로 채우는 기능을 가진 함수 SELECT 'ORACLE' "COL1" , LPAD('ORACLE', 10. '*') "COL2" FROM DUAL; --==>> ORACLE****ORACLE 1 10Byte 공간을 확보(두 번째 파라미터) 2 확보한 공간에 ’ORACLE’문자열은 담는다(첫 번째 파라미터) 3 남아있는 Byte 공간을 왼쪽부터 세 번째 파라미터 값으로 채운다. RPAD() Byte를 확보하여 오른쪽부터 문자로 채우는 기능을 가진 함수 SELECT 'ORACLE' "COL1" , RPAD('ORACLE', 10. '*') "COL2" FROM DUAL; --==>> ORACLEORACLE**** LTRIM() 첫 번째 파라미터 값에 해당하는 문..
LENGTH() 글자 수 / LENGTHB() 바이트 수 SELECT ENAME "COL1" , LENGTH(ENAME) "COL2" , LENGTHB(ENAME) "COL3" FROM EMP; --==>> /* SMITH55 : FORD44 MILLER66 */ INSTR() SELECT 'ORACLE ORAHOME BIORA' "COL1" , INSTR('ORACLE ORAHOME BIORA', 'ORA', 1, 1) "COL2" --1 , INSTR('ORACLE ORAHOME BIORA', 'ORA', 1, 2) "COL3" --8 , INSTR('ORACLE ORAHOME BIORA', 'ORA', 2, 1) "COL4" --8 , INSTR('ORACLE ORAHOME BIORA', 'ORA'..
CONCAT() 문자열을 결합하는 기능을 가진 함수 오로지 2개의 문자열만 결합가능 SELECT ENAME || JOB "COL1" , CONCAT(ENAME, JOB) "COL2" FROM EMP; -- COL1와 COL2 결과 같다 --==>> /* SMITHCLERK SMITHCLERK : MILLERCLERK MILLERCLERK */ SELECT ENAME|| JOB || DEPTNO "COL1" , CONCAT(CONCAT(ENAME, JOB), DEPTNO) "COL2" FROM EMP; /* SMITHCLERK20 SMITHCLERK20 : MILLERCLERK10 MILLERCLERK10 */ 내부적인 형 변환이 일어나며 결합을 수행함 CONCAT()은 문자열과 문자열을 결합시켜주는 함수..
SELECT ENAME "사원명", DEPTNO "부서번호", JOB "직종" , SAL "급여", SAL*12+NVL(COMM, 0) "연봉" FROM EMP ORDER BY DEPTNO ASC; -- DEPTNO -> 정렬 기준 -- ASC -> 정렬 유형 : 오름차순 SELECT ENAME "사원명", DEPTNO "부서번호", JOB "직종" , SAL "급여", SAL*12+NVL(COMM, 0) "연봉" FROM EMP ORDER BY DEPTNO; -- 오름차순은 생략 가능 SELECT ENAME "사원명", DEPTNO "부서번호", JOB "직종" , SAL "급여", SAL*12+NVL(COMM, 0) "연봉" FROM EMP ORDER BY DEPTNO DESC; -- DESC -> ..
SELECT * FROM TBL_DEPT; --==>> /* 10ACCOUNTINGNEW YORK 20RESEARCHDALLAS 30SALES CHICAGO 40OPERATIONSBOSTON */ 데이터 입력 INSERT INTO TBL_DEPT VALUES(50, '개발부', '서울'); 이 데이터는 TBL_DEPT 테이블이 저장되어 있는 하드디스크상에 저장된것이 아니라 메모리(RAM) 상에 입력된 것임 이를 하드디스크상에 물리적으로 저장하기 위해서는 COMMIT을 수행해야 한다. 커밋 COMMIT; 롤백(ROLLBACK) ROLLBACK; COMMIT을 실행한 이후로 DML 구문(INSERT, UPDATE, DELETE)를 통해 변경된 데이터를 취소할 수 있다. DML 구문을 사용한 후 COMMIT ..
LIKE SELECT * FROM TBL_SAWON WHERE SANAME = '홍길동'; SELECT * FROM TBL_SAWON WHERE SANAME LIKE '홍길동'; 둘의 결과는 같음 LIKE와 함께 사용되는 %는 모든 글자 의미 LIKE와 함께 사용되는 _는 한 글자 의미 SELECT * FROM TBL_SAWON WHERE SANAME LIKE '김__'; SELECT * FROM TBL_SAWON WHERE SANAME LIKE '김%'; -- 이 라는 글자가 하나라도 포함되어 있는 항목 조회 SELECT SANO "사원번호", SANAME "사원명", SAL "급여" FROM TBL_SAWON WHERE SANAME LIKE '%이%'; -- 이 라는 글자가 두 번 들 어있는 항목 조..
SELECT ENAME "사원명", JOB "직종명", HIREDATE "입사일" FROM TBL_EMP WHERE HIREDATE = '1981-09-28'; -- 가능하지만(오라클의 자동변환으로 인해서) 믿으면 안된다. 그래서 날짜 변환 함수를 사용해야 한다. TO_DATE() SELECT ENAME "사원명", JOB "직종명", HIREDATE "입사일" FROM TBL_EMP WHERE HIREDATE = TO_DATE('1981-09-28', 'YYYY-MM-DD'); SELECT ENAME "사원명", JOB "직종명", HIREDATE "입사일" FROM TBL_EMP WHERE HIREDATE >= TO_DATE('1981-09-28', 'YYYY-MM-DD'); 오라클에서는 날짜 데이터..
UPPER() : 모두 대문자로 변환 LOWER() : 모두 소문자로 변환 INITCAP() : 첫 글자만 대문자로 하고 나머지는 모두 소문자로 변환 TBL_EMP 테이블에서 직종이 영업사원인 사람 조회하는 방법 SELECT EMPNO "사원번호", ENAME "사원명", JOB "직종명" FROM TBL_EMP WHERE JOB = UPPER('SALESMAN') OR JOB = LOWER('SALESMAN'); SELECT EMPNO "사원번호", ENAME "사원명", JOB "직종명" FROM TBL_EMP WHERE INITCAP(JOB) = INITCAP('SALESMAN'); -- UPPER, LOWER, INITCAP 다 가능 부족하거나 잘못된 내용이 있을 경우 댓글 달아주시면 감사하겠습니..
NVL() SELECT NULL "COL1", NVL(NULL, 10) "COL2", NVL(5, 10) "COL3" FROM DUAL; --==>> (null) 10 5 첫 번째 파라미터 값이 null이 아니면 그 값 그대로 반환 null이면 두 번째 파라미터 값을 반환하고 NVL2() SELECT ENAME "사원명", NVL2(COMM, '수당 有', '수당 無') "수당확인" FROM TBL_EMP; 첫 번째 파라미터 값이NULL이면 세 번째 파라미터 값 반환 NULL이 아니면 두 번째 파라미터 값을 반환하고 COALESCE() 매개변수 제한이 없는 형태로 인지하고 활용하기 맨 앞에 있는 매개변수부터 차례로 NULL인지 아닌지 확인하여 NULL인 경우 그다음 매개변수의 값을 반환한다. NULL이 ..
TBL_EMP 테이블에 컬럼 추가(주민등록번호 데이터를 담을 컬럼 추가) ALTER TABLE TBL_EMP ADD SSN CHAR(13); TBL_EMP 테이블에 추가한 컬럼 구조적 제거 ALTER TABLE TBL_EMP DROP COLUMN SSN; TBL_EMP 행 삭제 DELETE TBL_EMP; --==>> 14개 행 이(가) 삭제되었습니다. SELECT * FROM TBL_EMP; --> 에러 발생하지 않음 -- 다만 데이터 없음. 테이블의 구조는 그대로 남아있고 데이터만 삭제된 상황 TBL_EMP 테이블 삭제 DROP TABLE TBL_EMP; SELECT NULL, NULL+2, NULL*2, 2/NULL FROM DUAL; --==>> null은 상태의 값을 의미하며, 논리적으로는 실제..