Dorothy_YANG
With Dorothy
Dorothy_YANG
전체 방문자
오늘
어제
  • 분류 전체보기 (279)
    • Hi, I'm Dorothy 🕵️‍♂️ (21)
      • Slowly but Surely (18)
      • IT certifications (3)
    • 🤯TIL (80)
      • HTML & CSS (2)
      • Javascript & jQuery (13)
      • React (13)
      • C언어 (1)
      • JAVA (22)
      • Python (2)
      • Oracle SQL (10)
      • My SQL (5)
      • Spring (12)
    • 💻Programmers (17)
    • 🏫 Open API_JAVA (101)
    • 🌎 Project (10)
      • Shopping (10)
    • 💥 Error (24)
    • ⚙ Setting (23)

블로그 메뉴

  • 홈
  • 방명록

공지사항

인기 글

태그

  • CSS
  • AllArgsConstructor
  • 코딩앙마
  • Database
  • Eclipse
  • colaboratory
  • 시작일종료일
  • 노마드코더
  • SQLD합격
  • 연습문제
  • 비쥬얼스튜디오코드
  • 독학후기
  • SQLD합격후기
  • java
  • 기간쿼리
  • SQL
  • spring
  • oracle
  • 기간설정
  • 창초기화
  • 서버등록
  • 이것이자바다
  • Javascript
  • 파이썬온라인
  • 백준
  • googlecolaboratory
  • 오류해결
  • HTML
  • 콜라보레이토리
  • sql기간

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Dorothy_YANG
🏫 Open API_JAVA

[58일차] 테이블 변경 / 테이블 복사 / 뷰 / 인덱스 / 시노님 / 시퀀스 / 파티션 테이블 / SELECT문

[58일차] 테이블 변경 / 테이블 복사 / 뷰 / 인덱스 / 시노님 / 시퀀스 / 파티션 테이블 / SELECT문
🏫 Open API_JAVA

[58일차] 테이블 변경 / 테이블 복사 / 뷰 / 인덱스 / 시노님 / 시퀀스 / 파티션 테이블 / SELECT문

2022. 10. 17. 19:47
728x90

20221017(월)

  • 목차 
    - 테이블 변경
    - 테이블 복사
    - 뷰
    - 인덱스
    - 시노님
    - SELECT문 

< 테이블 변경 >

(1) 컬럼명 변경: col1 컬럼 이름을 col11으로 변경

ALTER TABLE [스키마.]테이블명 RENAME COLUMN 변경전컬럼명 TO 변경후컬럼명;
ALTER TABLE ex2_10 RENAME COLUMN Col1 TO Col11;

 

(2) 컬럼 타입 변경: col2 컬럼을 VARCHAR2(10)에서 VARCHAR2(30)으로 변경

ALTER TABLE [스키마.]테이블명 MODIFY 컬럼명 데이터타입;
ALTER TABLE ex2_10 MODIFY Col2 VARCHAR2(30);

 

(3) 컬럼 추가: col3 NUMBER 타입으로 신규 생성

ALTER TABLE [스키마.]테이블명 ADD 컬럼명 데이터타입;
ALTER TABLE ex2_10 ADD Col3 NUMBER;

 

(4) 컬럼 삭제: col3 컬럼을 삭제

ALTER TABLE [스키마.]테이블명 DROP COLUMN 컬럼명;
ALTER TABLE ex2_10 DROP COLUMN Col3 ;

 

(5) 제약조건 추가: col11에 기본키 추가

ALTER TABLE [스키마.]테이블명 ADD CONSTRAINTS 제약조건명 PRIMARY KEY (컬럼명, ..);
ALTER TABLE ex2_10 ADD CONSTRAINTS pk_ex2_10 PRIMARY KEY (col11);

 

(6) 제약조건 삭제: col11에서 기본키 삭제

ALTER TABLE [스키마.]테이블명 DROP CONSTRAINTS 제약조건명;
ALTER TABLE ex2_10 DROP CONSTRAINTS pk_ex2_10;

 

     ✨ 기존 데이터가 있는 상태에서 컬럼 추가시킬 때 NOT NULL 추가는 에러발생한다.
            NOT NULL은 데이터를 다 채워야 하니까.. 대신 NULL은 성공함.

 


< 테이블 복사 >

  • 테이블 복사는 제약조건이 복사되지 않는다!!!!
  • 상황)  사용하고 있는 기존 테이블의 테이블의 구조를 자주 변경한다면
               미리 복사해 만들어 테스트해보거나, 테이블 데이터 자체를 백업용으로 만들어 놓을 수도 있다.
CREATE TABLE [스키마.]테이블명 AS
SELECT 컬럼1, 컬럼2, ...
FROM 복사할 테이블명;
CREATE TABLE ex2_9_1 AS
SELECT *
FROM ex2_9;

 


< 뷰 >

  • 하나 이상의 테이블이나 다른 뷰의 데이터를 볼 수 있게 하는 데이터베이스 객체
  • 실제 데이터는 뷰를 구성하는 테이블에 담겨 있지만 마치 테이블처럼 사용할 수 있다.
  • 또한 테이블 뿐만 아니라 다른 뷰를 참조해 새로운 뷰를 만들어 사용할 수 있다.
  • 데이터를 본다는 의미가 있으므로 뷰의 정의는 데이터를 조회하는 SELECT문으로 구성된다.
    (select : 저장의 목적보다는 검색의 목적이 강함)
