MySQLのsql文分類要約

7899 ワード

第1クラスの文:データベースに関連する文
1.データベースの作成
CREATE DATABASE [IF NOT EXISTS] db_name [create_specification] ...
  create_specification:
      [DEFAULT] CHARACTER SET [=] charset_name
    | [DEFAULT] COLLATE [=] collation_name

    :
   IF NOT EXISTS:                   ,     ,      ,      
   CHARACTER SET:              (utf8)
   COLLATE:      
    :
   CREATE DATABASE IF NOT EXISTS jobs DEFAULT CHARACTER SET utf8

2.データベースの削除
  DROP DATABASE [IF EXISTS] db_name
  IF EXISTS:                   ,         ,            ,      
    :DROP DATABASE IF EXISTS test;

3.データベースの変更
ここでは、データベース内の文字セットタイプとソートルールのみを変更することがよくあります(データベース名の変更はできません).
ALTER DATABASE [db_name] alter_specification ...

  alter_specification:
      [DEFAULT] CHARACTER SET [=] charset_name
    | [DEFAULT] COLLATE [=] collation_name

    :  test1     utf8
  ALTER DATABASE test1 DEFAULT CHARACTER SET utf8;

≪データベース名の変更|Modify Database Name|emdw≫:名前を変更するデータベースをバックアップしてから、新しいデータベースを新規作成します.ライブラリ名は新しい名前で、バックアップしたデータをこの新しいライブラリに復元します.
4.データ辞書の更新
ALTER DATABASE db_name UPGRADE DATA DIRECTORY NAME

