[データベース]MySQLの基礎知識

11718 ワード

リレーショナル・データベース?

  • データ要約表
  • のソート、検索などを容易かつ安全に行うことができる.
  • 🍔 ルート・ユーザーを常に使用するとリスクがあります.
    通常のユーザーを登録して作業することをお勧めしますが、rootユーザーは重要なことがあった場合にのみ使用します.

    SQL (Structured Query Language)


    特長簡単!
    特長重要!
    *リレーショナル・データベースは、データベース・サーバを制御する際に使用される標準化された言語です.

    CRUD (Create Read Update Delete)


    CRUDはDATABASEの本質です.

    データベースの作成


    1.データベースの作成

    CREATE DATABASE 데이터베이스이름;

    2.データベースの表示(すべてのデータベースを表示)

    SHOW DATABASES;

    3.データベースを使用


    これから実行するすべてのコマンドがこのデータベースに適用されます.
    USE 데이터베이스이름;

    テーブルの作成


    スプレッドシートとは異なり、sqlはデータ型を決定します.
    CREATE TABLE topic(
        id INT(11) NOT NULL AUTO_INCREMENT,
        title VARCHAR(100) NOT NULL,
        description TEXT NULL,
        created DATETIME NOT NULL,
        author VARCHAR(30) NULL,
        profile VARCHAR(100) NULL,
        PRIMARY KEY(id));
    CREATE TABLE 테이블이름(
        속성이름 데이터타입(길이) NOT NULL AUTO_INCREMENT,
        속성이름 데이터타입(길이) NULL,
        .
        .
        .
        PRIMARY KEY(속성이름));
        
        # NULL: NULL 값을 허용한다
        # NOT NULL: NULL값을 허용하지 않는다
        # AUTO_INCREMENT: 자동으로 1씩 증가하도록.
        # PRIMARY KEY: 가장 중요한 column이자, 각각의 값들을 고유하도록(중복되지 않도록) 하는 속성

    表充填(INSERT SELECT DELETE UPDATE)

    # 테이블 구조 보여줌
    DESC topic;
    
    # 데이터 삽입 (row)
    INSERT INTO topic (title, description, created, author, profile) 
        VALUES('MySQL', 'MySQL is ...', NOW(), 'egoing', 'developer');
        # NOW() 현재시간
    
    # 데이터 읽기
    SELECT * FROM topic;
    
    # 원하는 데이터 골라 읽기
    SELECT id, title, created FROM topic;
    
    # 조건에 맞는 데이터만 읽기 (author가 'egoing'인 행만 읽기)
    SELECT id, title, created, author FROM topic 
        WHERE author='egoing';
    
    # 정렬하기 ORDER BY (ASC 오름차순, DESC 내림차순)
    SELECT id, title, created, author FROM topic 
        WHERE author='egoing' ORDER BY id DESC;
    
    # 개수 제한하기 LIMIT (위에서 행 두개만 보여줌) > 나중에 페이징기능에 사용 가능
    SELECT id, title, created, author FROM topic 
        WHERE author='egoing' ORDER BY id DESC LIMIT 2;
    
    # 데이터 update
    UPDATE topic SET description='Oracle is ...', title='Oracle' WHERE id=2;
    
    #데이터 삭제 (*delete 잘못하면 인생이 바뀔 수 있다,, 항상 조심!)
    DELETE FROM topic WHERE id = 5;

    リレーショナル・データベースが必要です


    重要なのは重複除外です
    テーブルが分かれているので、JOINで他のテーブルと何の関係も築くことができます.
    1つを変更すれば、関係を確立するすべてのテーブルの内容に適用できます.
    JOINがauthorテーブルとtopicテーブルを処理する過程は以下の通りである.
    # author 테이블 가져오기
    SELECT * FROM author; 
    # topic 테이블 가져오기
    SELECT * FROM topic; 
    # author 테이블과 topic 테이블 JOIN (두개의 테이블을 하나로 합성)
    SELECT * FROM topic LEFT JOIN author ON topic.author_id = author.id;
    # 테이블 이름 바꾸기 (topic -> topic_backup)
    RENAME TABLE topic TO topic_backup;
    
    SELECT topic.id AS topic_id, title, description, created, name, profile 
    	FROM topic LEFT JOIN author
    	ON topic.author_id = author.id;
    
    # topic, author 테이블 모두 id 컬럼이 있으니, topic.id(topic테이블의 id)라고 명시해주기
    # JOIN한 테이블에서 id를 다른 이름으로 저장하고 싶다면, 'topic.id AS 새로운이름'

    本文は生活コードDATABASE 2-MySQLレッスンに基づいてまとめた内容です.
    https://opentutorials.org/course/3161