본문 바로가기
I am a developer

자잘한 Oracle Database SQL 명령어 모음

by Echinacea 2023. 4. 25.
반응형
  1. 날짜를 숫자로 바꾸기
select to_number(to_char(sysdate, 'yyyymmdd')) from dual;

 

 

  1. 일부 내용만 수정하기
<문법>
UPDATE 테이블명 SET 컬럼2 = '수정할 값1'  WHERE 컬럼1 = '값1';

<적용>
update loan set loan_itemname = '저금리 기본대출' where loan_itemname = '저금리 기본대출2';

ex1) 특정 로우의 날짜 변경
UPDATE history SET day = (sysdate-1)  WHERE total_todaypurchase = 1000;

 

 

  1. 시/분/초 까지 출력하기
ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD HH24:MI:SS';

 

 

  1. Not null 설정 제거하기
ALTER TABLE auction_price(테이블명) MODIFY grade(컬럼명) NULL;

 

 

  1. 소수점 버리기
SELECT TRUNC([컬럼명],자릿수)AS [명칭] FROM [테이블명]

EX)
SELECT TRUNC(SCALE,1) AS SCALE FROM AUCTION_PRICE;

 

 

  1. 테이블 컬럼 변경 모음(컬럼 추가, 컬럼 삭제, 컬럼 자리수 변경, 컬럼명 변경)
--------------------------------------------------------------------------------
-- 테이블 컬럼 추가
--------------------------------------------------------------------------------
ALTER TABLE WEX001M ADD APR_DT DATE DEFAULT SYSDATE NOT NULL ;
ALTER TABLE WEX001M ADD APRR_ID VARCHAR2(15) DEFAULT 'ADMIN' NOT NULL ;
--------------------------------------------------------------------------------
-- 테이블 컬럼 삭제
--------------------------------------------------------------------------------
ALTER TABLE WEX002D DROP (UPDR_ID);
--------------------------------------------------------------------------------
-- 컬럼 데이터타입 자리수 변경
--------------------------------------------------------------------------------
ALTER TABLE WEX001H MODIFY (RGR_ID VARCHAR2(15));
ALTER TABLE WEX001H MODIFY (UPDR_ID VARCHAR2(15));

--컬럼명 변경
ALTER TABLE emp RENAME COLUMN editid TO edit_id;

 

 

  1. 시퀀스 관련
--시퀀스 생성하기
CREATE SEQUENCE PATRON_SEQ
INCREMENT BY 1
START WITH 100
MAXVALUE 999
MINVALUE 100
NOCYCLE
CACHE 30;

--시퀀스 번호 조회하기
SELECT PATRON_SEQ.CURRVAL FROM DUAL;
SELECT PATRON_SEQ.NEXTVAL FROM DUAL;

--테이블에 시퀀스 값 집어넣기
INSERT INTO COLLECT(PATRON_CODE) VALUES(PATRON_SEQ.NEXTVAL);

--실제 (collect.)xml에 들어가는 형태
insert into collect(patron_code, patron_name, not_collected_today, patron_phone1, patron_phone2, patron_note, member_id)
            values(PATRON_SEQ.NEXTVAL, #{patron_name}, #{not_collected_today}, #{patron_phone1}, #{patron_phone2}, #{patron_note}, #{member_id})

--시퀀스 삭제하기
DROP SEQUENCE PATRON_SEQ;

 

 

  1. 일정 갯수 이상만 출력하기
--숫자여도 0을 ''로 감싸줘야 함!

select * from stock
where member_id=#{member_id} and amount > '0'

 

 

 

11. 최초 등록일 기준으로 값 맞추기(Greatest, Least)

UPDATE collect SET patron_first_deal = least(patron_first_deal)  WHERE patron_name = patron_name;

 

 

12. 테이블 복사하기

CREATE TABLE 새로만들테이블명 AS
SELECT * FROM 복사할테이블명 [WHERE 절]
반응형

댓글