sql 18

DB 24강. 날짜 데이터

-- 날짜 sysdate 현재시간 출력 SELECT sysdate FROM dual; -- 현재 시간과 사이의 개월 수 SELECT ENAME, TRUNC(MONTHS_BETWEEN(SYSDATE,hiredate)/12) 근속년수, decode(TRUNC(MONTHS_BETWEEN(SYSDATE,hiredate)/12), 40, '금반지증정', '없음') FROM emp; SELECT ADD_MONTHS(sysdate, 3) FROM dual; -- 마지막 날짜 출력 SELECT last_day(sysdate) FROM dual; [출처] https://cafe.naver.com/metacoding 메타코딩 : 네이버 카페 코린이들의 궁금증 cafe.naver.com 메타 코딩 유튜브 https://ww..

DB/Oracle 2022.02.08

DB 22강. 숫자 함수

-- ROUND 반올림. 두번째 인수는 소수점 자리수 SELECT ROUND(987.654, 2) FROM dual; --TRUNC 소수점 이하 버리기 SELECT TRUNC(987.654, 2) FROM dual; -- mod 나머지 구하기 SELECT mod(6,4) FROM dual; [출처] https://cafe.naver.com/metacoding 메타코딩 : 네이버 카페 코린이들의 궁금증 cafe.naver.com 메타 코딩 유튜브 https://www.youtube.com/c/%EB%A9%94%ED%83%80%EC%BD%94%EB%94%A9 메타코딩 문의사항 : getinthere@naver.com 인스타그램 : https://www.instagram.com/meta4pm 깃헙 : http..

DB/Oracle 2022.02.08

DB 21강. 문자 위치 추출 함수 instr( )

학생의 전화번호에서 지역번호만 뽑아내려고 한다. SELECT name, substr(tel, 1, 3) FROM student; 이렇게 적기엔 02 지역번호는 2개이고 다른 곳은 3개이다. substr에 들어갈 3번째 인수 자리에 어쩔 땐 2가 들어가야 하고, 어쩔 땐 3이 들어가야 한다. 변해야 하는 것이다. 하지만 데이터베이스에는 변수가 없다. 이때 instr( ) 함수를 사용해준다. instr( )은 내가 찾는 문자열의 위치가 나온다. SELECT '-)$' from dual; -- 결과 : 3 -- $의 인덱스가 나오는 것 SELECT instr('-)$', '$') from dual; SELECT instr(tel, ')')-1 FROM student; instr(tel, ')')-1 자체가 변..

DB/Oracle 2022.02.08

DB 20강. 문자 추출 함수 substr( )

SELECT '가나다라' FROM dual; '가나다라'에서 앞에 '가나'만 잘라내고 싶으면 substr( )을 사용한다. 어디서부터 몇 개를 자를지 인수가 2개 필요하다. 1번째 인수는 인덱스 번호, 2번째 인수는 개수 이때 자바에서는 인덱스가 0번부터 시작이었지만 데이터베이스에서 인덱스는 1부터 시작한다. SELECT substr('가나다라', 1, 2) FROM dual; 그러면 주민번호 앞 6자리만 뽑아내는 것도 가능하다. SELECT name, substr(jumin, 1, 6) FROM student; -- 주민번호 751023-1****** SELECT name, substr(jumin, 1, 6) || '-' || substr(jumin, 7, 1) || '******' JUMIN FROM..

DB/Oracle 2022.02.07

DB 19강. 문자열 길이 함수 lengthb( )

미리보기로 볼 수 있는 글의 양을 정하는데 글자의 개수로 정하자니 한글로 100자 이상이면 "..."이 나오게 하면 영어를 적었을 때 100자 이상 더 적을 수 있었다. 비교해보니 확실히 크기가 다르다. 글자의 길이, 크기를 구할 때 lengthb, Byte 크기를 구해준다. 영어는 한글자당 1Byte -- 영어 1Byte (UTF-8) SELECT lengthb('ABCD') from dual; 한글은 한글자당 3Byte -- 한글 3Byte (UTF-8) SELECT lengthb('가나다라') from dual; [출처] https://cafe.naver.com/metacoding 메타코딩 : 네이버 카페 코린이들의 궁금증 cafe.naver.com 메타 코딩 유튜브 https://www.youtu..

