MySQLの追加削除とテーブルのコピーと名前変更


MySQL追加、削除、変更、挿入全表照会表記録フォーマット1:selectフィールド1,...フィールドN fromライブラリ名テーブル名;
フォーマット2:selectフィールド1,...フィールドN fromライブラリ名テーブル名where条件式;
注意事項:1.「*」を使用して、すべてのフィールドに一致します.2.テーブル名を指定する場合は、ライブラリ名を用いることができる.テーブル名の形式
 :
mysql>create database ku;
mysql>create table ku.lisi(
>name char(10) not null,
>gender  enum("boy","girl"),
>age int(3) not null
>);

mysql>insert into ku.lisi   values("luozixu","boy"23);
mysql>insert into ku.lisi   values("wang","girl",25);

mysql>select * from ku.lisi;
mysql>select name,age from ku.lisi where gender="girl";

 :
         ,name   "  "、age   "  "
mysql>select name AS "  ",age AS "  " from ku.lisi;

クエリおよび条件マッチングはWHERE文ガイド1を用いる.更新、削除、クエリーなどに適用する.条件を満たすレコードのみが操作されます
一般的な一致条件1.フィールドの数値サイズをチェックします.文字列が3に一致するかどうか.ロジックテスト
     
=               
>、>=           、     

論理比較、多条件組合せOR、AND、!論理または、論理和、論理非IN...NOTIN.. で、範囲内、不在..範囲内のIS NULLフィールドの値が空のIS NOT NULLフィールドの値が空でないDISTINCTは重複した値を表示しません
        
+            
-            
*            
/            
%             (  )

ファジイクエリを使用する基本的な使い方:-WHEREフィールド名LIKE「ワイルドカード文字列」-ワイルドカード「」1文字に一致し、“%”は0~N文字に一致します
 :  name    J    Y     
mysql>select * from ku.lisi where  name  LIKE  "J"  OR name LIKE "Y";

正規表現を使用する基本的な使い方:-WHEREフィールド名REGEXP'正規表現'
 :  name    J    Y     
mysql>select * from  ku.lisi  where  name regexp '^J|Y$';

whereサブクエリwhereサブクエリを使用する:-内層クエリの結果を外層クエリのクエリ条件とする
フォーマット1:selectフィールド名リストfromライブラリ.表A where条件(selectフィールド名リストfromライブラリ.表A);
フォーマット2:selectフィールド名リストfromライブラリ.表A where条件(selectフィールド名リストfromライブラリ.表A where条件);
 :                   
mysql>select  name,age from  ku.lisi  where age < (select avg(age) from  ku.lisi); 

フォーマット3:selectフィールド名リストfromライブラリ.表A where条件(selectフィールド名リストfromライブラリ.表B);
フォーマット4:selectフィールド名リストfromライブラリ.表A where条件(selectフィールド名リストfromライブラリ.表B where条件);
           
avg()                
sum()                   
min()                
max()                
count()            

 :  ku lisi      ,        
          、  、     。
mysql>select count(*),sum(age) from ku.lisi;
mysql>select avg(age),max(age) from ku.lisi;

クエリ結果ソート/パケット基本使用法:-ORDER BYフィールド名[asc(昇順)/desc(降順)]-GROUP BYフィールド名[HAVING条件式]-LIMIDN,M制限表示レコードエントリ数
 :
  ku lisi ,     ,   2   。
mysql>select * from  ku.lisi  order  by  age  limit  2;

         2   
mysql>select * from  ku.lisi  order  by  age  desc limit 2;

 :
  ku lisi ,       ,    boy、girl   。
mysql>select gender AS "  ",count(*) AS "  " from ku.lisi  group by  gender;

Insert挿入記録フォーマット1:(一部のフィールドの値のみ指定)insert intoライブラリ名.表名(フィールド1,フィールド2,..フィールドN)values(フィールド1に付与された値,フィールド2に付与された値,....フィールドNに付与された値);
フォーマット2:(各フィールドの値を指定)insert intoライブラリ名.表名values(フィールド1に付与された値、フィールド2に付与された値、....フィールドNに付与された値);
注意事項:1.フィールド値は、フィールドタイプと一致します.2.文字タイプのフィールドは、二重または一重引用符で囲みます.3.すべてのフィールドに順番に値を割り当てる場合、フィールド名は省略できます.4.一部のフィールドにのみ値を割り当てる場合は、対応するフィールド名を明確に書く必要があります.
 :
