SQL Guide

SQL Guide

SQL (Structed Query Language)

  • RDBMS์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ •์˜์™€ ์กฐ์ž‘์„ ์œ„ํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์–ธ์–ด

  • ๋ฐ์ดํ„ฐ์˜ ์ฐธ์กฐ, ๋ณ€๊ฒฝ, ์‚ญ์ œ, ๊ณ„์‚ฐ ๋“ฑ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ๊ทธ ์•ˆ์— ์žˆ๋Š” ํ…Œ์ด๋ธ” ๋ฐ ๋ฐ์ดํ„ฐ๊ฐ€ ํ•„์š”

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๊ธฐ๋ณธ ์กฐ์ž‘

  1. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์กฐํšŒ

    SHOW DATABASES;
  2. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ƒ์„ฑ

    CREATE DATABASE <database_name>;
  3. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ ํƒ

    USE <database_name>;
  4. .sql ํŒŒ์ผ์—์„œ SQL ๋ฌธ ์ฐธ์กฐ

    SOURCE <.sql file path>;
  5. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‚ญ์ œ

    DROP DATABASE <database_name>;

ํ…Œ์ด๋ธ”์˜ ๊ธฐ๋ณธ ์กฐ์ž‘

  1. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ํ…Œ์ด๋ธ” ์กฐํšŒ

    SHOW TABLES;
  2. ํ…Œ์ด๋ธ” ์ƒ์„ฑ

    • datatype

      • INTEGER

      • NUMERIC

      • CHAR

      • VARCHAR

      • DATE

    CREATE TABLE table_name (
    	column1 datatype, 
    	column2 datatype,
    	column3 datatype,
    ...
    )
  3. ํ…Œ์ด๋ธ” ์ปฌ๋Ÿผ ์ •๋ณด ํ‘œ์‹œ

    DSCRIBE talble_name;
  4. ๊ธฐ์กด์˜ ํ…Œ์ด๋ธ”์— ๋ ˆ์ฝ”๋“œ ์ถ”๊ฐ€

    INSERT INTO table_name (column1, column2, column3, ...)
    VALUES (value1, value2, value3);
  5. ๊ธฐ์กด ํ…Œ์ด๋ธ” ๋ ˆ์ฝ”๋“œ ๋ณ€๊ฒฝ

    UPDATE table_name
    SET column1 = value1, column2 = value2, ...
    WHERE condition;
  6. ํ…Œ์ด๋ธ”์—์„œ ๋ ˆ์ฝ”๋“œ๋ฅผ ์‚ญ์ œ

    DELETE FROM table_name
    WHERE condition;
  7. ํ…Œ์ด๋ธ”์„ ์‚ญ์ œ

    DROP TABLE table_name;
  8. ๊ธฐ์กด์˜ ํ…Œ์ด๋ธ”์— ์ปฌ๋Ÿผ์„ ์ถ”๊ฐ€, ์‚ญ์ œ ๋˜๋Š” ๋ณ€๊ฒฝ

    ## ์ปฌ๋Ÿผ ์ถ”๊ฐ€
    ALTER TABLE table_name
    ADD column_name datatype;
    ## ์ปฌ๋Ÿผ ์‚ญ์ œ
    ALTER TABLE table_name
    DROP COLUMN column_name;
    ## ์ปฌ๋Ÿผ ๋ณ€๊ฒฝ
    ALTER TABLE table_name
    ALTER COLUMN column_name datatype;
  9. ํ…Œ์ด๋ธ” ์ด๋ฆ„ ๋ณ€๊ฒฝ

    • table-name (x) โ†’ table_name(o)

    RENAME TABLE table_name to table_name2;

