検索システムで良く使用するMySQLの基本的なSQLクエリ(SQL文)をまとめてみました。
全てをカバーしきれていませんが、参考にして頂ければと思います。
レコード(データ)を取得
レコード取得する場合には、SELECTを使用します。
全レコードを取得する
SELECT * FROM テーブル名
※重要!
SELECTする項目に「*」を指定していますが、この場合、全カラム(項目)を取得することになるので、その分、処理が遅くなります。
その為、実際には、利用するカラム名のみを指定してください。
このような感じです↓
SELECT user_id,user_name FROM テーブル名
条件を指定してレコードを取得する
条件を指定する場合には、WHERE句を指定します。
例えば、
■「ユーザーID(user_id)」が「100」のレコードを取得する場合
SELECT * FROM テーブル名 WHERE user_id = 100
■「ユーザーID(user_id)」が「100」より大きいレコードを取得する場合
SELECT * FROM テーブル名 WHERE user_id > '100
■「ユーザーID(user_id)」が「100」以外のレコードを取得する場合
SELECT * FROM テーブル名 WHERE user_id <> 100
NULLを指定してレコードを取得
■「ユーザー名(user_name)」が「NULL」のレコードを取得する場合
SELECT * FROM テーブル名 WHERE user_name IS NULL
■「ユーザー名(user_name)」が「NULL」以外のレコードを取得する場合
SELECT * FROM テーブル名 WHERE user_name IS NOT NULL
あいまいな条件を指定してレコードを取得
■「ユーザー名(user_name)」に「川」を含むレコードを取得する場合
SELECT * FROM テーブル名 WHERE user_name LIKE '%川%'
■「ユーザー名(user_name)」の先頭に「川」を含むレコードを取得する場合
SELECT * FROM テーブル名 WHERE user_name LIKE '川%'
■「ユーザー名(user_name)」の末尾に「川」を含むレコードを取得する場合
SELECT * FROM テーブル名 WHERE user_name LIKE '%川'
該当レコード(データ)の件数を取得する
レコードの件数を取得する場合には、COUNT関数を使用します。
全レコードの件数を取得する
SELECT COUNT(*) FROM テーブル名
検索条件に該当するレコードの件数を取得する
■「ユーザーID(user_id)」が「100」より大きいレコードの件数を取得する場合
SELECT COUNT(*) FROM テーブル名 WHERE user_id > '100
■「ユーザー名(user_name)」が「NULL」のレコードの件数を取得する場合
SELECT COUNT(*) FROM テーブル名 WHERE user_name IS NULL
※重要!
COUNT(*)としていますが、「*」を指定すると全カラムを取得することになるので、その分、処理が遅くなります。
その為、実際には、カラム名を指定してください。
このような感じです↓
SELECT COUNT(user_id) FROM テーブル名
特定のカラム(項目)でソートしてレコード(データ)を取得する
レコードをソートする場合には、ORDER BY句でカラムを指定します。
■「登録日(created)」が新しい順にレコードを取得する場合
SELECT * FROM テーブル名 ORDER BY created DESC
■「登録日(created)」が古い順にレコードを取得する場合
SELECT * FROM テーブル名 ORDER BY created ASC
レコード(データ)を登録(挿入)する
レコードを登録(挿入)する場合には、INSERTを使用します。
INSERT INTO テーブル名 VALUES(100,'山田','東京都','2019-06-17 12:13:14');
■カラムを指定してレコードを挿入する場合
INSERT INTO テーブル名 (user_name, pref, created) VALUES ('山田','東京都','2019-06-17 12:13:14');
レコード(データ)を更新する
レコードを登録する場合には、UPDATEを使用します。
全レコードを一括で更新する
■例えば、「更新日(modifid)」を一括で更新する場合
UPDATE テーブル名 SET modifid='2019-06-17 12:13:14'
条件を指定してレコードを更新する
■「ユーザーID(user_id)」が「100」のレコードのみ「更新日(modifid)」を更新する場合
UPDATE テーブル名 SET modifid='2019-06-17 12:13:14' WHERE user_id = 100
■「ユーザーID(user_id)」が「100」より大きいレコードのみ「更新日(modifid)」を更新する場合
UPDATE テーブル名 SET modifid='2019-06-17 12:13:14' WHERE user_id > 100
■「ユーザーID(user_id)」が「100」以外のレコードのみ「更新日(modifid)」を更新する場合
UPDATE テーブル名 SET modifid='2019-06-17 12:13:14' WHERE user_id <> 100
レコード(データ)を削除する
レコードを削除する場合には、DELETEを使用します。
全レコードを一括で削除する
DELETE FROM テーブル名
条件を指定してレコードを削除する
■「登録日(user_name)」が「2019-06-17」のレコードのみを削除する場合
DELETE FROM テーブル名 WHERE created = '2019-06-17'
■「登録日(created)」が「2019-06-17」より大きいレコードを削除する場合
DELETE FROM テーブル名 WHERE created > '2019-06-17'
■「登録日(created)」が「2019-06-17」以外のレコードを削除する場合
DELETE FROM テーブル名 WHERE created <> '2019-06-17'
この記事へのコメントはありません。