DB/SQL

· DB/SQL
CASE 표현식의 기본구성SELECT CASE WHEN 조건1 THEN 출력1 WHEN 조건2 THEN 출력2 ... ELSE 그외 ENDFROM 테이블명;예시예시1. 대여 기간이 30일 이상이면 '장기 대여' 그렇지 않으면 '단기 대여' 로 표시하는 컬럼(컬럼명 : RENT_TYPE)을 추가하여 대여기록을 출력하는 SQL문 작성해주세요SELECT CASE WHEN END_DATE-START_DATE>=29 THEN '장기 대여' ELSE '단기 대여' END AS RENT_TYPEFROM CAR_RENTAL_COMPANY_RENTAL_HISTORY ;SELECT CASE WHEN B.DURATION 출처https:..
· DB/SQL
DATETIME 타입은 YYYY-MM-DD hh:mm:ss 형식 가진다.DATE 타입은 YYYY-MM-DD의 형식을 가지며 DATE_FORMAT으로 %Y-%m-%d -%h:%m:%s 형식을 지정하면 시분초값은 0으로 채워진다.FORMAT설명%MMonth 월(Janeary,February ...)%mMonth 월(01,02,03 ...)%WDay of Weef 요일(Sunday, Monday ...)%DMonth 월(1st, 2dn, 3rd ...)%YYear 연도(1999, 2000, 2020)%yYear 연도(99, 00, 20)%XYear 연도(1999, 2000, 2020) %V와 깉이 쓰임%xYear 연도( 1999, 2000, 2020) %ㅍ와 깉이 쓰임%aDay of Week 요일(Sun, M..
· DB/SQL
LIMIT 개수 N으로 지정된 숫자만큼 행 출력OFFSET : 몇 번째 행부터 출력할지 결정/ 생략시 0부터 시작SELECT *FROMLIMIT 숫자; 예시10개만 출력하세요SELECT ID, LENGTH FROM FISH_INFO ORDER BY IFNULL(LENGTH,10) DESC, IDLIMIT 10;LIMIT OFFSETSELECT *FROM BOOKLIMIT 1 OFFSET 3; OFFSET 생략'LIMIT 시작 인덱스, 개수' 형태로 들어간다SELECT *FROM BOOKLIMIT 1, 3;
· DB/SQL
column의 값이 null 반환 할때, 다른 값으로 출력 할 수 있도록 하는 함수IFNULL(컬럼명, "NULL일_경우_대체값") 예제LENGHT 가 NULL 이면 10으로 처리 하는 경우SELECT *FROM FISH_INFOORDER BY IFNULL(LENGHT,10) DESC
· DB/SQL
템플릿SELECT A.컬럼명1, A.컬럼명2 , B.컬럼명3, B.컬럼명4FROM 테이블명1 A, 테이블명2 BWHERE A.테이블명1기본키 = B.테이블명2기본키AND A.테이블명1기본키 = '검색어'ORDER BY B.테이블명2;예시SELECT A.COM_CODE, A.COM_CODE_NM , B.COM_CODE_DETAIL, B.COM_CODE_DETAIL_NMFROM COM_CODE A, COM_CODE_DETAIL BWHERE A.COM_CODE = B.COM_CODEAND A.COM_CODE = 'natn'ORDER BY B.COM_CODE_DETAIL;
· DB/SQL
템플릿SELECT T.*FROM(SELECT ROW_NUMBER() OVER(ORDER BY 기준_컬럼명) RNUM ,컬럼1,컬럼2,컬럼3,컬럼4 FROM 테이블명 WHERE 1=1)TWHERE T.RNUM BETWEEN 시작숫자 AND 끝숫자;예시SELECT T.*FROM(SELECT ROW_NUMBER() OVER(ORDER BY EMP_NO) RNUM ,EMP_NO, EMP_NAME, EMP_ADDRESS, EMP_TELNO, EMP_SALARY, FILENAME FROM EMPLOYEE WHERE 1=1)TWHERE T.RNUM BETWEEN 1 AND 10;페이징 처리할 때 사용 SELECT T.* FROM ( SELECT ROW_NUMBER() OVER..
· DB/SQL
상관관계 서브쿼리 : main 쿼리의 특정 컬럼의 기본키 데이터가 sub쿼리의 조건으로 사용되고 sub쿼리의 select 결과  다시 main쿼리의 조건으로 서로 사용됨SELECT *FROM ATTACHWHERE GLOBAL_CODE='P591';SELECT MIN(B.SEQ)FROM ATTACH B, ATTACH AWHERE B.GLOBAL_CODE=A.GLOBAL_CODE SELECT A.global_code, A.seq, A.filename, A.file_size, A.content_type, A.reg_dateFROM attach AWHERE A.global_code='P591' AND A.SEQ=1 ; 원본--상관관계 서브쿼리SELEC..
· DB/SQL
예시예시1)DECLAREBEGIN --I : 자동 선언 정수형 변수 FOR I IN 10..127 LOOP INSERT INTO CONT_US(CU_CODE, NAME, EMAIL, SUBJECT, MESSAGE) VALUES( (SELECT NVL(SUBSTR(MAX(CU_CODE),1,2) || TRIM(TO_CHAR(SUBSTR(MAX(CU_CODE),3) + 1,'000')),'CU001') FROM CONT_US) ,'개똥이' || I , 'test@test.com' ,'제목' || I , '내용' || I)..
· DB/SQL
템플릿SELECT NVL(SUBSTR(MAX(컬럼),1,2) || TRIM(TO_CHAR(SUBSTR(MAX(컬럼),3) + 1,'000')),'컬럼_시작')FROM 테이블명예시SELECT NVL(SUBSTR(MAX(CU_CODE),1,2) || TRIM(TO_CHAR(SUBSTR(MAX(CU_CODE),3) + 1,'000')),'CU001')FROM CONT_US;Max(컬럼) ⇒ 최대값 찾기SELECT MAX(CU_CODE)FROM CONT_US;SUBSTR('문자열',시작위치,길이) 문자열 자르기SELECT SUBSTR(MAX(CU_CODE),1,2)FROM CONT_US; SELECT SUBSTR(MAX(CU_CODE),3)FROM CONT_US;문자+..
· DB/SQL
기존 테이블 데이터 백업용테이블에 옮기기 CREATE TABLE 백업용테이블이름 AS SELECT * FROM 기존테이블이름; 예시 CREATE TABLE EMPLOYEE_BAK AS SELECT * FROM EMPLOYEE; 테이블삭제 DELETE FROM 기존테이블이름; 예시 DELETE FROM EMPLOYEE; 만약 제약조건있는 경우 더보기 템블릿 --시스템뷰(READONLY)테이블 SELECT * FROM USER_CONSTRAINTS WHERE CONSTRAINT_NAME='빨간줄표시'; 예시 --시스템뷰(READONLY)테이블 SELECT * FROM USER_CONSTRAINTS WHERE CONSTRAINT_NAME='R_2'; TABLE_NAME ⇒ 제약조건 테이블 이름 제약조건 테이블..
lavender1122
'DB/SQL' 카테고리의 글 목록