๋ฐ์ดํ„ฐ ๊ฒ€์ƒ‰์–ด

  1. SELECT

    SELECT * FROM table_name;
    SELECT column1, column2, ...
    FROM table_name;
  2. SELECT DISTINCT

    SELECT DISTINCT column1, column2, ...
    FROM table_name;
  3. WHERE

    • where์˜ ์กฐ๊ฑด

      • ๋ฌธ์ž์—ด ๋น„ํšจ (text)

      • ์ˆ˜์น˜์˜ ๋น„๊ต(numbers)

      • AND, OR, NOT ๋“ฑ์˜ ๋…ผ๋ฆฌ ์—ฐ์‚ฐ

    SELECT product_name, product_type
    FROM Product
    WHERE product_type = 'clothes';
  4. GROUP BY

    • ํŠน์ • ์ปฌ๋Ÿผ์„ ํ‚ค์œผ ํ•ฉ๊ณ„๋‚˜ ํ‰๊ท ์œผ๋กœ ํ‘œ์‹œ

    • ์ง‘๊ณ„ ํ•จ์ˆ˜

      • COUNT

      • MAX /MIN

      • SUM

      • AVG

    • SELECT ๋ฌธ์˜ ์‹คํ–‰ ์ˆœ์„œ :

      FROM โ†’ WHERE โ†’ GROUP BY โ†’ SELECT

    SELECT COUNT(CustomerID), Country
    FROM Customers
    GROUP BY Country;
    SELECT column_name(s)
    FROM table_name
    WHERE condition
    GROUP BY column_name(s);
  5. Having

    • ์ง‘๊ณ„ ํ•จ์ˆ˜์™€ ํ•จ๊ป˜ ์‚ฌ์šฉ

    • HAVING vs WHERE

    SELECT COUNT(CustomerID), Country
    FROM Customers
    Group BY Country
    HAVING COUNT(CustomerID) > 5;
    SELECT column_name(s)
    FROM table_name
    WHERE condition
    GROUP BY column_name(s)
    HAVING condition
    ORDER BY column_name(s);
  6. ORDER BY

    • ๊บผ๋‚ธ ๊ฒฐ๊ณผ ์ •๋ ฌ

      • ASC(์˜ค๋ฆ„์ฐจ์ˆœ)(default) or DESC(๋‚ด)์ˆ˜์ฐจ์ˆœ

    SELECT column1, column2, ...
    FROM table_name
    ORDER BY column1, column2, .... ASC|DESC;
  7. BETWEEN

    SELECT column_name(s)
    FROM table_name
    WHERE column_name BETWEEN value1 AND value2;
  8. LIKE

    • % : 0๋ฌธ์ž ์ด์ƒ์˜ ์ž„์˜์˜ ๋ฌธ์ž์—ด

    • _ : ์ž„์˜์˜ ๋ฌธ์ž

    SELECT column1, coulumn2, ...
    FROM table_name
    WHERE column1 LIKE pattern;
  9. IN

    • WHERE์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜์—ฌ ์—ฌ๋Ÿฌ ๊ฐ’ ์ง€์ • ๊ฐ€๋Šฅ

    SELECT column_name(s)
    FROM table_name
    WHERE column_name IN (value1, value2, ....);
  10. JOIN

    SELECT column_name(s)
    FROTM table 
    INNER JOIN table2
    ON table.column_name = table2.column_name;
  11. VIEW

    • ๊ฐ€์ƒ์˜ ํ…Œ์ด๋ธ”

    • ํ•ญ์ƒ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ตœ์‹  ๋ฐ์ดํ„ฐ๋ฅผ ํ‘œ์‹œ

    CREATE VIEW view_name AS 
    SELECT column1, column2, ...
    FROM table_name
    WHERE condition;
    ## view ์‚ญ์ œ
    DROP VIEW <view_name>;
  12. ํ•˜์œ„

    • ๊ธฐ์กด ํ…Œ์ด๋ธ”์„ ๊ฐ€๊ณตํ•œ ๊ฒƒ์—์„œ ๋ฐ์ดํ„ฐ ๊ฒ€์ƒ‰

    SELECT DISTINCT course_id FROM section
    WHERE semester = 'Fall' AND year= 2018
    AND course_id IN (
    SELECT course_id
    FROM section 
    WHERE semester = 'Spring' AND yesr= 2019
    );

reference

Etc

How do I get SUM function in MySQL to return '0' if no values are found?

MySQL ๊ณ„์‚ฐํ•˜๊ฑฐ๋‚˜ ๋ฌธ์ž์—ด์„ ๊ฒฐํ•ฉํ•ด์„œ ํ‘œ์‹œํ•˜๊ธฐ, MySQL ํ•จ์ˆ˜ ์‚ฌ์šฉํ•˜๊ธฐ

OracleSQL - ์ค‘์ฒฉ ๊ทธ๋ฃนํ•จ์ˆ˜ / ๋ถ„์„ํ•จ์ˆ˜

sql group by 2๊ฐœ ์ด์ƒ : ๋‚˜๋ˆŒ ๊ธฐ์ค€์„ select ์ ˆ์—๋„ ๋˜‘๊ฐ™์ด ์ ์–ด์ฃผ๋ฉด ๋œ๋‹ค.

Last updated