MySQL(マイエスキューエル)

【MySQL】検索システムで良く使用する基本的なSQLクエリのまとめ

検索システムで良く使用する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'

この記事を書いている人
株式会社ディープ
名前足立拓也

メールアドレスadachi@deep-deep.jp

関連記事

最近の記事

  1. ドメインについて
  2. WP:WordPress(ワードプレス)
  3. URL設計(URLデザイン)
  4. URL「ディレクトリ名」と文字アンダースコア(_)とハイフン(-)
  5. SEO対策(外部ファイルの読み込み)
  6. URL リダイレクト
  7. インデックスされない
  8. 内部対策は必要?
  9. CMS(シーエムエス)
  10. SEO業者は必要?

Twitter

アーカイブ

PAGE TOP