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'

WordPress短期学習プログラム

関連記事

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

    データベース

    【MySQL】Table 'performance_schema.session_variables…

    MySQLのバージョンをアップデートした際に、管理…

  2. Database(DB:データベース)

    PHP

    phpPgAdminをインストール

    phpPgAdminのインストール方法についてのメモ書きです。&n…

  3. Database(DB:データベース)

    データベース

    SQLクエリ(SQL文)とSQLの違いについて

    正直、どうでもいいと言えばどうでもいい内容ですが、本日は少…

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

    データベース

    【MySQL】オーバーヘッド!!

    弊社テスト環境のphpMyAdminの画面をなんとなく眺めていると、…

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

    サーバー

    ConoHaサーバへMySQL5.7をインストール

    こちらの記事では、ConoHa VPSサーバへのMySQL5.6の…

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

    データベース

    「Unknown collation: 'utf8mb4_unicode_ci'」というエラーが。。…

    あるサイトのサーバ移管作業を行っていた際の話です。データベース(M…

最近の記事

  1. Technology-Connection-Net
  2. ドメインにハイフンを使うのは日本人だけ?
  3. SSL(HTTPS)
  4. ドメインについて
  5. WP:WordPress(ワードプレス)
  6. ドメイン(domain)
  7. JPドメイン
  8. 高速(スピード)
  9. ブログアクセス
  10. 高速(スピード)
PAGE TOP