CREATE OR REPLACE VIEW [스키마.]뷰명 AS
SELECT 문장;

 

(1) 뷰 생성 및 뷰 사용


(2) 뷰 삭제

 


< 인덱스 >

  • 테이블에 있는 데이터를 빨리 찾기 위한 용도의 데이터베이스 객체
CREATE[UNIQUE] INDEX [스키마명.]인덱스명
ON [스키마명.]테이블명(컬럼1, 컬럼2, ...);

 

(1) 일반적으로 테이블 전체 로우 수의 15%이하의 데이터를 조회할 때 인덱스를 생성한다

(2) 테이블 건수가 적으면 인덱스를 경유하기보다 테이블 전체를 스캔하는 것이 빠르다.

(3) 데이터의 유일성 정도가 좋거나 범위가 넓은 값을 가진 컬럼을 인덱스로 만드는 것이 좋다

(4) NULL이 많이 포함된 컬럼은 인덱스 컬럼으로 만들기 적당치 않다

(5) 결합 인덱스를 만들 때는, 컬럼의 순서가 중요하다. (보통, 자주 사용되는 컬럼을 순서상 앞에 두는 것이 좋다.)

(6) 테이블에 만들 수 있는 인덱스 수의 제한은 없으나, 너무 많이 만들면 오히려 성능 부하가 발생한다

     인덱스는 스캔 성능을 극대화하기 위해 만든 객체인데,

     너무 많이 만들면 INSERT, DELETE, UPDATE 시에 부하가 발생해 배보다 배꼽이 더 큰 결과를 초래한다.

 


< 시노님 >

  • Synonym은 ‘동의어’란 뜻
  • 데이터베이스 객체는 각자 고유한 이름이 있는데, 이 객체들에 대한 동의어를 만드는 것이 바로 시노님

  • 객체명 = 본명 / 시노님명 = a.k.a. 또는 가명
CREATE OR REPLACE [PUBLIC] SYNONYM [스키마명.]시노님명
FOR[스키마명.]객체명;

 


< 시퀀스 >

  • 자동 순번을 반환하는 데이터베이스 객체
  • 단순히 증감 연산을 이용해 유일한 숫자를 구할 때는 시퀀스를 사용하면 매우 편리
CREATE SEQUENCE [스키마명.]시퀀스명
INCREMENT BY 증감숫자
START WITH 시작숫자
NOMINVALUE | MINVALUE 최솟값
NOMAXVALUE | MAXVALUE 최댓값
NOCYCLE | CYCLE
NOCACHE | CACHE;

 


< 파티션 테이블 >

  • 테이블에 있는 특정 컬럼 값을 기준으로 데이터를 분할해 저장해 놓는 것

< SELECT문 > - 읽어오는 것

  • 가장 기본적인 SQL문
  • 테이블이나 뷰에 있는 데이터를 조회할 때 사용하는 문장
SELECT * 혹은 컬럼
FROM [스키마.]테이블명 혹은 [스키마.]뷰명
WHERE 조건
ORDER BY 컬럼;

 

 

 

 

 

 

 

728x90
저작자표시 (새창열림)

'🏫 Open API_JAVA' 카테고리의 다른 글

[60일차] 변환 함수 / NULL 관련 함수 / 기타 함수 / GROUP BY 절과 HAVING 절 / ROLLUP 절과 CUBE 절 / 집합 연산자  (0) 2022.10.21
[59일차] SQL 문장 살펴보기 (UPDATE / MERGE / DELETE / COMMIT과 ROLLBACK, TRUNCATE / ROWNUM / 함수)  (0) 2022.10.21
[57일차] 데이터 타입(문자, 숫자, 날짜, LOB) / NULL vs NOT NULL / 제약조건 (Constraints)  (0) 2022.10.17
[56일차] SQL, PS/SQL / 테이블스페이스 생성  (0) 2022.10.16
[55일차] 데이터 베이스 설정 및 샘플 스키마 설치  (0) 2022.10.14
  • < 테이블 변경 >
  • < 테이블 복사 >
  • < 뷰 >
  • < 인덱스 >
  • < 시노님 >
  • < 시퀀스 >
  • < 파티션 테이블 >
  • < SELECT문 > - 읽어오는 것
'🏫 Open API_JAVA' 카테고리의 다른 글
  • [60일차] 변환 함수 / NULL 관련 함수 / 기타 함수 / GROUP BY 절과 HAVING 절 / ROLLUP 절과 CUBE 절 / 집합 연산자
  • [59일차] SQL 문장 살펴보기 (UPDATE / MERGE / DELETE / COMMIT과 ROLLBACK, TRUNCATE / ROWNUM / 함수)
  • [57일차] 데이터 타입(문자, 숫자, 날짜, LOB) / NULL vs NOT NULL / 제약조건 (Constraints)
  • [56일차] SQL, PS/SQL / 테이블스페이스 생성
Dorothy_YANG
Dorothy_YANG
Slowly but Surely, 비전공 문과생의 개발공부

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.