오라클 Database 02
Updated:
유용한 SQL 명령문
*평소 헷갈리거나 몰랐던 명령어들만 정리한다.
TAB
*모든 테이블을 확인
SELECT * FROM TAB;
#### DESC
*테이블 구조(컬럼 이름, 데이터형, 길이, NULL 허용 유무 등) 및 정보 확인
DESC DEPT;
SELECT
*테이블에 저장된 데이터 조회
SELECT * FROM DEPT;
비교 연산자
*같다, 크다, 작다 등은 잘 안다.
*다르다의 경우 3가지가 있으니 아래 확인.
SELECT * FROM WHERE EMPLOY WHERE SALARY <> 3000;
SELECT * FROM WHERE EMPLOY WHERE SALARY != 3000;
SELECT * FROM WHERE EMPLOY WHERE SALARY ^= 3000;
SELECT * FROM WHERE EMPLOY WHERE NOT SALARY = 3000; -- 논리연산자 같은 의미라 여기에 그냥 넣음
BETWEEN AND 연산자
SELECT * FROM EMP WHERE SAL BETWEEN 2000 AND 3000;
--2000과 3000천도 포함( 2000 <= sal <= 3000 이랑 같은 뜻)
LIKE
SELECT * FROM EMP WHERE ename LIKE '_A%';
-- %와 같은 의미이나 차이점은 %는 개수가 상관이 없다. 그러나 _는 단 한문자에 대해서만 와일드 카드
-- 따라서 위에 쿼리를 해석하면 이름의 두번째 글자에 A인 사원을 찾음
SELECT * FROM EMP WHERE ename LIKE '%\%%' ESCAPE'\';
-- 두번째 %를 문자 그대로 인식하기 위해서 \을 쓰고 ESCPAE를 사용
NULL
SELECT ENAME, JOB, COMM FROM EMP WHERE COMM IS NULL; -- 말 그대로 값이 없는 것들이 나옴
SELECT ENAME, JOB, COMM FROM EMP WHERE COMM IS NOT NULL;
-- 데이터에 0이 있어도 0이 출력됨. 0도 하나의 값임.
DISTINCT
SELECT DISTINCT DEPTNO FROM EMP; --중복 제거 된 부서 번호가 나온다.
숫자함수
SELECT -10, ABS(-10) FROM DUAL; --절대값
SELECT FLOOR(23.1) FROM DUAL; -- 버림
SELECT ROUND(23.523) FROM DUAL; -- 24 반올림
SELECT ROUND(23.523,2) FROM DUAL; -- 23.52 특정 자리수까지 반올림
/* TRUNC : 특정 자릿수에서 잘라냄
인자 값이 2: 소수점 이하 세번째 자리에서 버림
인자 값이 -1: 일의 자리에서 버림
인자 값이 0: 소수점 자리에서 버림
인자 값이 X: 소수점 자리에서 버림
*/
SELECT TRUNC(34.5678,2), TRUNC(34.5678,-1), TRUNC(34.5678,0), TRUNC(34.5678) FROM DUAL;
--34.56 , 30, 34, 34 출력
SELECT MOD(27,2) FROM DUAL; -- 1 나머지 출력
문자함수
SELECT INITCAP('WELCOME TO ORACLE') FROM DUAL; --Welcome To Oracle 이니셜만 대문자
SELECT INSTR('Welcome To Oracle', 'O') FROM DUAL; --12, 문자 특정 위치 값
/* LPAD : 오른쪽 정렬 후 왼쪽 공백을 문자로 채움 */
/* RPAD : LPAD 반대 */
SELECT LPAD('ORACLE', 10, '#') FROM DUAL; -- ####ORACLE
SELECT RPAD('ORACLE', 10, '#') FROM DUAL; -- ORACLE####
/* LTRIM : 왼쪽 공백을 삭제 */
/* RTRIM : 오른쪽 공백을 삭제 */
SELECT LTRIM(' ORACLE') FROM DUAL; --ORACLE
SELECT RTRIM('ORACLE ') FROM DUAL; --ORACLE
/* TRIM : 특정 문자를 잘라냄 */
SELECT TRIM('a' FROM 'aaaaORACLEaaaaa') FROM DUAL; --ORACLE
SELECT TRIM(' ORACLE ') FROM DUAL; --ORACLE, 양쪽 공백제거