본문 바로가기

분류 전체보기

(256)
DDL -- DDL(데이터 정의어) : Create, Drop, Alter --> 스키마를 정의한다. --> 데이터베이스 관리자 또는 데이터베이스 설계자의 역할에 해당! --> DDL 명령문은 데이터베이스 객체를 생성, 수정, 삭제하거나 데이터베이스의 구조를 정의하는 데 사용됨 1. CREATE: 데이터베이스 객체를 생성하는 데 사용됩니다. 예를 들어, 테이블, 뷰, 시퀀스, 인덱스 등을 생성할 때 CREATE 문을 사용합니다. 2. ALTER: 데이터베이스 객체를 수정하는 데 사용됩니다. 테이블에 새 열을 추가하거나 기존 열의 데이터 유형을 변경하는 등의 작업을 수행할 수 있습니다. 3. DROP: 데이터베이스 객체를 삭제하는 데 사용됩니다. 예를 들어, 테이블을 삭제하거나 인덱스를 삭제할 때 DROP 문을 ..
DML -- DML(CRUD) : Insert, Select, Update, Delete ** Sequence DROP SEQUENCE Student_seq; CREATE SEQUENCE Student_seq; --> 일반적으로 table과 함께 생성되며, table name과 같은 명을 가짐. --> 일련 번호를 생성하는 데 사용. --> 일련 번호는 주로 고유한 식별자를 생성하거나 데이터베이스 내에서 순차적으로 증가하는 값을 생성하는 데 유용. * 각 구문 요소의 역할 : sequence_name: 생성하려는 시퀀스의 이름을 지정합니다. START WITH : 시퀀스가 시작할 값입니다. 기본적으로 1로 설정됩니다. INCREMENT BY : 시퀀스의 증가값을 지정합니다. 기본적으로 1로 설정됩니다. MINV..
Where 연산자 ** WHERE 연산자 종류 : = ,(NOT)IN, ALL, ANY(SOME), EXISTS SELECT * FROM CUSTOMER c WHERE c.CUSTID IN (3,3,4) -- '이 중 한 개라도 같으면' => 'or' ; -- ANY : 연산자와 조합 SELECT * FROM CUSTOMER c WHERE c.CUSTID >= ANY (3,3,4) -- any앞에 연산자 필요. '이 중에서 하나라도 작거나 같으면' --> if custid is bigger then 3 or 3 or 4 WHERE c.CUSTID = ANY (3,3,4); -- 완벽하게 IN -- all SELECT * FROM CUSTOMER c WHERE c.CUSTID > all (3, 3, 4); -..
Sub Query3 -- 1. 인라인 뷰 (from 부속질의)-따로 for문 -- 괄호안을 테이블로 인식시킴 SELECT t1.*, c.* FROM ( SELECT o.CUSTID AS a, AVG(o.SALEPRICE) AS b FROM ORDERS o GROUP BY o.CUSTID ) t1 -- 별칭 INNER JOIN CUSTOMER c ON c.CUSTID = t1.a WHERE t1.b > 10000 -- for문 끝나고 이후에 필터링 ; -- 별칭을 잘 지어줘야함(필수). 이 상태로도 실행됨 SELECT o.CUSTID, AVG(o.SALEPRICE) AS avg FROM ORDERS o GROUP BY o.CUSTID --HAVING AVG(o.SALEPRICE) > 10000 ; -- ex1. 고객번호가 2..
ER diagram ** 마당서점의 ER diagram --> 각 테이블마다 primary key가있고 --> 각각 one to one / one to many의 relationship이 있다
NVL ☆ NVL : null값 반환. 은근히 쓰임 정확하게 알아두기 -- 고객 별 총 구매액 -- count 가능하지만 깨짐. null이 아니라 1로 출력됨. null때문에 sum도 불가능 -- NVL(SUM(saleprice),0) '안쪽에 null값이 있으면 0으로 변환하여 출력해라' SELECT c.NAME, NVL(SUM(saleprice),0) FROM CUSTOMER c LEFT OUTER JOIN ORDERS o ON c.CUSTID = o.CUSTID GROUP BY c.NAME; -- NULL : 문자가 아닌 키워드, 값 -- '='이 안됨 is로 표현 SELECT * FROM CUSTOMER WHERE PHONE = null; -- 출력안됨 SELECT * FROM CUSTOMER WHERE..
형태변환 1. 날짜 2. 숫자 3. 문자 -- 숫자를 문자로 SELECT TO_CHAR(1234) FROM Dual; -- 문자를 숫자로 SELECT TO_NUMBER('1234') + 55 FROM Dual; -- ☆ 날짜를 문자로 TO_CHAR(날짜, formatter)-> 통계에서 쓰임. 날짜는 사실상 GROUP BY가 불가능하므로 -- JAVA랑 다름. 검색해보기 SELECT TO_CHAR(ORDERDATE,'yyyy.mm.dd HH') FROM ORDERS; -- ☆ 문자를 날짜로 TO_DATE. WHERE조건에 쓰임 SELECT TO_DATE('2014-07-11','yyyy-mm-dd') FROM Dual; -- ADD_MONTHS(date, 숫자). 그냥 더하기도 가능함 -- ☆ SYSDATE. insert시 실행된 시간을 저장해..
DB _ API -- 출력시에 연산이 가능 SELECT orderid + 1, saleprice * 0.1 FROM ORDERS; SELECT 1234, saleprice FROM ORDERS; SELECT '안녕하세요', saleprice FROM ORDERS; -- 문자열 연산 || SELECT '안녕하세요'||'반갑', saleprice FROM ORDERS; SELECT * FROM book WHERE BOOKNAME LIKE '%축구%'; SELECT * FROM book WHERE BOOKNAME LIKE '%' || '축구' || '%'; -- 현재시간 SELECT SYSDATE FROM Dual; SELECT 1234 + 555 FROM Dual; -- ☆ 소수점 반올림. GROUP BY와 같이 쓰임 SE..