๐Ÿ’ป
ComputerScience
  • ๋ชฉ์ฐจ
  • Operating System
    • ์šด์˜์ฒด์ œ๋ž€
    • ํ”„๋กœ์„ธ์Šค vs ์Šค๋ ˆ๋“œ
    • ํ”„๋กœ์„ธ์Šค ์ฃผ์†Œ ๊ณต๊ฐ„
    • ์ธํ„ฐ๋ŸฝํŠธ(Interrupt)
    • ์‹œ์Šคํ…œ ์ฝœ(System Call)
    • PCB์™€ Context Switching
    • IPC(Inter Process Communication)
    • CPU ์Šค์ผ€์ค„๋ง
    • ๋ฐ๋“œ๋ฝ(DeadLock)
    • Race Condition
    • ์„ธ๋งˆํฌ์–ด(Semaphore) & ๋ฎคํ…์Šค(Mutex)
    • ํŽ˜์ด์ง• & ์„ธ๊ทธ๋จผํ…Œ์ด์…˜
    • ํŽ˜์ด์ง€ ๊ต์ฒด ์•Œ๊ณ ๋ฆฌ์ฆ˜
    • ๋ฉ”๋ชจ๋ฆฌ(Memory)
    • ํŒŒ์ผ ์‹œ์Šคํ…œ
  • Network
    • OSI 7 ๊ณ„์ธต
    • TCP 3 way handshake & 4 way handshake
    • TCP/IP ํ๋ฆ„์ œ์–ด & ํ˜ผ์žก์ œ์–ด
    • UDP
    • ๋Œ€์นญํ‚ค & ๊ณต๊ฐœํ‚ค
    • HTTP & HTTPS
    • TLS/SSL handshake
    • ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ(Load Balancing)
    • Blocking,Non-blocking & Synchronous,Asynchronous @LifesLike
    • Blocking & Non-Blocking I/O
  • Algorithm
    • ๊ฑฐํ’ˆ ์ •๋ ฌ(Bubble Sort)
    • ์„ ํƒ ์ •๋ ฌ(Selection Sort)
    • ์‚ฝ์ž… ์ •๋ ฌ(Insertion Sort)
    • ํ€ต ์ •๋ ฌ(Quick Sort) @mimwin
    • ๋ณ‘ํ•ฉ ์ •๋ ฌ(Merge Sort)
    • ํž™ ์ •๋ ฌ(Heap Sort)
    • ๊ธฐ์ˆ˜ ์ •๋ ฌ(Radix Sort)
    • ๊ณ„์ˆ˜ ์ •๋ ฌ(Count Sort)
    • ์ด๋ถ„ ํƒ์ƒ‰(Binary Search)
    • ํ•ด์‹œ ํ…Œ์ด๋ธ” ๊ตฌํ˜„
    • DFS & BFS @sujin-kk
    • ์ตœ์žฅ ์ฆ๊ฐ€ ์ˆ˜์—ด(LIS)
    • ์ตœ์†Œ ๊ณตํ†ต ์กฐ์ƒ(LCA)
    • ๋™์  ๊ณ„ํš๋ฒ•(Dynamic Programming)
    • ๋‹ค์ต์ŠคํŠธ๋ผ(Dijkstra) ์•Œ๊ณ ๋ฆฌ์ฆ˜
    • ๋น„ํŠธ๋งˆ์Šคํฌ(BitMask)
  • Database
    • ํ‚ค(Key) ์ •๋ฆฌ
    • SQL - JOIN
    • SQL Injection
    • SQL vs NoSQL
    • ์ •๊ทœํ™”(Nomalization)
    • ์ด์ƒ(Anomaly)
    • ์ธ๋ฑ์Šค(INDEX)
    • ํŠธ๋žœ์žญ์…˜(Transaction)
    • ํŠธ๋žœ์žญ์…˜ ๊ฒฉ๋ฆฌ ์ˆ˜์ค€(Transaction Isolation Level)
    • ์ €์žฅ ํ”„๋กœ์‹œ์ €(Stored PROCEDURE)
    • ๋ ˆ๋””์Šค(Redis) @sujin-kk
  • Java
    • Java ์ปดํŒŒ์ผ ๊ณผ์ •
    • Call by Value vs Call by Reference
    • String & StringBuffer & StringBuilder
    • ์ž๋ฐ” ๊ฐ€์ƒ ๋จธ์‹ (Java Virtual Machine)
    • Casting(์—…์บ์ŠคํŒ… & ๋‹ค์šด์บ์ŠคํŒ…)
    • ์˜คํ†  ๋ฐ•์‹ฑ & ์˜คํ† ์–ธ๋ฐ•์‹ฑ
    • Thread ํ™œ์šฉ
    • ๊ณ ์œ  ๋ฝ(Intrinsic Lock)
    • ๋ฌธ์ž์—ด ํด๋ž˜์Šค
    • Garbage Collection
    • Promotion & Casting
    • Primitive type & Reference type
    • ์ง๋ ฌํ™”(Serialization)
    • Error & Exception
    • Stream API
    • Record
    • Composition
Powered by GitBook
On this page
  • SQL - JOIN
  • ์˜ˆ์‹œ ํ…Œ์ด๋ธ”
  • INNER JOIN
  • LEFT OUTER JOIN
  • RIGHT OUTER JOIN
  • FULL OUTER JOIN
  • CROSS JOIN
  • SELF JOIN
  1. Database

