SQL 9

CREATE TABLESPACE 참고용

-- 관리자 화면 -- 새로운 TableSpace와 사용자를 등록하기 -- TableSpace : user2TS, -- user : user2 pw : user2 --C:\bizwork\workspace\oracle_data CREATE TABLESPACE user2Ts DATAFILE 'C:/bizwork/workspace/oracle_data/user2.dbf' SIZE 1M AUTOEXTEND ON NEXT 10K; -- 반드시 유저를 만들면서 기본으로 사용할 테이블을 디폴트로 설정해야함 CREATE USER user2 IDENTIFIED BY user2 DEFAULT TABLESPACE user2Ts; GRANT DBA TO user2; TABLESPACE CREATE >> Project_DBMS..

SQL 2020.09.13

20.07.27 SUM의 용도, PIVOT

두개를 복합키로 만들어서 데이터를 입력하는 것은 아주 잘 만들어진 데이터 근데 보기가 불편하니까 PIVOT으로 해주는것은 그냥 보는 용으로 해주는 것!! SUM으로 묶어주는 이유는 1번학생의 영어점수나 국어점수는 2개 이상이 나오면 안된다. CASE WHEN >> MYSQL은 이것만 사용 가능 SUM 은 GROUP BY 덧셈을 하는 용도가 아니라 GROUP BY를 쓸수 있게 해주는 용도일 뿐이다.

SQL 2020.09.13

20.07.20 Oracle/USER1(2020-07-20-매입매출 정규화),USER1(2020-07-20-매입매출).sql

ERP 창고 = 재고 재고관리 판매관리 이익관리 재무회계 우리가 무언가를 관리하는 APP를 통칭하는 하나로 통합해서 볼 수 있는 우리회사의 모든 자원의 모습을 보고싶다 >> USER1(2020-07-20-매입매출 정규화) 항상 서브쿼리 먼저 실행 피네임하고 아이오에 피네임하고 같은 친구가 있냐? WHERE는 나중에 실행됌 원래는 셀렉트에서 젤 먼저 실행이 되는데 여기선 제일 마지막에 실행이 됌 (WHERE 가) IOLIST를 업데이트해서, IO피네임을 찾아서 서브쿼리한테 보ㅓ낸다. 마치 FOR문처럼 반복됌 UPDATE tbl_iolist IO SET io_pcode = ( SELECT p_code FROM tbl_product P WHERE p_name = IO.io_pname ); -- 아이오리스트 펼..

SQL 2020.09.13

20.07.21 정규화

정규화 제 1정규화 요즘에는 제1정규화로 가는 중간단계라고도 본다. 칼럼에는 가급적으로 null값이 없는게 좋음 문제가 생길 수 있는 데이터다 정규화는 칼럼을 임의로 새로 만들어서 기본키 만들어주는게 아니라 있는것들로해서 만들어주는거 (주문번호 + 상품코드) PK 로 복합키로 만들어야하는 ... 기존의데이터만가지고 PK로 사용하는 것도 꽤 많이 나온다. 실제판매가격 F(주문,상품코드) 매개변수로 보내고 실제판매가격을 리턴받는 어떤 함수에 전달을 했을때 그때만 실제판매가격이 추출되는 상황을 완전종속함수 >>> 두개이상 PK값이 있을때 판매가격= F(상품) 상품명 = F2(상품코드) 굳이 두개의 값을 매개변수로 안보내도 되는 현상이 생겨버림 이 상태는 부분함수종속성 부분함수이행 제 2정규화 실제 데이터 제2..

SQL 2020.09.11

20.07.14 SQL 명령어

문법 -- : 한줄 주석 /* 여러줄 주석 */ SQL 명령을 입력할 때 명령이 끝났다라는 것을 알리기 위해 ; 붙여준다. Ctrl + Enter : 현재 커서가 있는 곳의 명령문을 DBMS로 보내고 결과를 받기 -- tab : sys : 관리하는 table 중에 tab이 있다. SELECT * 환경설정 > UTF-8 도구 > 환경설정 > 코드편집기 > 글꼴 (디투코딩) 도구 > 환경설정 > 코드편집기 > 행여백 > 행번호 표시 체크 GIT IGNORE SELECT (CRUD의 READ) -- 현재 오라클에 접속된 사용자(sys)가 관리하는 table들이 있는데 -- 그 중에서 tab이라는 이름의 tab..

SQL 2020.08.31

20.07.15 DML, DCL, 문자열 칼럼 Type, Insert 의 오류들

UPDATE 기존 학과명이 관광정보학으로 변경이 되었을 때 UPDATE tbl_student SET st_dept = '관광정보학' WHERE st_dept = '관광학'; 이러한 Query를 실행 할 수 있다. 이 Query는 다수(2개 이상)의 레코드를 변경하는 쿼리로 가급적 사용하지 말자는 코드이다. 많은 위험요소를 가지고 있기 때문에 학과코드라는 PK로 변경해주는 것이 좋음!! UPDATE tbl_dept SET d_name = '관광정보학' WHERE d_code = 'D0001'; >>>>> USER1(2020-07-15-Student)🙂 TableSpace 생성 오라클에서 공식적으로 Data를 저장하기에 앞서 TableSpace를 생성 TableSpace를 생성하지 않고 Table등을 만들고..

SQL 2020.08.30

20.07.14 DDL, DML, DCL, 문자열 데이터 저장하는 칼럼, SELECTION, PROJECTION, 명명규칙, PK

-- TableSpace 생성(Create) -- TableSpace는 오라클에서 Data를 저장할 물리적 공간을 설정하는 것 -- myTS : 앞으로 SQL을 통해서 사용할 TableSpace의 Alis(이름) -- '.../MyTS.dbf' : 저장할 파일 이름 -- Size : 오라클에서는 성능의 효율성을 주기위해 -- 일단 빈 공간을 일정부분 설정하게 된다. -- 크기는 최초에 저장할 데이터의 크기등을 계산하여 설계하고 설정한다. -- 너무 작으면, 효율성이 떨어지고, 너무 크면 불필요한 공간을 낭비한다. -- 오라클 xe(Express Edition)에서는 table Space의 최대 크기를 11G로 제한한다. -- 만약 Size 10G로 지정하고, 용량이 초과되어 AUTO NEXT로 추가가 되..

SQL 2020.08.28

20.07.16 View, Domain, PIVOT 용어정리

JOIN이 있는 테이블은 VIEW가 가능 DELETE, UPDATE는 VIEW 안됌 SELECT 명령문을 사용하여 복잡한 Query를 작성하고 작성된 Query를 자주 사용하게 될 것으로 예상이 되면 이 Query를 View 생성해 보관할 수 있다. View는 실제 Table과 똑같이 SELECT 명령을 통해 데이터를 조회할 수 있다. 하지만 View는 실제 데이터를 가지고 있지 않다. 원본 Table로 부터 Query를 실행하여 (보통 임시저장소에 저장해두고) 결과를 보여주는 역할을 한다. >> USER1(2020-07-16-Join) 도메인이라는 개념 주소록SEQ 특정한, 같은 type을 갖는 속성 (칼럼)들의 집합 < 논리적 이름은 다르지만 type은 같다. 도메인이 같다는건 type이 다같은 친구..

SQL 2020.08.27