SQL전문가 정미나 유튜브
2024.05.04~05.05
https://youtube.com/playlist?list=PLyQR2NzLKOCa5UujnJIFR7wOVOD0lS6EB&si=O0HWWYcZSxqXCyk3
Chapter 1
STEP 1. 데이터베이스란?
- 데이터베이스: 데이터를 저장하는 공간
- SQL: 데이터를 다루는데 사용되는 언어
STEP 2. 테이블이란?
- 테이블: entity
- ID, PW, NAME, MOBILE, EMAIL
- column (attribute)
- row
Chapter 2
STEP 1. CREATE
- VARCHAR
- NUMBER
- DATE
💡 초급
CREATE 테이블명 (
컬럼1 데이터 타입(SIZE),
컬럼2 데이터 타입(SIZE),
......
);
💡 중급
CREATE 테이블명 (
컬럼1 데이터 타입(SIZE) NOT NULL,
컬럼2 데티어 타입(SIZE DEFAULT '기본값',
......
);
💡 고급
CREATE 테이블명 (
컬럼1 데이터 타입(SIZE) NOT NULL,
컬럼2 데이터 타입(SIZE) DEFAULT '기본값',
......
);
CONSTRAINT PK명 PRIMARY KEY (PK컬럼명);
COMMENT ON TABLE 테이블명 IS '나의테이블';
COMMENT ON COLUMN 테이블명.컬럼1 IS '코멘트';
👉 실습
CREATE TABLE NETFLIX (
VIDEO_NAME VARCHAR2(50),
CATEGORY VARCHAR2(30),
VIEW_CNT NUMBER(7),
REG_DATE DATE
);
STEP 2. ALTER
-- 컬럼 추가
ALTER TABLE NETFLIX ADD (CAST_MEMBER VARCHAR2(20));
-- 컬럼 size 수정
ALTER TABLE NETFLIX MODIFY (CAST_MEMBER VARCHAR2(50));
-- 컬럼 type 변경
ALTER TABLE NETFLIX MODIFY (CAST_MEMBER NUMBER(2));
-- 컬럼 삭제
ALTER TABLE NETFLIX DROP (CAST_MEMBER);
STEP 3. DROP / TRUNCATE
- DROP TABLE: 테이블을 삭제
- TRUNCATE TABLE: 테이블 초기화
👉 테스트 테이블 생성
CREATE TABLE CODELION (
COL1 VARCHAR2(3),
COL2 VARCHAR2(3)
);
SELECT * FROM CODELION;
INSERT INTO CODELION c VALUES('AAA','BBB');
INSERT INTO CODELION c VALUES('CCC','DDD');
COMMIT;
👉 DROP 테이블 실습
DROP TABLE CODELION ;
👉 TRUNCATE 테이블 실습
TRUNCATE TABLE CODELION ;
Chapter 3
STEP 1. INSERT
- INSERT: 테이블에 데이터를 삽입
INSERT INTO NETFLIX VALUES('어게인 마이 라이프', '드라마', 50, SYSDATE);
INSERT INTO NETFLIX n (VIDEO_NAME, VIEW_CNT) VALUES ('시그널', 42);
INSERT INTO NETFLIX n VALUES ('멜로가 체질', '드라마',30, SYSDATE-30);
INSERT INTO NETFLIX n VALUES ('모범택시', '드라마', 30, SYSDATE-40);
INSERT INTO NETFLIX n VALUES ('낭만닥터 김사부', '드라마', 20, SYSDATE-300);
STEP 2. UPDATE
- UPDATE: 데이터 변경
UPDATE NETFLIX SET VIEW_CNT = 70 WHERE VIDEO_NAME = '어게인 마이 라이프';
UPDATE NETFLIX SET CATEGORY='드라마', REG_DATE=TO_DATE('20210101','YYYYMMDD') WHERE VIDEO_NAME='시그널';
STEP 3. DELETE
- DELETE : 데이터 삭제
👉 DELETE VS TRUNCATE 차이
- TRUNCATE가 모든 데이터를 날림. DELETE는 내가 원하는 데이터만 선택하여 삭제할 수 있음
- TRUNCATE는 한번 실행하면 되돌릴 수 없음. DELETE는 ROLLBACK을 이용하여 되돌릴 수 있음
- 모든 데이터를 삭제하는 경우, DELETE 보다는 TURNCATE가 빠름
DELETE FROM NETFLIX WHERE VIDEO_NAME = '낭만닥터 김사부';
DELETE FROM NETFLIX WHERE CATEGORY = '드라마' AND VIEW_CNT < 35;
DELETE FROM NETFLIX n WHERE VIDEO_NAME IN ('시그널','멜로가 체질');
DELETE FROM NETFLIX n ;
STEP 4. SELECT
- SELECT문: 데이터를 조회하는 쿼리
👉 전체 조회
SELECT * FROM NETFLIX n ;
SELECT VIDEO_NAME, CATEGORY, VIEW_CNT, REG_DATE FROM NETFLIX n ;
👉 equal 조건
SELECT * FROM NETFLIX WHERE VIDEO_NAME = '모범택시';
👉 VIDEO_NAME이 모범택시가 아닌 것 조회
SELECT * FROM NETFLIX WHERE NOT VIDEO_NAME ='모범택시';
SELECT * FROM NETFLIX WHERE VIDEO_NAME <> '모범택시';
👉 VIEW_CNT가 30인 것 조회
SELECT * FROM NETFLIX WHERE VIEW_CNT = 30;
👉 REG_DATE가 최근 한 달 이내인 데이터 출력
SELECT * FROM NETFLIX WHERE REG_DATE > SYSDATE-30;
👉 중복되는 건을 하나로
SELECT DISTINCT CATEGORY FROM NETFLIX;
STEP 5. WHERE(1)
- WHERE: 쿼리문에 조건을 부여함
👉 조건
SELECT * FROM NETFLIX WHERE CATEGORY = '애니메이션';
SELECT * FROM NETFLIX WHERE CATEGORY IN ('애니메이션', '영화');
SELECT * FROM NETFLIX WHERE CATEGORY NOT IN ('애니메이션', '영화');
👉 범위 조건
SELECT * FROM NETFLIX WHERE VIEW_CNT < 70;
SELECT * FROM NETFLIX WHERE VIEW_CNT <= 70;
SELECT * FROM NETFLIX WHERE REG_DATE < TO_DATE('20211231','YYYYMMDD');
STEP 6. WHERE(2)
- 여러 조건
SELECT * FROM NETFLIX WHERE CATEGORY = '애니메이션' AND VIEW_CNT < 70;
SELECT * FROM NETFLIX WHERE CATEGORY = '애니메이션' AND REG_DATE < TO_DATE('20240401','YYYYMMDD');
SELECT * FROM NETFLIX WHERE CATEGORY='애니메이션' OR VIEW_CNT < 20;
SELECT * FROM NETFLIX WHERE CATEGORY = '애니메이션' OR CATEGORY = '영화';
👉 LIKE 조건
SELECT * FROM NETFLIX WHERE VIDEO_NAME LIKE '미%';
SELECT * FROM NETFLIX WHERE VIDEO_NAME LIKE '%구';
SELECT * FROM NETFLIX WHERE VIDEO_NAME LIKE '%의%';
SELECT * FROM NETFLIX WHERE VIEW_CNT >= 60 AND VIEW_CNT <= 70;
SELECT * FROM NETFLIX WHERE VIEW_CNT BETWEEN 60 AND 70;
STEP 7. ORDER BY
- 데이터를 정렬시킴
SELECT * FROM NETFLIX WHERE CATEGORY = '드라마' ORDER BY REG_DATE ASC;
SELECT * FROM NETFLIX WHERE CATEGORY = '드라마' ORDER BY REG_DATE DESC;
STEP 8. GROUP BY
- 데이터 그룹을 묶음
- 그룹핑하는 이유는 집계를 하기 위해서
SELECT CATEGORY, COUNT(*) FROM NETFLIX GROUP BY CATEGORY;
SELECT CATEGORY, SUM(VIEW_CNT) FROM NETFLIX GROUP BY CATEGORY;
SELECT CATEGORY, MAX(VIEW_CNT) FROM NETFLIX GROUP BY CATEGORY;
SELECT CATEGORY, MAX(VIEW_CNT) FROM NETFLIX GROUP BY CATEGORY ORDER BY MAX(VIEW_CNT) DESC;
SELECT CATEGORY, MIN(VIEW_CNT) FROM NETFLIX GROUP BY CATEGORY;
SELECT CATEGORY, MAX(VIEW_CNT), MIN(VIEW_CNT) FROM NETFLIX GROUP BY CATEGORY;
SELECT CATEGORY, AVG(VIEW_CNT) FROM NETFLIX GROUP BY CATEGORY;
300x250
'ETC > LEARN' 카테고리의 다른 글
[혼공얄코] 요청 메소드와 응답코드, 리눅스에 대한 학습 (4주 차) (0) | 2024.07.23 |
---|---|
[혼공얄코] 다양한 IT 용어 학습하기 (3주 차) (0) | 2024.07.16 |
[혼공얄코] 가깝지만 먼 AI에 대해 알아가기 (2주 차) (0) | 2024.07.11 |
[혼공얄코] 혼자 공부하는 얄팍한 코딩 지식 시작! 다시 혼공학습단! (0) | 2024.07.02 |
IT 입문자를 위한 전반적인 개념 정리 - 더코딩클럽 (0) | 2024.05.01 |