05、MySqlテーブルの操作(下)

10918 ワード

データベース内のテーブルの操作にも追加削除があります.この記事では、クエリーについて説明します.
1、テーブルの作成
  CREATE TABLE table_name(
フィールド名1データ型[データ幅]制約
フィールド名2データ型[データ幅]制約
    ……
  )ENGINE=InnoDB DEFAULT CHARSET=utf8;
詳しくは前編をご覧ください.
 
2、データテーブルの削除
  drop table table_name;
 
3、表の修正
下一篇
 
4、データの挿入
1、レコードを挿入する
  insert into talble_name (field1,field2……,fieldN)
      values
      value1,value2……,valueN);
 
2、複数のレコードを挿入する
  insert into talble_name (field1,field2……,fieldN)      values      (value1,value2……,valueN),      (value1,value2……,valueN),      (value1,value2……,valueN);
値とフィールド名がすべて対応している場合は、次のように文字列名を使用しないことができます.
  insert into talble_name      values      (value1,value2……,valueN),      (value1,value2……,valueN),      (value1,value2……,valueN);
 
5、クエリー表
  SELECT column_name,column_name     FROM table_name      [WHERE Clause]      [OFFSET M ]
      [LIMIT N];
クエリ文では、1つまたは複数のテーブルを使用できます.テーブル間はカンマ(,)で分割され、WHERE文を使用してクエリ条件を設定します.
SELECTコマンドは、1つまたは複数のレコードを読み取ることができます.
すべてのフィールドの代わりにアスタリスク(*)を使用すると、SELECT文はテーブルのすべてのフィールドデータを返します.
WHERE文を使用して、任意の条件を含めることができます.
OFFSETでSELECT文を指定してクエリーのデータオフセットを開始できます.既定ではオフセット量は0です.LIMITプロパティを使用して、返されるレコード数を設定できます.
 
6、where句
クエリ文では、1つまたは複数のテーブルを使用できます.テーブル間はカンマ(,)で分割され、WHERE文を使用してクエリ条件を設定します.WHERE句で任意の条件を指定できます.ANDまたはORを使用して1つ以上の条件を指定できます.WHERE句はSQLのDELETEまたはUPDATEコマンドにも適用できます.WHERE句はプログラム言語のif条件に類似しており、MySQLテーブルのフィールド値に基づいて指定されたデータを読み出す.
たとえば、成績表の数学の成績が80より高い学生のすべての情報を検索します.
  select * from score
    where
      score_name = "math"
        and
      grade >= 80;
 
7、update文
  UPDATE table_name SET field1=new-value1, field2=new-value2
  [WHERE Clause]
1つ以上のフィールドを同時に更新できます.
WHERE句で任意の条件を指定できます.
別のテーブルで同時にデータを更新できます.
データテーブルで指定された行のデータを更新する必要がある場合、WHERE句は非常に役立ちます.
例えば、学生表の4番の学生の成績を89点に変更します.
  update student 
    set
      grade = 89 
    where
      stu_id = 4;
 
8、DELETE文
  DELETE FROM table_name [WHERE Clause]
WHERE句が指定されていない場合、MySQLテーブルのすべてのレコードが削除されます.
WHERE句で任意の条件を指定できます
単一のテーブルからレコードを一度に削除できます.
例えば、成績表の4番の学生の情報を削除します.
   delete student where stu_id = 4;
たとえば、データテーブルstudentのすべての情報を削除します.
   delete student;   
drop、truncate、deleteは削除されたキーワードで、次は3つの違いを紹介します.
 
9、like句
SELECT field1, field2,...fieldN
  FROM table_name
    WHERE field1 LIKE condition1 [AND [OR]] filed2 = 'somevalue'
WHERE句で任意の条件を指定できます.
WHERE句でLIKE句を使用できます.
等号=の代わりにLIKE句を使用できます.
LIKEは通常%とともに使用され、1つのメタ文字の検索に似ています.
ANDまたはORを使用して1つ以上の条件を指定できます.
DELETEまたはUPDATEコマンドでWHEREを使用できます...LIKE句で条件を指定します.
 
たとえば、studentテーブルの劉という学生をすべて検索します.
  select * from student 
    where stu_name like「劉%」
 
10、UNION句
UNIONオペレータは、2つ以上のSELECT文を接続した結果を1つの結果セットに結合するために使用します.複数のSELECT文は重複するデータを削除します.重複して上書きしないようにするには、ユニオンALLを使用します.
  
SELECT expression1, expression2, ... expression_n
FROM tables
[WHERE conditions]
UNION [ALL | DISTINCT]
SELECT expression1, expression2, ... expression_n
FROM tables
[WHERE conditions];

    expression1, expression2, ... expression_n:取得するカラム.
tables:取得するデータテーブル.
WHERE conditions:オプション、検索条件.
DISTINCT:オプションで、結果セットで重複するデータを削除します.UNIONオペレータはデフォルトで重複データを削除しているため、DISTINCT修飾子は結果にあまり影響しません.
ALL:オプションで、重複データを含むすべての結果セットを返します.
 
例:
SELECT country FROM Websites
UNION
SELECT country FROM apps
ORDER BY country; 

 
 
11、並べ替え
ORDER BY句を使用して、クエリー・データをソートしてデータを返します.
 
  SELECT field1, field2,...fieldN FROM table_name1, table_name2...
ORDER BY field 1[ASC[DESC][デフォルトASC],[field 2...][ASC[DESC][デフォルトASC]]
 
使用できる
任意のフィールドをソートの条件として使用し、ソート後のクエリー結果を返します.
設定できる
複数のフィールドを並べ替えます.
使用できる
ASCまたは
DESCキーワードは、クエリの結果が昇順または降順であることを設定します.デフォルトでは、昇順で並べられています.
WHEREを追加できますLIKE句で条件を設定します.
 
12、groupby文
GROUP BY文は、結果セットを1つまたは複数の列に基づいてグループ化する.
グループの列にはCOUNT,SUM,AVGなどの関数を用いることができる.
 
SELECT column_name, function(column_name)   FROM table_name     WHERE column_name operator value       GROUP BY column_name;

 
WITH ROLLUPは,パケット統計データに基づいて同じ統計(SUM,AVG,COUNT…)を行うことができる.
たとえば、上記のデータ・テーブルを名前でグループ化し、一人当たりのログイン回数を統計します.
  SELECT name, SUM(singin) as singin_count FROM employee_tbl GROUP BY name WITH ROLLUP;
SELECT name, SUM(singin) as singin_count FROM employee_tbl GROUP BY name WITH ROLLUP; +--------+--------------+ | name | singin_count | +--------+--------------+ |    | 2 | |    | 7 | |    | 7 | | NULL | 16 | +--------+--------------+ 4 rows in set (0.00 sec)

Nullに取って代わる名前を設定するには、coalesceを使用します.coalesce構文:
select coalesce(a,b,c);

パラメータの説明:a=nullの場合、bを選択します.b=nullの場合、cを選択します.もしa!=null、aを選択します.a b cがnullの場合、null(意味がない)が返されます.
次の例では、名前が空の場合、総数の代わりに使用します.
mysql> SELECT coalesce(name, '  '), SUM(singin) as singin_count FROM employee_tbl GROUP BY name WITH ROLLUP; +--------------------------+--------------+ | coalesce(name, '  ') | singin_count | +--------------------------+--------------+ |    | 2 | |    | 7 | |    | 7 | |    | 16 | +--------------------------+--------------+ 4 rows in set (0.01 sec)