MYSQLの基本知識とコマンド(データベース、テーブル、インデックス、ビュー、トリガのコマンド)

7401 ワード

MYSQLベースコマンド[未完待機!]
  • 1.データベース基本操作
  • a.データベースの作成
  • b.データベースの表示
  • c.データベースの削除
  • 2.テーブルの基本操作
  • a.テーブルの作成
  • b.表の展示
  • c.テーブルの削除
  • d.表の修正
  • 1.表名の変更
  • 2.フィールド
  • を追加
  • 3.削除フィールド
  • 4.フィールドの変更
  • *フィールドデータ型の変更
  • *フィールド名の変更
  • *フィールドと属性
  • を同時に変更
  • *フィールド順序の変更
  • e.テーブルの制約
  • .
  • 1.テーブルの整合性制約
  • *外部キー
  • をテーブル作成後に挿入
  • *非空拘束(not null,NK)
  • *フィールドのデフォルト値(default)
  • を設定
  • 三.インデックスの操作
  • a.インデックスの概要
  • b.インデックスの作成
  • 1、テーブル作成時にインデックスを作成する
  • 2、既存のテーブルにインデックスを作成する
  • *第1種
  • *第2種
  • c.インデックスの削除
  • d.インデックスの表示
  • 4.ビューの動作
  • a.ビューの概要
  • b.ビュー作成
  • 1.単一テーブルビューの作成
  • 2.マルチテーブルビューの作成
  • c.ビューの表示
  • d.ビューの削除
  • e.ビューの変更
  • .
  • f、ビューの更新
  • 1、検索データ
  • 2、追加データ
  • 3、削除データ
  • 4、更新データ
  • 五、トリガの動作
  • a.フリップフロップ概要
  • b.フリップフロップ作成
  • 1、第1種
  • 2、第2種:複数の実行文を含むフリップフロップ
  • c.フリップフロップ
  • を表示
  • 1、第1種:show triggers文
  • 2、第2:システムテーブルtriggers
  • を表示
  • d.フリップフロップ削除
  • 一.データベースの基本操作
    a.データベースの作成
    CREATE DATABASE test
    

    b.データベースの表示
    SHOW DATABASES
    

    c.データベースの削除
    DROP DATABASE test
    

    二.テーブルの基本操作
    a.テーブルの作成
    USE  test        //     
    CREATE TABLE  t_book(
    id INT PRIMARY KEY,
    b_name VARCHAR(50) NOT NULL,
    price DECIMAL(4,2) 
    )
    

    b.表の展示
    show  tables    //     
    DESC t_book    //      
    SHOW CREATE TABLE t_book  //            
    SELECT * FROM  t_book1    //              
    

    c.テーブルの削除
    DROP TABLE t_book1
    

    d.表の修正
    1.表名の変更
    ALTER TABLE t_book RENAME t_book1
    

    2.フィールドの追加
    ALTER TABLE t_book1 ADD descri VARCHAR(50)    //    descri VARCHAR(50)
    ALTER TABLE t_book1 ADD de VARCHAR(50) FIRST    //        
    ALTER TABLE t_book1 ADD hah VARCHAR(10) AFTER id    // ID     
    

    3.フィールドの削除
    ALTER TABLE t_book1 DROP de
    

    4.フィールドの変更
    *フィールドデータ型の変更
    ALTER TABLE t_book1 MODIFY descri CHAR(40)
    

    *フィールド名の変更
    ALTER TABLE t_book1 CHANGE descri descrip CHAR(40)
    

    *フィールドと属性の同時変更
    ALTER TABLE t_book1 CHANGE descrip descri VARCHAR(50) 
    DESC t_book1
    

    *フィールド順序の変更
    ALTER TABLE t_book1 MODIFY descri VARCHAR(50) AFTER b_name
    

    e.テーブルの制約
    1.テーブルの整合性制約PRIMARY KEY (PK)は、このフィールドがテーブルのプライマリ・キーであることを識別し、一意の識別レコードFOREIGN KEY (FK)は、このフィールドが表の外部キーNOT NULLであることを識別することができ、このフィールドが空のUNIQUE KEY (UK)であることを識別することができない.このフィールドの値が一意のAUTO_INCREMENTであることを識別する.
    1、テーブルの作成時期、フィールドに追加後2、テーブルの作成後に追加、alterの使用
    *テーブル作成後に外部キーを挿入
    ALTER TABLE book_order ADD book_id INT NOT NULL UNIQUE;
    ALTER TABLE book_order ADD CONSTRAINT FOREIGN KEY (book_id) REFERENCES book(book_id)  
    
    

    *空でない制約(not null,NK)
    CREATE TABLE user4(
    id INT UNSIGNED KEY AUTO_INCREMENT,
    username VARCHAR(20) NOT NULL,
    )
    

    *フィールドのデフォルト設定(default)
    p1
    create table tb1(
        nid int not null defalut 2,
        num int not null
      );
    

    p2
    create table st(
        sid int  primary key ,
        name varchar(30) not null,
        age int(3) unsigned not null default 18,
        sex enum('male','female') default 'male',
        hobby set('play','study','read','music') default 'play,music'
        );
    

    2.テーブル作成後の整合性制約の変更/追加
    ALTER TABLE t_book1  ADD unique(b_name);
    

    三.インデックス操作
    a.索引の概要
    インデックスは本のディレクトリに似ており、テーブルからデータを取得する速度を向上させることができます.インデックスは、1つ以上のフィールドで生成されたキーからなるテーブルに作成されます.インデックスの格納タイプにより、B型ツリーインデックス(BTREE)とハッシュインデックス(HASH)に分けられる
    MYSQLがサポートするインデックス:通常インデックス、一意インデックス、全文インデックス、単列インデックス、多列インデックス、空間インデックス.
    インデックスの利点は、検索速度が向上することです.欠点は、インデックスが多すぎるとディスク領域が消費されることです.インデックスを作成するには、次のようにします.
  • 1、よくクエリーされるフィールド、whereに現れるフィールド
  • 2、グループ化されたフィールド、groupby句に現れるフィールド.
  • 3、依存関係のあるサブテーブルと親テーブルの間の結合クエリー、すなわちプライマリ・キーまたは外部キー・フィールド.
  • 4、一意の整合性制約を設定するフィールド
  • b.インデックスの作成
    1、テーブルの作成時にインデックスを作成する
    INDEX | KEY  [  ] (      【  】【ASC|DESC 】) ;
    

    eg:
    CREATE TABLE t_pre (
    id INT AUTO_INCREMENT ,
    PRIMARY KEY (id),
    t_name VARCHAR(50) NOT NULL UNIQUE,
    descrip VARCHAR(50) DEFAULT 'null',
    INDEX index_name (t_name)    //    
    )
    

    2、既存のテーブルに索引を作成する
    *1つ目
    DESC t_pre
    CREATE INDEX t_id ON t_pre(id ASC)  //    ,       
    

    *2番目
    ALTER TABLE t_pre ADD UNIQUE INDEX index_name (t_name)
    

    c.インデックスの削除
    DROP INDEX index_name ON t_pre;
    

    d.索引の表示
    クエリー文に加えて、テーブル作成時の文を表示することもできます.
    SHOW CREATE TABLE t_pre;
    

    四.ビューのアクション
    a.ビューの概要
    ビューは、本質的に仮想テーブルであり、ビューはデータベースにデータを格納する形で存在しません.行および列のデータは、カスタムビューのクエリーで参照される基本テーブルから取得されます.データベースに格納されるのは、ビューの定義です.ビューコンテンツの更新(追加、削除、変更)に直接影響するのは基本テーブルです.ビューのデータが複数の基本テーブルから来た場合、基本テーブルの追加と削除は許可されません.
    b.ビュー作成
    1.単一テーブルビューの作成
    CREATE VIEW v1(i,n) AS SELECT id,t_name FROM t_pre;
    
    

    2.マルチテーブルビューの作成
    CREATE VIEW v2(b,p) AS SELECT bookname,booktypename FROM t_book,t_booktype WHERE t_book.id= t_booktype.id
    

    c.ビューの表示
    DESCRIBE v_id
    DESC v_id       //        
    SHOW TABLE STATUS LIKE 'v_id' //         
    SHOW CREATE VIEW v_id  //        
    

    d.ビューの削除
    DROP VIEW view_name [,view_name2 、、]
    

    e.ビューの変更
    1、削除してから再作成する2、alterで直接修正する
    ALTER VIEW v_id(b,bt,p) AS SELECT bookname,booktypename,price  FROM book,booktype WHERE book.id = booktype.id;
    
    

    f、ビューの更新
    まず、ビューは更新できない場合があります.たとえば、次のようにします.
  • 1、空でない列は含まれません.
  • 2、select+数学式があります.
  • 3、select+集約関数のある列
  • 4、select+distinct/union/top/group by/having、、、の文
  • 1、データの取得
    1つ目のケース:
    SELECT ** FROM view_name;
    

    第2のケース:viewで基本テーブルのデータを操作する
    2、データの追加
    INSERT INTO v4(id,b_name,price,order_id)
    VALUES (11,'all is well',22.3,23)
    

    3、データの削除
    DELETE FROM v4 WHERE b_name='all is well' ;
    

    4、データの更新
    UPDATE v4 SET price=32.5 WHERE b_name='pear1'
    

    五、トリガの操作
    a.トリガの概要
    トリガはプログラミング言語の関数と同様に、宣言、実行が必要ですが、イベントによってトリガーされます.一般的なトリガイベントはdelete/insert/updateです
    b.トリガー作成
    1、第1種
    CREATE TRIGGER trigger_name 
    BEFORE|AFTER trigger_even 
    ON table_name FOR EACH ROW
    trigger_STMT
    

    eg.
    CREATE TRIGGER tri_test
    AFTER INSERT
    ON t_book FOR EACH ROW
    INSERT INTO t_test VALUES(1,'t_book')
    
    

    2、第二種類:複数の実行文を含むトリガ
    DELIMITER $$
    CREATE TRIGGER trigger_name 
    BEFORE|AFTER trigger_even 
    ON table_name FOR EACH ROW
    BEGIN
    trigger_STMT;
    END 
    $$
    DELIMITER 
    

    c.トリガー表示
    1、一つ目:show triggers文
    SHOW TRIGGERS  
    
    

    2.第二種類:システム表triggersを見る
    USE information_schema;
    SELECT * FROM TRIGGERS
    select * from triggers where trigger_name = ' tri_num '
    

    d.トリガー削除
    DROP TRIGGER tri_name