목록SQL (9)
게으른 완벽주의자의 개발자 도전기
실무에서는 반반 정도 쓴다고 한다. 첫번째 방법 (일반적인 방법) INSERT INTO TEST_EMP( EMP_NUM , EMP_NAME , POSITION , EMP_AGE , DEPT_NUM , GENDER , EMP_TELL )VALUES( (SELECT 'EMP'||LPAD(NVL(MAX(TO_NUMBER(SUBSTR(EMP_NUM,4))),0)+1, 3 ,0) FROM TEST_EMP) , #{empName} , #{position} , #{empAge} , #{deptNum} , #{gender} , #{empTell} ) 두번째 방법(selectKey 사용) SELECT 'EMP'||LPAD(NVL(MAX(TO_NUMBER(SUBSTR(EMP_NUM,4))),0)+1, 3 ,0) FROM ..
장바구니에 상품을 넣을 때 만약 장바구니에 같은 품목이 있다면 장바구니에 있는 상품의 수량과 총가격이 변경 되도록 만들고자 한다. MERGE INTO SHOP_CART USING DUAL ON (ITEM_CODE = #{itemCode} AND MEM_ID =#{memId}) 내 장바구니에 같은 상품이 있다면 WHEN MATCHED THEN UPDATE SET (총 수량은 기존에 있던 수량에서 새롭게 추가된 수량을 더한 값으로) PUT_CNT = PUT_CNT + #{putCnt} (기존 값 + 새로운 값 ) 총가격은 수량 * 단가 , TOTAL_PRICE = (PUT_CNT + #{putCnt}) * (SELECT ITEM_PRICE FROM SHOP_ITEM WHERE ITEM_CODE = #{ite..

UNION / UNION ALL -> 2개 이상의 SELECT문을 합칠 때 사용한다 SELECT * FROM EMP WHERE EMPNO 1005; 1) SELECT문에서 컬럼명은 다르더라도, 자료형이 일치하면 UNION 실행 가능 SELECT ENAME FROM EMP WHERE EMPNO 1005; 2) 조회하려는 컬럼의 개수가 동일해야 한다. SELECT EMPNO, ENAME, SAL FROM EMP WHERE EMPNO 1005; 3) UNION ALL 과 UNION의 차이 -> 중복 유무 U..

"ITEM_ "까지는 문자 "001"은 숫자로 하여 상품이 하나씩 늘어날 때마다 +1씩 숫자가 변경되어 ITEM_001 ITEM_002 ITEM_003 ITEM_004 ITEM_005 이런 형식으로 변경되도록 쿼리를 만들고자 한다. 1. 임의로 자료하나를 넣고 쿼리를 만들어 보자 INSERT INTO SHOP_ITEM ( ITEM_CODE , ITEM_NAME , ITEM_PRICE , ITEM_COMMENT , CATE_CODE )VALUES ( 'ITEM_001' , '가장 빨리 만나는 코어 자바' , 20000 , '자바 기본서' , 'CATE_002' ); 2. SUBSTR(문자열 자르기), TO_NUMBER(문자를 숫자로 변경) 임의로 넣은 자료의 ITEM_CODE는 ITEM_001이다. 여기서..

오늘 무슨 날인가? 오라클 html 톰캣 오류에 파일 다 날라가, sql은 저 상태에서 넘어가지도 않아... 대환장 파티였다. 나같은 초보한텐 너무나도 큰 시련이었다. 도서관 와서 4시간이나 걸려서 오류를 잡고 있는 나.. 정상인가요?? 노트북 껐다 켰다 프로그램 삭제하고 다시 설치하고 온갖짓을 다 햇는데 결론적으로 너무 간단하게 해결되서 허무했다... 1. AppData를 실행시킨다. 2. SQL Developer, sqldeveloper 두개 폴더를 삭제한다! 3. 그리고 다시 sql developer를 실행시킨다 4. 실행된 걸 볼 수 있다. (나는 프로그램 삭제하고 재설치해서 아예 새로 다시 설정해줘야 한다.) SYSTEM에서 새 계정 생성하기 전에 한 줄씩 작성하고 ctrl 엔터해준 후 계정 생..
절대값(ABS) SELECT -10, ABS(-10) FROM DUAL; 소수점 이하 버림(FLOOR), 반올림(ROUND , 몇번째 자리까지 표시할 것인지) SELECT 12.345, FLOOR(12.345), ROUND(12.345), ROUND(12.345, 2) FROM DUAL; 나머지 값 SELECT MOD(10, 3) FROM DUAL; 모두 대문자(UPPER), 모두 소문자(LOWER), 앞글자만 대문자(INITCAP) SELECT 'WELCOME ORACLE' , UPPER('welcome oracle') , LOWER('WELCOME ORACLE') , INITCAP('WELCOME ORACLE') FROM DUAL; 게시판에서 제목에 java라는 글자가 들어간 게시글의 모든 정보 조회..

SELECT에 여러가지 방법을 활용해서 데이터 도출하는 법을 알아보고자 한다. 1. AS 별칭사용 AS를 사용하여 조회 컬럼의 이름을 변경할 수 있다 즉, AS 별칭명으로 사용하며, AS를 생략해도 적용 된다. ★이 별칭은 현재 조회된 테이블에만 적용되는 것 모든 사원의 사번, 이름, 급여, 연봉(급여*12)을 조회 SELECT EMPNO 사번, ENAME 사원명, SAL AS 월급, SAL*12 AS 연봉 FROM EMP; 2. NULL NULL정해지지 않은 것 -> 연산 시 NULL값이 연산되면 연산 결과는 무조건 NULL이 나온다. SELECT SAL*12 + COMM FROM EMP; COMM(인센티브)값에는 0 300 NULL값이 섞여져 있다. 이 경우 연산을 하면 NULL값이 속해져 있는 데이..

실무에서 게시판 만들기를 자주한다고 한다. 그때 사용할 글번호, 게시 날짜를 넣어보고자 한다. 1. 테이블 생성 나는 BOARD라는 테이블을 만들어서 안에 글번호, 제목, 작성자, 작성일, 내용, 조회수 컬럼을 넣을 것이다. 조건 1. 조회수는 기본 0 되도록 조건 2. 날짜는 작성일자가 나오게 조건3. 글번호를 1234 순서대로 부여하라 1. 조건 1. 조회수가 기본 0이 되도록 (DEFAULT 0) READ_CNT NUMBER DEFAULT 0 (조회수는 기본값으로 0을 주겠다) 2. 조건 2. 날짜는 작성일자가 나오도록 (SYSDATE) 오라클에서 연습용으로 제공하는 기본 테이블 DUAL을 사용하자. SELECT SYSDATE FROM DUAL; --오늘 날짜가 나옴 SYSTEMDATE 3. 조건3..