1.       
mysql>create database ku;
mysql>create table ku.xi(
>name char(10) not null,
>gender  enum("boy","girl") default "girl",
>age int(3) not null
>);

2.     
mysql>insert into ku.xi(name,age) values("luozixu",23);
mysql>insert into ku.xi    values("lisi","boy",25);

3.     
mysql>select * from   ku.xi;

update更新レコードフォーマット1:(テーブル内のすべてのレコードを更新)updateライブラリ名.表名setフィールド1=フィールド1修正値、フィールド2=フィールド2修正値、...フィールドN=フィールドNが変更した値.
フォーマット2:(条件を満たす部分レコードのみ更新)updateライブラリ名.表名setフィールド1=フィールド1修正値、フィールド2=フィールド2修正値、...フィールドN=フィールドNが変更した値where条件式;
注意事項:1.フィールド値は、フィールドタイプと一致します.2.文字タイプのフィールドは、二重または一重引用符で囲みます.3.WHEREで条件を限定しなければ、すべての記録が更新されます.4.条件を限定する場合、一致条件のレコードのみ更新します.
 :
1. ku xi       age     10。
mysql>update ku.xi  set  age=10;
mysql>select * from   ku.xi;

2.    boy   age     20。
mysql>update  ku.xi set age=20 where gender="boy";
mysql>select * from   ku.xi;

delete削除テーブルレコードフォーマット1:(条件を満たすレコードのみ削除)delete fromライブラリ名.テーブル名where条件式;
フォーマット2:(テーブルのすべてのテーブルレコードを削除)delete fromライブラリ名.テーブル名;
 :
1.  ku xi  age    10    。
mysql>delete from ku.xi  where age<=10;
mysql>select * from   ku.xi;

2.         
mysql>delete from  ku.xi;
mysql>select *  from   ku.xi;

マルチテーブルクエリ(接続クエリとも呼ばれる)1.2つまたは2つ以上のテーブルを、ある条件で接続し、そこから必要なデータを選択します.
2.複数のテーブルに同じ意味のフィールドが存在する場合(フィールド名が異なる場合があります)、このフィールドで複数のテーブルを接続できます.フォーマット1:selectフィールド名リストfromテーブルa,テーブルb;フォーマット2:selectフィールド名リストfromテーブルa、テーブルb where条件;
以上の形式のクエリー結果をデカルトセットと呼び、クエリー結果の合計エントリが(表aのレコード*表bのレコード数)であることを示します.
 :
mysql>select  *  from ku.user,ku.user2;
mysql>select  *  from ku.user,ku.user2  where  ku.user2.shell != ku.user.shell  and ku.usr.uid<100;

内部接続クエリー(クエリー条件に一致するレコードのみ表示)フォーマット:selectフィールド名リストfromテーブルa、テーブルb;
外部ジョインクエリ1.左接続クエリー(左テーブルレコードを主とする)2.右接続クエリー(右テーブルレコードがメイン)
左接続クエリーフォーマット:selectフィールド名リストfromテーブルa left joinテーブルb on条件式;
右接続クエリーフォーマット:selectフィールド名リストfromテーブルa right joinテーブルb on条件式;
テーブルのコピーと名前変更ソーステーブルxxxを新しいテーブルyyyフォーマット:create tableライブラリ名にコピーします.yyy select*fromライブラリ名.xxx;
 :
mysql>create  table ku.yy  select  * from  mysql.user;

指定したクエリー結果を新しいテーブルzzz形式にコピーします:create table zzz SQLクエリー文;
 :
    mysql>create  table ku.zz  select  user,host,password  from  mysql.user;

ソーステーブルxxxのテーブル構造を新しいテーブルbbbフォーマット:create tableライブラリ名にコピーします.bbb select*fromライブラリxxx where false(誤った記録マッチング);
 :
mysql>create table  ku.bb  select  * from  mysql.user  where  false;
mysql>desc ku.bb;

ソーステーブルbbbの名前をwwwフォーマットに変更します:alter table bbb rename to www;
 :
mysql>alter  table  ku.bb rename  to  ku.ww;