SQL-ORACLE

FROM문에 대해 자세히 배우다. -- 원래는 쿼리를 작성할 때 스키마.테이블.컬럼 형태로 작성 SELECT TB_CUST.CUST_NAME , TB_CUST.PASSWD FROM TB_CUST WHERE TB_CUST.CUST_ID = 'C0001'; 원래는 SELECT문에서 출력할 때 스키마, 테이블을 써서 자세하게 써야한다. -- 테이블에 별칭을 줘서 편하게 사용 AS 사용 X EX) A, B, C ... -- 별칭을 주면 별칭만 사용해야 함 SELECT A.CUST_ID , A.CUST_NAME , B.CUST_ID , B.TEL_NO FROM TB_CUST A , TB_CUST_TEL B; 2개 이상의 테이블을 조회할 때는 테이블에 별칭을 지어줘서 SELECT에서 간결하게 쓸 수 있게 한다.
날짜데이터로 값을 조회하는 방법을 배우다. 1. 날짜데이터 → 문자데이터 -- 날짜데이터로 조회하는 방법 -- TO_CHAR 을 활용한 방법 -- 문자데이터로 만들어서 비교 (편법) SELECT * FROM TB_PRD WHERE TO_CHAR(REG_DT, 'YYYYMMDD') = '20230501' OR TO_CHAR(REG_DT, 'YYYYMMDD') = '20230502'; 출력하고싶은 것은 2023년 5월 1일 ~ 2023년 5월 2일 까지의 것들이다. 그것들의 REG_DT를 문자열로 형변환 한후 포매팅으로 YYYYMMDD로 연월일만 꺼내준다. 그 이유는 꺼낼 조건이 연월일만 있기 때문이다. 그것들의 연월일이 20230501 또는 20230502이면 조건에 충족한다. 2. 문자데이터 → 날짜데이..
값에 포함된 특정 단어가 포함된 값만 출력할 때 사용하는 LIKE 연산자를 배우다. -- LIKE 연산 - 검색할 때 WHERE 컬럼 LIKE ''; -- % : 여러개 , _ : 언더바 1개당 1개의 문자 -- '수%' : '수'로 시작하는 문자를 출력 -- '%수%' : '수'가 포함된 문자를 출력 (주로 사용) -- '%수' : '수'로 끝나는 문자를 출력 SELECT * FROM TB_PRD WHERE PRD_DETAIL LIKE '%적합한%'; LIKE 연산자는 그 컬럼의 값들 중에 특정 단어가 포함 된 값만 출력하고 싶을 때 사용한다. %는 여러 문자, _(언더바)는 언더바의 개수만큼을 의미한다. 예를들어 티_ _ _ 는 '티'라는 문자 뒤에 3개의 문자가 오는 값만 출력한다.
IN과 BEWEEN에 대해 배우다. IN -- IN 연산자. OR 연산을 줄여줌 / IN안의 NULL은 무시함, NOT IN안에 NULL이 들어가면 아무것도 출력X -- NOT은 연산자를 반대로만듦 (OR -> AND) 따라서 NOT IN은 AND가 중첩되서 아무것도 출력되지않음 SELECT * FROM TB_PRD WHERE PRD_TYPE IN ('가전', '욕실용품', '스마트폰'); OR을 1번만 사용하게 된다면 그냥 OR을 사용하면 되지만 2개 이상부터는 OR을 여러 번 붙여서 사용하기 번거롭다. 그 단점을 보완해 주기 위해 IN 연산자를 사용하면 된다. 쉽게 IN 안에 OR에 사용될 값들을 적으면 된다. BETWEEN -- BETWEEN A AND B (A = 21 AND SCORE
WHERE문에서 사용가능한 부정연산인 NOT, !을 배우다. ! SELECT * FROM TB_CUST_ADDR WHERE ADDR_DVCD != '회사'; 주소의 구분코드가 '회사'가 아닌 것들만 출력하게 ADDR_DVCD != '회사'를 사용했다. NOT / IS NULL, IS NOT NULL -- NULL 데이터를 출력하는 방법 IS NULL, IS NOT NULL SELECT * FROM TB_CUST WHERE BIRTH_DY IS NULL; SELECT * FROM TB_CUST WHERE BIRTH_DY IS NOT NULL; IS NULL 은 그 컬럼의 값 중에서 NULL 값인 행만을 출력한다. NOT을 사용해서 IS NOT NULL로 NULL값이 아닌 값들이 출력되게 할 수 있다. 이런..
조건을 적용하는 WHERE을 배우다. SELECT * FROM TB_CUST WHERE CUST_NAME = '고객002'; WHERE에서 CUST_NAEM이 고객002인 사람만 출력하게 했으니 결과가 저렇게 나온다. AND SELECT * FROM TB_CUST WHERE SCORE = 20000; 그냥 AND, 두 조건에 모두 참인 결과 값만 출력. OR SELECT * FROM TB_CUST WHERE SCORE = 0 OR MONEY = 10000; 그냥 OR, 두 조건중 하나라도 참이면 그 결과 값 출력. AND, OR 혼 SELECT * FROM TB_PRD WHERE (PRD_AMT = 20000 OR PRD_TYPE = '가전') AND PRD_TYPE ='주방용품'; -- 우선 AND >..
NULL 값에 대해 배우다. NULL의 특성 -- null 값에 연산을 해도 null이 됨 null은 0이 아니다. SELECT CUST_ID , BIRTH_DY , BIRTH_DY + 1 FROM TB_CUST; NULL 값에 연산을 해도 NULL은 변하지 않는다. NVL -- null 값을 대체할 수 있는 함수 NVL() SELECT CUST_ID , BIRTH_DY -- 문자형 , NVL( BIRTH_DY, '생일을 입력하세요.') AS 생년월일 -- null 값을 '생일을 입력하세요.'로 변경함 FROM TB_CUST; NVL 함수를 사용하면 NULL 값을 대신하는 값을 적용할 수 있다. NVL(문자형, NULL값을 대체할 값)으로 사용하면 된다.예시에서 BIRTH_DY 컬럼에 있는 값들 중 NU..
날짜데이터 SELECT SYSDATE FROM DUAL; SELECT SYSDATE , SYSDATE + 1 AS 하루더함 , SYSDATE + 1/24 AS 한시간더함 , SYSDATE + 1/24/60 AS 일분더함 , SYSDATE + 1/24/60/60 AS 일초더함 FROM DUAL; SYSDATE로 현재 날짜데이터를 구할 수 있다. 2번째처럼 시간을 더해줄 수 있다. 형변환 (문자데이터 ↔ 날짜데이터) SELECT TO_NUMBER('1') FROM DUAL ; -- 문자형('1')을 숫자형(1) 로 형변환해 출력 SELECT TO_CHAR(1) FROM DUAL ; --숫자형(1)을 문자형('1') 로 형변환해 출력 SELECT TO_CHAR(SYSDATE , 'YYYY/MM/DD') FRO..
이뮨01
'SQL-ORACLE' 카테고리의 글 목록