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を使用します.
expression1, expression2, ... expression_n:取得するカラム.
tables:取得するデータテーブル.
WHERE conditions:オプション、検索条件.
DISTINCT:オプションで、結果セットで重複するデータを削除します.UNIONオペレータはデフォルトで重複データを削除しているため、DISTINCT修飾子は結果にあまり影響しません.
ALL:オプションで、重複データを含むすべての結果セットを返します.
例:
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などの関数を用いることができる.
WITH ROLLUPは,パケット統計データに基づいて同じ統計(SUM,AVG,COUNT…)を行うことができる.
たとえば、上記のデータ・テーブルを名前でグループ化し、一人当たりのログイン回数を統計します.
SELECT name, SUM(singin) as singin_count FROM employee_tbl GROUP BY name WITH ROLLUP;
Nullに取って代わる名前を設定するには、coalesceを使用します.coalesce構文:
パラメータの説明:a=nullの場合、bを選択します.b=nullの場合、cを選択します.もしa!=null、aを選択します.a b cがnullの場合、null(意味がない)が返されます.
次の例では、名前が空の場合、総数の代わりに使用します.
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)