본문 바로가기

전체 글

Oracle SQL - 10 (테이블 분해와 조립) topic이라는 테이블의 데이터가 1억개가 있다고 가정해보자 이것들을 전부 또는 일부를 수정해야 하는 상황이 발생하면 난감해진다 또한 이름과 직업이 똑같은 사람이 존재한다면 더욱 당황스러울 것이다 그리고 만약 1개의 당 1GB의 데이터를 가지고 있다고 한다면 아주 비싼 Oracle의 비용과 저장공간이 낭비될 것이다. 이러한 극단적인 예시를 해결하기 위해 테이블을 분해하는 방법을 고안하였다. 이런 상황을 해결하기 위해 author라는 테이블을 생성하고 join하여 고유의 번호(id)를 부여해준다 그렇게 하면 이름과 직업이 중복되는 현상을 방지할 수 있고 훨씬 더 빠른 시간안에 수정하는 것도 가능하다. 이전 테이블 분해와 반대로 데이터를 결합하는데 topic 테이블과 author 테이블을 결합하려한다. 위와.. 더보기
Oracle SQL - 9 (SQL Developer 실행 방법) ** SQL Developer 사용방법 1. SQL Developer를 실행하고 + 마크를 클릭한다 2. Name과 사용자 이름(U), 비밀번호, 롤 : 기본값으로 설정하고 테스트(T)를 실행하여 생성 성공 여부를 확인한다. 3. CMD에서 사용한 것과 마찬가지로 실행한다 (질의 결과에 보기 좋게 결과 값이 출력됨) 참고) 프로그램 재실행 후 Choibk에 접속하는 방법 (종료시 프로그램을 저장하면 바로 접속이 가능함) ** 프로그램을 종료하기 전에 어느 경로로 저장할 것인지 기억해둘 것 (어느 위치에 있는지 빠르게 찾기 위하여) 더보기
Oracle SQL - 8 (SEQUENCE) (시퀀스를 사용하기 위해 테이블을 삭제하고 다시 생성) DROP TABLE topic; CREATE TABLE topic( id NUMBER NOT NULL, title VARCHAR2(50) NOT NULL, description VARCHAR2(4000), created DATE NOT NULL, CONSTRAINT PK_TOPIC PRIMARY KEY(id) ); 1. 시퀀스 생성 CREATE SEQUENCE SEQ_TOPIC; (시퀀스의 이름) 2. 데이터 삽입 INSERT INTO topic (id,title,description,created) VALUES (SEQ_TOPIC.NEXTVAL,'ORACLE','ORACLE is ...',SYSDATE); INSERT INTO topic (id,t.. 더보기
Oracle SQL - 7 (PK, Primary Key) (우리가 테이블을 생성할 때 id에 PK를 사용하여 고유한 번호를 부여해줄 수 있다) - 장점 : PK를 사용하여 지정된 행을 찾으면 PK를 사용하지 않을 때 보다 훨씬 빠르게 데이터를 찾을 수 있음 DROP TABLE topic; -> 기존에 있던 topic 테이블을 삭제 CREATE TABLE topic( id NUMBER NOT NULL, title VARCHAR2(50) NOT NULL, description VARCHAR2(4000), created DATE NOT NULL, CONSTRAINT PK_TOPIC PRIMARY KEY(id) ); ** 밑줄 해석 CONSTRAINT (제약 조건을 건다) PK_TOPIC (topic 테이블에게) PRIMARY KEY(id) (id라는 row(행)에 .. 더보기
Oracle SQL - 6 (행 삭제, CRUD 의 D) !!주의!! DELECT와 UPDATE를 할 때는 정확하게 무엇을 삭제, 수정할지 표기 DELECT FROM topic WHERE id = 3; 이후 commit; *** 모든 작업이 끝난 뒤에는 commit을 입력하여 작업을 완료 SELECT * FROM topic; -> 삭제 결과 확인 더보기
Oracle SQL - 5 (행 수정, CRUD 의 U) !!주의!! WHERE 문이 없으면 모든 행이 전부 수정됨 1. title과 description 행을 수정 UPDATE topic SET title = 'MSSQL', description = 'MSSQL is...' WHERE id = 3; 이후 commit; *** 모든 작업이 끝난 뒤에는 commit을 입력하여 작업을 완료 SELECT * FROM topic; -> 수정 결과 확인 더보기
Oracle SQL - 4 (정렬과 페이징) 1. 정렬(ORDER BY) SELECT * FROM topic ORDER BY id ASC; -> (ASC, 오름차순은 생략가능) SELECT * FROM topic ORDER BY id DESC; 2. 페이징(Paging) : 데이터를 조각내서 가져오는 기법 SELECT * FROM topic OFFSET 1 ROWS; (1번 행 이후에 나오는 모든 행 출력) * 컴퓨터는 데이터를 읽을 때 0번 부터 읽음 2-1. SELECT * FROM topic OFFSET 0 ROWS; (모든 행) FETCH NEXT 1 ROWS ONLY; (0행 이후 1개의 행만 출력한다 -> 1행만 출력) 2-2. SELECT * FROM topic OFFSET 1 ROWS; (1행 데이터 이후) FETCH NEXT 2 R.. 더보기
Oracle SQL - 3 (테이블 조회, CRUD - R) SELECT * FROM topic; -> 모든 테이블 조회 1. 원하는 column(열)만 출력 SELECT (원하는 컬럼) FROM (테이블); SELECT id,title,created From topic; 2. 원하는 row(행)만 출력 SELECT *(모든 열) FROM (테이블) WHERE id = (원하는 번호); SELECT * FROM topic WHERE id = 1; SELECT * FROM topic WHERE id > 1; -> 원하는 row(행)과 column(열) 출력 SELECT (원하는 컬럼) FROM (테이블) WHERE id = (원하는 번호); SELECT id,title,created From topic WHERE id = 1; 더보기