본문 바로가기
BackEnd/Backend 공부 정리

sqldeveloper-9.1

by Brilliant_Graphite 2024. 8. 19.

-- DDL (Data Definition Language) : 데이터 정의어
-- 1. CREATE : 데이터베이스 객체(예, 테이블, 뷰, 함수, 트리거, 시퀀스...) 생성
-- 2. ALTER : 데이터베이스 객체(예, 테이블 구조, 테이블 이름/길이, 자료형) 수정
-- 3. DROP : 데이터베이스 객체 삭제
-- * 접속 윈도우에서, 마우스 우클릭 -> 생성, 수정, 삭제
-- * 삭제(DROP)에서 비우기(PURGE) : 복구 불가능(휴지통을 거치지 않음)
-- * TRUNCATE : 데이터베이스 객체의 구조는 남기고, 데이터만 삭제하는 명령 ==> 자동 커밋

-- =======
-- 테이블 생성 : CREATE
-- ======

-- 오라클 데이터 타입 : 숫자(NUMBER) / 문자(CHAR: 고정길이, VARCHAR2: 가변길이) / 날짜(DATE)
-- VARCHAR : 오라클이 사용하기 위한 예약어의 일종으로 MySQL/MariaDB의 경우 존재하는 타입
-- NUMBER, NUBER(p), NUMBER(p, i) : 숫자/ 숫자(길이) / 숫자(전체길이, 소수길이)
-- * 정수길이 : 전체길이 - 소수길이
-- CHAR, CHAR(byte), CHAR(char n) : 문자 / 문자(길이)/ 문자(문자길이) : 잘 안씀
-- VARCHAR2(byte), VARCHAR2(char n) : 가변문자(길이) / 가변문자(문자길이) : 자주사용
-- NCHAR, NVARCHAR : National (동아시아 언어 - 한/중/일) 문자지원
-- 보통 4000byte가 최대~ 설정
-- LOB( Large OBject ) : CLOB(Character), BLOB(Binal LOB), TEXT/FILE : GB 단위~

CREATE TABLE 테이블명 ( 
    컬럼명1 데이터타입(길이),
    컬럼명2 데이터타입(길이),
    ...
    컬럼명n 데이터타입(길이),
 );
 
-- * CTAS 사용 : 1) 구조만 복사 2) 구조와 데이터를 복사하면서 테이블을 생성할 수 있다.
-- 데이터 모델링 : 개념 모델(업무파악, 분석) --> 논리 모델(구조설계) --> 물리 모델(구현)
-- ERD(Entity Relational Diagram, 개체 관계도) : 논리 모델
-- 회원 정보 테이블 : members
-- 아이디 : id,가변문자(50 bytes)
-- 비밀번호 : pwd,가변문자(70 바이트)
-- 이름 : name,가변문자(30 바이트)
-- 전화번호 : 가변문자(11~13바이트)
-- 생년월일 : 
-- 성별
-- 이메일
-- 주소
-- 회원등급

-- SQL 구현 : 물리모델
CREATE TABLE members (
    id VARCHAR2(50),
    pwd VARCHAR2(50),
    name VARCHAR2(30),
    email VARCHAR2(30),
    birth DATE,
    phone VARCHAR(15),
    grade VARCHAR2(10),
    addr VARCHAR2(100),
    gender CHAR(1)
);
-- 작은 따옴표 사용 ==> 일반적인 문자열 데이터나 날짜 데이터
-- Table "members"가 생성되었습니다.

-- Q. 멤버스 테이블에 관리자 회원 정보를 삽입하시오! (데이터 무결성을 위한 제약조건 x ==> 중복데이터 발생가능)
INSERT INTO members (id, pwd, name)
VALUES ('super','asdf1234','관리자');

UPDATE members
SET gender='F',
    grade = 'Staff'
WHERE id = 'super';

SELECT *
FROM members;



-- ================
-- 데이터베이스 객체 삭제 : DROP
-- ================
-- DML과 다르게 DDL은 ROLLBACK 되지 않음 

DROP TABLE 테이블명;
DROP TABLE members;

-- Table MEMBERS가 삭제되었습니다.

-- ================
-- 데이터베이스 객체 수정 : ALTER
-- ================
-- 테이블의 구조를 하는 명령으로, 이미 데이터가 존재하는 경우 테이블을 삭제하고 다시 생성할 수
-- 없기 때문에, 구조를 변경(추가, 수정,삭제)하는 명령

-- 1) 컬럼을 추가
ALTER TABLE 테이블명
ADD (컬럼명1 데이터타입1(길이),..);

-- Q. MEMBER 테이블에 관심사 칼럼을 추가하시오. 단, 관심사컬럼은 가변 문자열 10바이트로,
-- 컬럼명은 interest라고 한다.
-- * 이미 존재하는 테이블에서의 구조를 변경

ALTER TABLE members
ADD (interest VARCHAR2(10));
-- Table MEMBERS이(가) 변경되었습니다.

DESC members;
-- 2) 컬럼을 수정
ALTER TABLE 테이블명
MODIFY (컬럼명1 데이터타입(길이),...);

ALTER TABLE members
MODIFY (interest VARCHAR2(5));

--Table MEMBERS이(가) 변경되었습니다.

DESC members;

-- 3) 컬럼을 삭제

ALTER TABLE 테이블명
DROP COLUMN 컬럼명;

ALTER TABLE members
DROP COLUMN interest;
-- ORA-00905: 누락된 키워드, DROP COLUMN이라고 쓰지 않아서 생기는 오류
-- Table MEMBERS이(가) 변경되었습니다.

-- 4) 컬럼 이름을 변경
ALTER TABLE 테이블명
RENAME COLUMN 기존컬럼명 TO 변경컬럼명;
-- members 테이블의 interest 컬럼을 inter라고 변경한다.

ALTER TABLE members
RENAME COLUMN interest TO inter;

DESC members;

-- =====
--1) DELETE 명령으로 삭제

DELETE FROM emp30;
--6개 행이 삭제되었습니다.

--2) TRUNCATE 명령으로 삭제
ROLLBACK;
TRUNCATE TABLE emp30;
--롤백 완료.
-- Table emp30이(가) 잘렸습니다.

 

 

1) 개체 (Entity)

현실 세계에 존재하는 개념, 업무에서 주요 관심사항의 핵심 키워드

예) 고객, 회원, 학생

 

2) 속성(Attribute)

개체의 특성, 성격

예) 고객, 이름, 사는 곳, 연락처

 

3) 관계(Relationship)

개체와 개체의 연관성, 관련성

예) 고객과 개체와 상품 개체가 있다면, 고객은 상품을 구입하는 관계

반대로 상품은 고객에게 판매되는데 이떄 1:1, 1:N, M:N의 관계와 필수와 선택사항 여부를 결정하여야 함

 

https://app.diagrams.net/

 

Flowchart Maker & Online Diagram Software

Flowchart Maker and Online Diagram Software draw.io is free online diagram software. You can use it as a flowchart maker, network diagram software, to create UML online, as an ER diagram tool, to design database schema, to build BPMN online, as a circuit d

app.diagrams.net

 

'BackEnd > Backend 공부 정리' 카테고리의 다른 글

sqldeveloper-10  (0) 2024.08.20
Java-10  (0) 2024.08.20
sqldeveloper-9  (1) 2024.08.19
Java-9  (0) 2024.08.19
sqldeveloper-8  (0) 2024.08.14