데이터베이스(DB)/Oracle DB SQL - 뉴렉처 youtube 강의

10강~12강 - SQL 쿼리 연습을 위한 테이블 준비 / 데이터 조작하기(DML) - INSERT, SELECT, UPDATE, DELETE

의그 2021. 9. 13. 22:27

ROLE 테이블 - 관리자, 학생, 선생님 등을 구분

MEMBER_ROLE - 여러 가지 역할을 동시에.. NEWLEC이라는 회원은 관리자이면서 선생님일 수 있게,

 

예약어 이름으로 된 테이블을 생성하려면, 큰 따옴표("")로 감싸야 한다.
CREATE TABLE "COMMENT"

 

CREATE TABLE NOTICE
(
    ID  NUMBER,
    TITLE   NVARCHAR2(100),
    WRITER_ID   NVARCHAR2(50),
    CONTENT CLOB,
    REGDATE TIMESTAMP,
    HIT NUMBER,
    FILES   NVARCHAR2(1000)
);
CREATE TABLE "COMMENT"
(
    ID  NUMBER,
    CONTENT NVARCHAR2(2000),
    REGDATE TIMESTAMP,
    WRITER_ID   NVARCHAR2(50),
    NOTICE_ID   NUMBER
);

CREATE TABLE ROLE(
    ID  VARCHAR2(50),
    DISCRIPTION NVARCHAR2(500)
);
CREATE TABLE MEMBER_ROLE(
    MEMBER_ID   NVARCHAR2(50),
    ROLE_ID VARCHAR2(50)
);

 

- DDL (CREATE / ALTER / DROP)
- DML (INSERT / SELECT / UPDATE / DELETE) - CRUD
- DCL (GRANT / REVOKE)

INSERT INTO MEMBER(ID, PWD) VALUES('newlec', '1111');
INSERT INTO MEMBER(ID, PWD) VALUES('dragon', '1111');
SELECT id, name, pwd FROM MEMBER;

SELECT id as user_id, name, pwd FROM MEMBER; -- as는 생략 가능

ID를 USER_ID로 변경하여 조회

SELECT id as "user_id", name, pwd FROM MEMBER; -- 소문자 그대로 표시하려면 큰따옴표로 감싸야 함.

UPDATE MEMBER SET PWD='222'; -- 모든 행의 PWD가 111로 변경된다... 대형 사고!!!

<!--

그러나?

 

'오라클 NEWLEC PDB1 서버' 와 똑같은 DB(xepdb1)와 사용자(newlec)로 만든 '수업용 PDB 서버'에서

SELECT id as "user_id", name, pwd FROM MEMBER; -- 조회한 결과 아래 화면. 트랜잭션(커밋/롤백)과 관련.

추가한 행이 나오지 않는 모습.

다음 시간에 자세히 배울 예정.

-->

UPDATE MEMBER SET PWD='333', name='손오공' WHERE id='dragon'; -- UPDATE시 WHERE절 뺴먹지 않도록 주의!

DELETE from member where id like '%rago%'; -- *rago* 삭제 -- from 생략 가능.

delete member where id='newlec' or id='dragon'; -- id가 newlec 또는 dragon인 행 삭제.

select id "user_id", pwd, name from member; -- 데이터 조작 후 조회

 

INSERT, SELECT, UPDATE, DELETE

=====

강의 영상 : https://www.youtube.com/watch?v=uCcnLpGKkyQ