DB/Oracle 2022.02.07

DB 18강. 소문자 변경 함수 LOWER( )

단일행 함수는 가로(행) 연산을 한다. 레코드 연산을 하는 것이다. 아무것도 아닌 테이블, 연습 테이블을 dual이라고 한다. SELECT 'Ssar' FROM dual; 아이디를 입력할 때 모두 소문자로 입력해야지! SELECT LOWER('Ssar') 소문자 FROM dual; 유효성 검사에 LOWER를 사용하면 좋다. [출처] https://cafe.naver.com/metacoding 메타코딩 : 네이버 카페 코린이들의 궁금증 cafe.naver.com 메타 코딩 유튜브 https://www.youtube.com/c/%EB%A9%94%ED%83%80%EC%BD%94%EB%94%A9 메타코딩 문의사항 : getinthere@naver.com 인스타그램 : https://www.instagram.co..

DB/Oracle 2022.02.07

DB 17강. 집합 연산자 UNION ALL

SELECT empno, ename, sal FROM emp WHERE job = 'SALESMAN' SELECT null, null, avg(sal) FROM emp WHERE job = 'SALESMAN'; 두 연산의 결과를 합치기 위해 UNION ALL을 사용한다. UNION ALL을 사용할 때는 조건이 필요하다. 두 칼럼의 개수가 같아야 합칠 수 있다. 칼럼의 수가 맞지않을 땐 null을 추가해 맞춰준다. 단, 타입을 잘 맞춰주는게 중요하다. -- UNION ALL 두개의 집합 더하기 -- 조건 : 칼럼의 개수가 같아야 한다. 보통 null을 추가 SELECT empno, ename, sal FROM emp WHERE job = 'SALESMAN' UNION ALL SELECT null, '평균'..

DB/Oracle 2022.02.04

DB 16강. 그룹 연산자

그룹 연산자는 단독 컬럼으로만 써야한다. 프로젝션을 찌그러뜨리는 것인데 테이블의 총 14행을 찌그러뜨려서 sal의 총 합계를 계산하는데, 이름 14개를 찌그러뜨리면 어떤 이름이 나와야하는지 말이안되기 때문이다. 그래서 단독으로 사용한다. -- 그룹 연산자 max, count, min, sum, avg (프로젝션 연산) -- 얘는 단독으로만 써야함 SELECT max(sal) FROM emp; SELECT min(sal) FROM emp; SELECT sum(sal) FROM emp; SELECT avg(sal) FROM emp; SELECT count(sal) FROM emp; [출처] https://cafe.naver.com/metacoding 메타코딩 : 네이버 카페 코린이들의 궁금증 cafe.nav..

DB/Oracle 2022.02.04

DB 13강. WHERE 문법

1. = 같다 -- 1. = 같다 SELECT * FROM emp WHERE empno = 7900; 2. , = -- 2. 크다, 작다 -- = 크거나 같다, 작거나 같다 SELECT * FROM emp WHERE sal < 3000; 3. 문자열 검색 -- 3. 문자열 검색 SELECT * FROM emp WHERE ename = 'SMITH'; 4. != 같지 않다 같지 않다 -- 4. 부정 != 같지 않다. 같지 않다. SELECT * FROM emp WHERE ename != 'SMITH'; 5. OR, IN ~거나, ~중에 하나라도 맞으면의 조건을 사용할 때 OR을 사용한다. 보통 OR은 다른 칼럼을 비교할 때 사용하고 같은 칼럼을 비교할 때는 IN을 사용한다. -- 5. OR(칼럼이 ..

DB/Oracle 2022.02.04