SQL - JOIN

Previousํ‚ค(Key) ์ •๋ฆฌNextSQL Injection

Last updated 2 years ago

SQL - JOIN

์˜ˆ์‹œ ํ…Œ์ด๋ธ”

  • course

  • prereq

CREATE DATABASE join_db;

USE join_db;

CREATE TABLE course(
    course_id varchar(20),
    title varchar(20),
    dept_name varchar(20),
    credits int,
    PRIMARY KEY (course_id)
);

INSERT INTO course values('CS-101', '๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค', '์ปดํ“จํ„ฐ๊ณตํ•™๋ถ€', 3);
INSERT INTO course values('CS-103', '๋ฐ์ดํ„ฐ์‚ฌ์ด์–ธ์Šค๊ฐœ๋ก ', '์ปดํ“จํ„ฐ๊ณตํ•™๋ถ€', 3);
INSERT INTO course values('CS-105', '์ž๋ฃŒ๊ตฌ์กฐ', '์ปดํ“จํ„ฐ๊ณตํ•™๋ถ€', 3);
INSERT INTO course values('CS-201', '์•Œ๊ณ ๋ฆฌ์ฆ˜', '์ปดํ“จํ„ฐ๊ณตํ•™๋ถ€', 3);
INSERT INTO course values('CS-303', '์ปดํ“จํ„ฐ๊ณตํ•™์„ธ๋ฏธ๋‚˜', '์ปดํ“จํ„ฐ๊ณตํ•™๋ถ€', 1);

CREATE TABLE prereq(
    course_id varchar(20),
    prereq_id varchar(20),
    PRIMARY KEY (course_id, prereq_id)
);

INSERT prereq values('CS-201', 'CS-101');
INSERT prereq values('CS-201', 'CS-105');
INSERT prereq values('CS-204', 'CS-105');

INNER JOIN

  • ๊ต์ง‘ํ•ฉ์œผ๋กœ, ๊ธฐ์ค€ ํ…Œ์ด๋ธ”๊ณผ join ํ…Œ์ด๋ธ”์˜ ์ค‘๋ณต๋œ ๊ฐ’์„ ๋ณด์—ฌ์ค€๋‹ค.

SELECT c.course_id, title, dept_name, credits, p.prereq_id
FROM course c join prereq p on c.course_id = p.course_id;

LEFT OUTER JOIN

  • ์™ผ์ชฝ ํ…Œ์ด๋ธ”์„ ๊ธฐ์ค€์œผ๋กœ joinํ•ด์„œ, ์™ผ์ชฝ ํ…Œ์ด๋ธ”์— ๋ชจ๋“  ๋ฐ์ดํ„ฐ๊ฐ€ ๋‚˜ํƒ€๋‚œ๋‹ค.

SELECT c.course_id, title, dept_name, credits, p.prereq_id
FROM course c LEFT JOIN prereq p on c.course_id = p.course_id

RIGHT OUTER JOIN

SELECT c.course_id, title, dept_name, credits, p.prereq_id
FROM course c RIGHT JOIN prereq p on c.course_id = p.course_id;

FULL OUTER JOIN

  • ํ•ฉ์ง‘ํ•ฉ์œผ๋กœ, join์—์„œ ๋น ์ง„ ๋ฐ์ดํ„ฐ๋„ null์„ ์ด์šฉํ•ด์„œ ๋‚˜ํƒ€๋‚ธ๋‹ค. ์ฆ‰ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๊ฐ€ ๊ฒ€์ƒ‰๋œ๋‹ค.

SELECT c.course_id, title, dept_name, credits, p.prereq_id
FROM course c LEFT JOIN prereq p on c.course_id = p.course_id
UNION
SELECT c.course_id, title, dept_name, credits, p.prereq_id
FROM course c RIGHT JOIN prereq p on c.course_id = p.course_id;

CROSS JOIN

  • ๋ชจ๋“  ๊ฒฝ์šฐ๋ฅผ ํ‘œํ˜„ํ•ด์ค€๋‹ค. ๋”ฐ๋ผ์„œ (1๋ฒˆ ํ…Œ์ด๋ธ” row ๊ฐœ์ˆ˜)*(2๋ฒˆ ํ…Œ์ด๋ธ” row ๊ฐœ์ˆ˜) ๋งŒํผ ๋ชจ๋‘ ๋‚˜ํƒ€๋‚œ๋‹ค.

SELECT c.course_id, title, dept_name, credits, p.prereq_id
FROM course c CROSS JOIN prereq p;

SELECT c.course_id, title, dept_name, credits, p.prereq_id
FROM course c, prereq p;

SELF JOIN

  • ์ž๊ธฐ ์ž์‹ ๊ณผ ์ž๊ธฐ ์ž์‹ ์„ ์กฐ์ธํ•œ๋‹ค.

  • ์ž์‹ ์ด ๊ฐ–๊ณ  ์žˆ๋Š” ์ปฌ๋Ÿผ์„ ๋ณ€ํ˜•์‹œ์ผœ ํ™œ์šฉํ•  ๋•Œ ํ™œ์šฉํ•œ๋‹ค.

SELECT *
FROM course c1, course c2;
| | |

img
img
img
img
img
img
image-20221117122522246
image-20221117122531879
image-20221117122954379
image-20221117123338920
image-20221117123427343
image-20221117123456672
image-20221117123646045
image-20221117123835182