第2クラスの文:テーブルに関連する文
1.新規テーブル
方法1:新しいテーブルを直接作成する
 CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
      (create_definition,...)
      [table_options]
      [partition_options]

  TEMPORARY:               ,      
  create_definition:
     col_name column_definition
   | PRIMARY KEY (col_name1, col_name1...)
   | {INDEX|KEY} [index_name] [index_type] (index_col_name,...) [index_option] ...
   | [CONSTRAINT UNIQUE [INDEX|KEY] [index_name] [index_type] (index_col_name,...) [index_option] ...
   | {FULLTEXT|SPATIAL} [INDEX|KEY] [index_name] (index_col_name,...) [index_option] ...
   | [CONSTRAINT [symbol]] FOREIGN KEY [index_name] (index_col_name,...) reference_definition
   | CHECK (expr)
  
    table_option:  
     AUTO_INCREMENT [=] value <<<               
   | ENGINE [=] engine_name <<<            
   | [DEFAULT] CHARACTER SET [=] charset_name <<<          (      )
   | CHECKSUM [=] {0 | 1} <<<              (        ,            )
   | [DEFAULT] COLLATE [=] collation_name <<<           (      )
   | COMMENT [=] 'string' <<<             
   | DELAY_KEY_WRITE [=] {0 | 1} <<<      ,         
   | MAX_ROWS [=] value
   | MIN_ROWS [=] value
   | UNION [=] (tbl_name[,tbl_name]...) <<<     
   | TABLESPACE tablespace_name [STORAGE {DISK|MEMORY|DEFAULT}] <<<      
   | ROW_FORMAT [=] {DEFAULT|DYNAMIC|FIXED|COMPRESSED|REDUNDANT|COMPACT} <<<      
 
     :     ,id   、name   30,age   
    CREATE TABLE tb1 (id int PRIMARY KEY, name char(30), age int(3))
    CREATE TABLE tb2 (id int, name char(30), age int(3), PRIMARY KEY(id))

     :     ,id name      、name   30,age   
    CREATE TABLE tb2 (id int, name char(30), age int(3), PRIMARY KEY(id,name))

 

方法2:既存のテーブルに基づいて新しいテーブルを作成し、新しいテーブルのデータも既存のテーブルから作成します.
   CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
      [(create_definition,...)]
      [table_options]
      [partition_options]
      [IGNORE | REPLACE]
      [AS] query_expression
  : CREATE TABLE new_tb AS SELECT * FROM old_tb;
  :              ,                     
gtid-mode = on  off
enforce-gtid-consistency= 1  0

方法3:既存のテーブルに基づいて新しいテーブルを作成しますが、テーブル構造のみがあります.
 CREATE TABLE [IF NOT EXISTS] tbl_name LIKE old_tbl_name 

     :  mysql.user         
   CREATE TABLE tb01 LIKE mysql.user;

2.テーブルの削除
テーブルを削除するには、単純で実用的なDROPコマンドを使用しますが、指定に注意してください.
  DROP TABLE [IF EXISTS] tbl_name [, tbl_name]... [CASCADE]

    :
   CASCADE:    

3.テーブル構造の変更(フィールド、属性、制限、制約、インデックス、キー...)
書式:
 ALTER TABLE tbl_name
      [alter_specification [, alter_specification] ...]
      [partition_options]

①フィールドの定義の変更
  • フィールド
  • を削除
       DROP col_name
    
         :  age  
       ALTER TABLE tb1 DROP age;
    
  • フィールド
  • を追加
       ADD col_name column_definition [FIRST | AFTER col_name]
    
         :
        #  age           school
        ALTER TABLE tb1 ADD school CHAR(10) AFTER age;
    
        #         job
        ALTER TABLE tb1 ADD job CHAR(20) NOT NULL FIRST;
    
        #           phone
        ALTER TABLE tb1 ADD phone int(10);
    
  • フィールド名
  • を変更
       CHANGE old_col_name new_col_name column_definition [FIRST|AFTER col_name]
    
        : ALTER TABLE tb1 CHANGE job jobs char(30) not null;
    
  • フィールドの制約と属性を変更し、フィールド位置
  • を調整する
       MODIFY col_name column_definition [FIRST | AFTER col_name]
    
         :ALTER TABLE tb1 MODIFY name varchar(50) NOT NULL DEFAULT 'zx';
              
    		ALTER TABLE tb1 MODIFY name varchar(50) AFTER age;
    
  • 削除インデックスを追加
  •    ADD index [    ] (  1,  2...) [options]
    
         :     (  )  name   
       ALTER TABLE tb1 ADD(DROP) INDEX (name);
    
              
       SHOW INDEXES FROM tb1;
    
         :        
    

    ①フィールド制約の変更
    #    
     | ADD [CONSTRAINT [symbol]] PRIMARY KEY
               [index_type] (index_col_name,...) [index_option] ...
    #    
       | ADD [CONSTRAINT [symbol]]
               UNIQUE [INDEX|KEY] [index_name]
               [index_type] (index_col_name,...) [index_option] ...
    #           ,              ,       。
    
        (  、  、  )
       DROP PRIMARY KEY  #    
       {DISABLE|ENABLE} KEYS #       
    

    4.表名の変更
    #  1:
      ALTER TABLE    RENAME [TO|AS]    
      ALTER TABLE user10 RENAME TO user11;
      2:
      RENAME TABLE    TO    ;     TO     
      RENAME TABLE user11 TO user10;
    

    5.テーブルの内容をどのフィールドでソートするかを指定します.
      :           ,             
    ORDER BY col_name [, col_name] ...
    

    6.表で使用する文字セットのタイプを変更する
    CONVERT TO CHARACTER SET charset_name [COLLATE collation_name]
    

    7.テーブルへのデータの挿入
    INSERT INTO tb1(name,id,age) VALUES('dong',1,23);
    

    表のデータの変更
     name zx      25
    UPDATE tb01 set age=25 WHERE name='zx';
    

    第3のクラスの文:簡単なクエリー文
    単純クエリー形式
    SELECT    ... FROM    [  ] [  ]
      :  t09      
    > SELECT * FROM t09;
    
      :  t09  id
    > SELECT id FROM t09;
    
      :    id  5   
     > SELECT * FROM t09 WHERE id>5
    
      :    id  5      name  
     > SELECT name FROM t09 WHERE id>5
    

    条件クエリー、組合せ条件クエリー
    条件表現
    釈義
    =、、>= 、<=
    等しい、より小さい、より大きい、より大きい、より小さい
    !=、<>
    等しくない
    is null
    なし
    is not null
    空ではありません
    between…and…
    との間に
    like …
    ワイルドカードの結合
    RLIKE
    けつごうせいそく
    組合せ条件クエリーキーワード:and,or,not
    ソート、制限出力レコードの数
    order by    [desc|asc]                  
    limit num:    num   
    limit m,n:     m      n   
    

      :    20-25       id    
      mysql> select name,stuid,age from students where age>=20 and age<=25;
      mysql> select name,stuid,age from students where age between 20 and 25;
    
       :      20,    25       id    
      select stuid,name,age from students where age<20 or age>25;
    
       :       S          
      mysql> select name,age from students where name like 'S%';
    
       :       Y   ,    19   
      mysql> select name,age from students where name like 'Y%' and age=19;
    
       :       Y   ,     20   
      mysql> select name,age from students where name like 'Y%' and age<20;
    
       :             
      mysql> select name,age from students;
    
       :             ,        (     )
      mysql> select name,age from students order by age desc;
    
       :             ,               
      mysql> select name,age from students order by age desc limit 3;
    
       :  students     
      mysql> select count(*) from students;
    
       :            
      mysql> select max(age) from students;
    

    大まかにまとめ、不適切な点があれば指摘を歓迎します.
    ------运维をする前にとてもまじめな若い------