[2020. 12. 02 TIL] My SQL


SQLは

  • 構造化クエリ言語→構造化クエリ言語
  • ではQueryは?

  • 直訳すると「疑問文」
  • の最もよく知られている例は、
  • の検索ウィンドウ内のクエリーQueryです.
  • 記憶する情報をフィルタリングする問題
  • .

    だからSQLとは何ですか?

  • データベースプログラミング言語!
  • データベースにqueryを送信し、希望するデータのみ抽出できます.
  • RDBMS

  • Relational Database Management System
  • RDMBS SQLベース
  • SQL Server, DB2, Oracle, MySQL - - -
  • Table

  • RDBMSでは、データはテーブルに格納される.
  • レコード(行)および列構成
  • SQL Query

  • SELECT - extracts data from a database
  • 
    SELECT * FROM Customers // Customers (table) 에서 모든 데이터 가져오기
    
    SELECT PostalCode, City FROM Customers // Customers 에서 PostalCode, City 데이터(column) 가져오기 
    
    SELECT DISTINCT Country FROM Customers; // distinct 중복되는 row 제거
    
    SELECT COUNT ( DISTINCT Country ) FROM Customers; // 중복제거 후 데이터 개수
    
  • Where
  • SELECT * FROM Customers
    WHERE CustomerID = 1;
    
    // CustomerID column의 값이 1인 모든 데이터 가져오기
    
    SELECT * FROM Customers
    WHERE NOT Country='Germany' AND NOT Country='USA';
    
    // Country 값이 'Germany', 'USA'가 아닌 모든 데이터 가져오기
    
  • Order By
  • SELECT * FROM Customers
    ORDER BY Country;
    
    // Country column 에 따라 정렬됨 (오름차순)
    
    SELECT * FROM Customers
    ORDER BY Country DESC;
    
    // Country column 에 따라 정렬됨 (내림차순)
    
    SELECT * FROM Customers
    ORDER BY Country ASC, CustomerName DESC;
    
    // Counry 오름차순 -> CustomerName 내림차순 (??) -> 헬프데스크 각
  • INSERT INTO - inserts new data into a database
  • //두가지방법이 있따
    // 1. column name과 그에따른 value 특정 (값이 안들어간 column 은 null)
    INSERT INTO table_name (column1, column2, column3, ...)
    VALUES (value1, value2, value3, ...);
    
    // 2. column 특정하지 않고 모든 column 에 추가, 이 경우 column 순서에 맞게 value 입력해야함
    INSERT INTO table_name
    VALUES (value1, value2, value3, ...);
  • Null values
  • SELECT column_names
    FROM table_name
    WHERE column_name IS NULL;
    
    SELECT column_names
    FROM table_name
    WHERE column_name IS NOT NULL;
  • UPDATE - updates data in a database
  • 
    // ID가 1인 데이터 업데이트
    UPDATE Customers
    SET ContactName = 'Alfred Schmidt', City= 'Frankfurt'
    WHERE CustomerID = 1;
    
    // 국가가 Mexico 인 모든 데이터 업데이트
    UPDATE Customers
    SET ContactName='Juan'
    WHERE Country='Mexico';
    
    // 주의! where 조건을 적지 않으면 모든 records가 업데이트됨
    UPDATE Customers
    SET ContactName='Juan';
  • DELETE - deletes data from a database
  • DELETE FROM table_name WHERE condition;
    
    // CustomerName이 Alfreds인 records 삭제
    DELETE FROM Customers WHERE CustomerName='Alfreds Futterkiste';
    
    // Customers 모든 records 삭제 (테이블은 남겨둠)
    DELETE FROM Customers
    
  • Select Top (My SQL)
  • SELECT column_name(s)
    FROM table_name
    WHERE condition
    LIMIT number;
    
    //5개까지만 보여줌 ( My SQL ) 위에꺼랑 같은의미
    SELECT * FROM Customers LIMIT 5;
    
    // country가 Genrmany 인 값 3개 보여줌
    SELECT * FROM Customers
    WHERE Country='Germany'
    LIMIT 3;
    
  • Functions
  • // Min, Max
    SELECT MIN(column_name) //MAX
    FROM table_name
    WHERE condition;
    
    // Price 최소값을 SmallestPrice라는 column name으로 반환
    SELECT MIN(Price) AS SmallestPrice
    FROM Products;
    
    //Count, Sum, AVG
    
    SELECT AVG(column_name) // Count , Sum
    FROM table_name
    WHERE condition;
  • LIKE-カラム内で特定のPatternを検索する
    SELECT column1, column2, ...
    FROM table_name
    WHERE columnN LIKE pattern;
    
    // a로 시작하지 않는 데이터 검색
    SELECT * FROM Customers
    WHERE CustomerName NOT LIKE 'a%';
  • WildCard Characters
  • IN(複数可収縮or条件)
  • SELECT column_name(s)
    FROM table_name
    WHERE column_name IN (value1, value2, ...);
    
    SELECT * FROM Customers
    WHERE Country IN ('Germany', 'France', 'UK');
    
    SELECT * FROM Customers
    WHERE Country IN (SELECT Country FROM Suppliers);
  • Between
  • SELECT column_name(s)
    FROM table_name
    WHERE column_name BETWEEN value1 AND value2;
    inner Join
    onで命名された特性のみを出力します.
    as
    別名→別名
    SELECT * FROM users u INNER JOIN pets
  • CREATE DATABASE - creates a new database
  • ALTER DATABASE - modifies a database
  • CREATE TABLE - creates a new table
  • ALTER TABLE - modifies a table
  • DROP TABLE - deletes a table
  • CREATE INDEX - creates an index (search key)
  • DROP INDEX - deletes an index