20220327


課題-テスト後にカリキュラムと成果物を提出

  • DB設計
  • コミュニティを作成する場合、必要なテーブルと各関係(以下、必須フィールド)
  • を作成するとします.
  • ラベルテーブルには、ラベルの情報のみが含まれています.
  • 投稿には、複数のラベルを含めることができます.
  • ユーザ(ユーザ)
  • board(投稿)
  • hashtag(ラベル)
  • MySQL調査
    CRUD
  • MySQLのCRUD
  • FKを書く理由は、書かなければなりませんか?
  • WHERE,IN差異
  • 種類のJoin
  • TRUNCATE
  • IntelliJ取付
  • 第1週


    課題-テスト後にカリキュラムと成果物を提出

  • DB設計
  • コミュニティを作成する場合、必要なテーブルと各関係(以下、必須フィールド)
  • を作成するとします.
  • ラベルテーブルには、ラベルの情報のみが含まれています.
  • 投稿には、複数のラベルを含めることができます.
  • ユーザ(ユーザ)
  • board(投稿)
  • hashtag(ラベル)
  • MySQL調査
    CRUD
  • MySQLのCRUD
  • FKを書く理由は、書かなければなりませんか?
  • WHERE,IN差異
  • 種類のJoin
  • TRUNCATE
  • IntelliJ取付
  • コミュニティDBの作成


  • データベースの作成


  • 設計テーブル-ワークベンチの使用
  • ユーザーテーブル

    AI : auto increase
    VARCHAR()カッコの数字はmySQLで文字数を表します.
    boardのid boardをプライマリキーとする外部キーをuserテーブルに入れます.
    作成者が作成した投稿が表示されます.1:N関係
    テーブル台

    タイトル、内容、クリック率、賛数を表すためにコラムに参加した.
    NN: not null
    NNを使うことでストレージスペースを節約できるというので、できるだけ大部分のコラムに適用します.
    name tag:タグ名を参照する外部キーN:Mの関係
    id user:userテーブルのidを参照して、作成者の外部キーを表示します.1:Nの関係
    ハッシュテーブル

    1つの投稿に複数のラベルを含めることも、複数のラベルを含めることもできます.
    ラベルと投稿の関係はN:Mです.  検索結果JOINテーブルを作成することになりました.参考資料:https://hanamon.kr/リレーションシップ-データベース-設計-リレーションシップ-タイプ/

    board hashtagテーブルは、tagのnameとboardのidを参照するために作成された結合テーブルです.
  • 成果物

  • MySQLのCRUD


    CはCreate,RはRead,UはUpdate,DはDeleteの略,4つの機能はDBの本質である.

    CREATE

    CREATE DATABASE database_name;
    USE database_name;  # 데이터베이스 사용
    CREATE TABLE table_name(
    필드명 타입
    필드명 타입
    PRIMARY KEY(필드명)
    ); # 데이터 컬럼의 이름과 자료형을 입력하여 테이블을 생성
    INSERT INTO
    # 생성한 데이터베이스에 레코드를 추가할 때 사용할 수 있음.
    INSERT INTO table_name(field1, field2, field3)
    VALUES(data1, data2, data3);
    
    SELECT * FROM topic; # topic 테이블의 모든것(*)을 출력해줌

    SELECT

    SELECT 속성1, 속성2, 속성3 FROM topic;
    # topic 테이블에서 속성 1-3 만 선택해서 출력해줌
    
    [WHERE | GROUP BY | ORDER BY]
    
    SELECT field1,field2,field3 FROM topic WHERE field1='something';
    #field1이 'something'인 레코드값들을 찾아서 field1-3 출력해줌
    
    SELECT field1 FROM topic WHERE field1='something' ORDER BY DESC LIMIT 2;
    #ORDER BY DESC, ASC로 내림차순, 오름차순 정렬가능
    #LIMIT n 을 사용해서 검색되는 데이터가 너무 많을 때 제한을 걸 수 있다

    UPDATE

    UPDATE 테이블 SET assignment_list # 혹은 속성1= 바꿀값 과 같이
        [WHERE where_condition] # 어디에 수정을 할 것인지
       
    
    value:
        {expr | DEFAULT}
    
    assignment:
        col_name = value
    
    assignment_list:
        assignment [, assignment] ...

    DELETE

    DELETE FROM 테이블이름
    WHERE 조건
    #레코드 한 줄 전체 말고, 속성1에 해당하는 값1개만 삭제할 수는 없을까?
    #- NULL 값으로 만드는 것은 가능할 것 같다.

    FKを使う理由。書かなければなりませんか?


    Foreignキーを使用して、他のテーブルのプライマリ・キーを参照します.
    次の整合性制約が適用されるため、整合性を強制する場合に使用します.

    しかし、書く必要のない意見はこうです.
    データベースが大きすぎて、容量整理のためにプライマリ・キーを含むAのレコードを削除すると、消失したレコードを参照する外部キーは存在しません.ただし,外部キーを含むレコードが失われない場合があるため,速やかに管理する.

    WHERE, IN


    WHEREは、SELECT文で条件に対応する値を検索するために使用されます.
    SELECT * FROM 테이블명
    WHERE 컬럼명 IN (1,2,3);
    # IN은 WHERE절 내에서 여러개 특정값에 해당하는 레코드들을 선택한다.
    
    # OR 연산자로 값을 하나 하나 연결해서 표현할 수도 있지만 길어진다.
    # 다른 조건 연산자로 AND, OR, BETWEEN A AND B, IS NULL/NOT NULL, LIKE (%,_)
    

    TRUNCATE

  • TRUNCATEコマンドは、TABLEまたはCLUSTERからすべてのローを削除する高速で効率的な方法です.容量が減少し、インデックスなどが削除されます.ストレージスペースを返却します.
  • 削除
  • に関するコマンドはDROPとDELETEである.
  • DELETEコマンドでは、データを消去できますが、テーブル容量を減らすことなく、必要なデータのみを消去できます.ロールバック可能
  • DROPは、テーブル構造を直接削除するのとは異なります.
  • DML, DDL , DCL



    https://brownbears.tistory.com/180
    TCLとは、データベースをサーバにアップロードして管理する際に、トランザクションラインで制御するコマンドです.
    COMMIT、ROLLBACKなど.