MySQL 5.6学習ノート(データの照会、挿入、更新、削除)
3709 ワード
1.クエリー構文
上の一般的な基本的なクエリー構文.完全な構文参照:http://dev.mysql.com/doc/refman/5.6/en/select.html
1.1 GROUP BY句でWITH ROLLUPを使う
WITH ROLLUPキーワードを使用すると、クエリされたすべてのレコードの合計、すなわち統計レコード数を計算するレコードが、すべてのクエリされたパケットレコードの後に追加されます.
1.2 LIMITを使用してクエリ結果の数を制限する
最初のパラメータ「位置オフセット量」は、どの行から表示されるかを示すオプションのパラメータです.
MySQL5.6では「LIMIT 4 OFFSET 3」を使用でき、5番目のレコードから後の3つのレコードを取得することを意味し、「LIMIT 4,3」と同じ結果を返します.
1.3 EXISTSキーワード付きクエリー
EXISTSキーワードの後のパラメータは任意のサブクエリであり、システムはサブクエリを演算してローを返すかどうかを判断し、少なくとも1つのローを返すと、EXISTSの結果はtrueとなり、このとき外層クエリ文はクエリを行う.サブクエリがローを返さない場合、EXISTSはfalseの結果を返し、外部文はクエリされません.
モデル:
suppliersテーブルにs_が存在するかどうかをクエリーします.id=107仕入先、存在する場合はfriutsテーブルに記録され、SQL文は次のようになります.
1.4正規表現クエリーの使用
モデル:
fruitsテーブルでf_をクエリーnameフィールドはアルファベットbで始まるレコードで、SQL文は以下の通りです.
2.データの挿入
複数のレコード、構文を同時に挿入できます.
簡単な理由は、MySQLデータベースとOracleデータベースがCRUDで一致しない場所、Oracleと一致している場所だけを書いているので、書く必要はありません.
SELECT
{*|< >}
[FROM table_references
[WHERE where_condition]
[GROUP BY {col_name | expr | position}
[ASC | DESC], ... [WITH ROLLUP]]
[HAVING where_condition]
[ORDER BY {col_name | expr | position}
[ASC | DESC], ...]
[LIMIT {[offset,] row_count | row_count OFFSET offset}]
上の一般的な基本的なクエリー構文.完全な構文参照:http://dev.mysql.com/doc/refman/5.6/en/select.html
1.1 GROUP BY句でWITH ROLLUPを使う
WITH ROLLUPキーワードを使用すると、クエリされたすべてのレコードの合計、すなわち統計レコード数を計算するレコードが、すべてのクエリされたパケットレコードの後に追加されます.
1.2 LIMITを使用してクエリ結果の数を制限する
LIMIT [ ,]
最初のパラメータ「位置オフセット量」は、どの行から表示されるかを示すオプションのパラメータです.
MySQL5.6では「LIMIT 4 OFFSET 3」を使用でき、5番目のレコードから後の3つのレコードを取得することを意味し、「LIMIT 4,3」と同じ結果を返します.
1.3 EXISTSキーワード付きクエリー
EXISTSキーワードの後のパラメータは任意のサブクエリであり、システムはサブクエリを演算してローを返すかどうかを判断し、少なくとも1つのローを返すと、EXISTSの結果はtrueとなり、このとき外層クエリ文はクエリを行う.サブクエリがローを返さない場合、EXISTSはfalseの結果を返し、外部文はクエリされません.
モデル:
suppliersテーブルにs_が存在するかどうかをクエリーします.id=107仕入先、存在する場合はfriutsテーブルに記録され、SQL文は次のようになります.
select * from fruits
where exists
(select s_name from suppliers where s_id=107);
1.4正規表現クエリーの使用
モデル:
fruitsテーブルでf_をクエリーnameフィールドはアルファベットbで始まるレコードで、SQL文は以下の通りです.
select * from fruits where f_name regexp '^b';
2.データの挿入
複数のレコード、構文を同時に挿入できます.
insert into table_name(column_list)
values(value_list1),(value_list2),...(value_listn);
簡単な理由は、MySQLデータベースとOracleデータベースがCRUDで一致しない場所、Oracleと一致している場所だけを書いているので、書く必要はありません.