본문 바로가기

:D/DB

(9)
숫자 함수 / 날짜 관련 함수 1) 숫자 함수 : 입력되는 값이 숫자인 함수들을 말함. ROUND(숫자, 소수점수) (12.345, 2) -> 12.35 TRUNC(숫자, 소수점수) 버려버리는 거 MOD(숫자1, 숫자2) 12, 10 -> 12 % 10 = 2 남는거 CEIL(숫자) 올림 FLOOR(숫자) 내림 POWER(숫자1, 숫자2) 숫자1의 숫자2만큼의 승을 출력 (3, 2) -> 3의 2승 -> 9 2) 날짜 관련 함수 # 날짜 계산 날짜 + 숫자 = 날짜 7월 20일 + 3 = 7월 23일 날짜 - 숫자 = 날짜 날짜 - 날짜 = 숫자 7/20 - 7/15 = 5 #날짜 함수 SYSDATE 시스템의 현재 날짜와 시간 MONTH_BETWEEN 개월수 ADD_MONTHS NEXT_DAY LAST_DAY ROUND TRUNC
sql 함수 - 단일행 문자함수 lower 소문자 / upper 대문자 SELECT substr ('abcde', 3, 3) FROM dual; substr : 문자열 자르기 ('문자열', 3, 3) : ' ' 안에있는 문자열의 내용 중에서 3번째 인덱스의 문자부터 3개만 잘라서 가져오기 a b c d e 3번째 문자인 c 부터 3개 c, d, e 가져옴 1 2 3 4 5 rpad(id, 10, '*') id칼럼의 내용과 문자 *을 합쳐서 길이가 10이 되도록 만들어줌 ex ) id 칼럼의 문자열 길이가 5일 경우 * 을 뒤에 다섯개 붙여줌
AND OR / order by (sort) -- AND OR : 검색 조건이 두개 이상일 때 -- AND : 조건들이 모두 만족하는 것 / OR : 조건들 중 하나라도 만족하는 것. SELECT * FROM EMP; SELECT ename, hiredate, sal FROM emp WHERE hiredate > '82-01-01' AND sal >= 1300; SELECT ename, hiredate, sal FROM emp WHERE hiredate > '82-01-01' OR sal >= 1300; -- 정렬 order by 정렬기준의컬럼명 또는 컬럼번호 [옵션] (데이터가 많을 때는 속도가 현저히 떨어짐) -- 오름차순 ASC (default로 생략가능), 내림차순 DESC -- order by 절은 sql 쿼리 문장의 가장 마지막에 위치해..
IS NULL / IS NOT NULL -- IS NULL / IS NOT NULL : 값이 무엇인지 모를 경우 -- SQL 입장에서는 NULL이 들어가있는게 아니라 값이 없는 상태. 비어있기 때문에 무슨 값인지 모르니까 NULL SELECT empno, ename, comm FROM emp WHERE deptno IN (20,30); SELECT empno, ename, comm FROM emp WHERE comm IS NULL; -- NULL 인 것들 SELECT empno, ename, comm FROM emp WHERE comm IS not NULL; -- NULL 이 아닌 것들
비교 연산자 / between 연산자 / in 연산자 -- # 비교 연산자 : 숫자 문자 모두 사용 가능. >= = 4000; SELECT empno, ename, sal FROM emp WHERE ename >= 'R'; -- 사전순으로 문자도 비교 가능 ! SELECT empno, ename, hiredate FROM emp WHERE HIREDATE >= '81-12-01'; -- # 숫자 between : between A?? and B?? A와 B 사이에 있는 값들 (A,B 모두 포함) SELECT ename, sal FROM emp WHERE sal BETWEEN 2000 AND 3000; SELECT ename, sal FROM emp WHERE sal >= 2000 AND sal
연결 연산자 : || SELECT ename, job FROM emp; SELECT ename || job FROM emp; SELECT ename || ' ''s job is ' || job "NAME AND JOB" FROM emp; 두개의 컬럼이나 (ename , job) 문자열을 's job is 이어붙여서 출력해주는 연산자
DISTINCT - 중복된 값 제거하고 출력 SELECT deptno FROM emp; : emp 테이블의 deptno 컬럼 출력 SELECT DISTINCT deptno FROM emp; : emp 테이블의 deptno 컬럼 출력하는데 중복된 값 모두 제거. SELECT DISTINCT deptno, ename FROM emp; 모든 컬럼에 distinct가 적용되어서 원하는 결과가 안나올 수 있다.
SELECT FROM 구문 사용 데이터 조회 SELECT [컬럼명 또는 표현식] FROM [테이블명 또는 뷰명]; 대소문자 구분 없음(데이터는 구분) 전체 조회 : * emp 테이블의 전체 컬럼 데이터 조회 emp 테이블의 empno 컬럼의 데이터 조회 컬럼 별칭(alias) 사용하여 출력하기 SELECT * FROM dept; SELECT dname, ', it''s deptno : ' "info", deptno "DNAME AND DEPTNO" FROM dept; dept 테이블에서 dname 컬럼과 내용 , it''s deptno : 인 info 컬럼 만들고, deptno 컬럼을 DNAME AND DEPTNO로 출력 별칭을 사용하여 출력하는 3가지 방법 SELECT profno "Prof'NO", name as "Prof'NAME..