MySQL

 Computer >> コンピューター >  >> プログラミング >> MySQL
  1. MySQLのUPDATE文でAND演算子を使用する方法

    MySQLでは、UPDATE文のSET句の中でAND演算子を直接使用できます。比較式は真の場合に「1」、偽の場合に「0」と評価されるため、複数の条件を組み合わせた結果をそのままカラム値として設定することが可能です。ここでは、実際の例を通じてその使い方を解説します。1. サンプルテーブルの作成まず、テーブルを作成します。mysql> create table DemoTable613 (Id int,Age int,isMarried tinyint(1));Query OK, 0 rows affected (0.54 sec)2. レコードの挿入INSERTコマンドを使って、テーブルに

  2. MySQLで空白の付き方が異なる複数の列から類似する名前を抽出する方法

    はじめにMySQLでは、見た目は同じ名前でも、前後に含まれる空白(スペース)の量が異なるために一致しないケースがあります。例えば「 John 」と「John」のように、左側や右側に余分な空白がある場合は、単純な等号(=)による比較ではマッチしません。このような場合に役立つのが、LTRIM()関数とRTRIM()関数です。LTRIM()は文字列の先頭の空白を除去し、RTRIM()は末尾の空白を除去します。これらを組み合わせることで、空白の有無に関係なく名前を正確に比較できます。サンプルテーブルの作成まず、比較用のテーブルを作成しましょう。mysql> create ta

  3. MySQLのGROUP_CONCAT()を使って複数行のデータを連結する方法

    MySQLでは、GROUP_CONCAT()関数を使用することで、複数行に分かれているデータを1つの文字列に連結できます。カンマ区切りで値をまとめたい場合や、検索結果を見やすく整形したい場合に非常に便利な関数です。この記事では、実際にテーブルを作成し、ストアドプロシージャと組み合わせてGROUP_CONCAT()を使う手順を解説します。1. テーブルの作成まず、サンプル用のテーブルを作成します。mysql> create table DemoTable (CountryName varchar(100)); Query OK, 0 rows affected (1.01 sec)次に、I

  4. MySQLのCHANGEコマンドとは?カラム名を変更する方法を実例付きで解説

    MySQLにおけるCHANGEコマンドの目的MySQLのCHANGEコマンドは、テーブルのカラム(列)名を変更するために使用されるALTER TABLE構文の一つです。既存のカラム名を新しい名前に置き換えるだけでなく、データ型や属性も同時に指定・変更できる点が特徴です。基本的な構文は以下のとおりです。ALTER TABLE テーブル名 CHANGE 現在のカラム名 新しいカラム名 データ型;なお、CHANGEコマンドを使用する際は、カラム名を変更しない場合でもデータ型の指定が必須である点に注意してください。検証用テーブルの作成まず、動作確認のためのサンプルテーブルを作成します。mysql>

  5. MySQLでINITCAP()関数の逆の処理を実装する方法:独自関数の作成手順を解説

    INITCAP()関数とその逆の処理について INITCAP()関数は、文字列に含まれるすべての単語の先頭文字を大文字にし、残りの文字を小文字に変換して表示します。英語のタイトル表記などでよく使われる形式です。 一方で、その逆の処理、すなわち「各単語の先頭文字を小文字にし、残りの文字を大文字にする」変換が必要になるケースもあります。しかし、MySQLには標準でこのような機能を持つ関数は用意されていないため、独自のユーザー定義関数を作成する必要があります。 カスタム関数の作成手順 以下は、渡された文字列に対して「先頭文字を小文字・残りを大文字」に変換する関数 convertFirstLetter

  6. 複数の高度なMySQL SELECTクエリを組み合わせる最良の方法

    MySQLで複数の高度なSELECTクエリを組み合わせたい場合、UNIONを使用するのが最も効果的です。UNIONを使うことで、複数のSELECT文の結果セットを1つに結合できます。本記事では、実際にテーブルを作成し、データを挿入しながら、UNIONによるクエリ結合の手順を具体的に解説します。 1. 最初のテーブルを作成する まず、結合元となる1つ目のテーブルを作成しましょう。 mysql> create table DemoTable1 (Value1 int, Value2 int); Query OK, 0 rows affected (0.62 sec) INSERTコマンドを使

  7. MySQLで1つの列に格納された氏名を姓と名の2つの新しい列に分割する方法

    MySQLでは、SUBSTRING_INDEX() 関数と REPLACE() 関数を組み合わせることで、1つの列に格納された氏名を「名前(FirstName)」と「姓(LastName)」の2つの新しい列に分割できます。ここでは、実際にテーブルを作成しながら手順を確認していきましょう。 1. テーブルを作成する まず、氏名を格納するためのテーブルを作成します。 mysql> create table DemoTable (Name varchar(100)); Query OK, 0 rows affected (0.53 sec) 2. レコードを挿入する 続いて、INSERT

  8. MySQLのENUM型とNOT NULL:デフォルト値の挙動を具体例で解説

    MySQLのENUM型におけるNOT NULLの役割MySQLのENUM(列挙型)データ型では、NOT NULL制約を宣言するかどうかによって、値を指定せずにINSERTした場合のデフォルト値の挙動が変わります。NOT NULLを宣言しない場合:デフォルト値はNULLになります。NOT NULLを宣言した場合:ENUMで定義した最初の値が自動的にデフォルト値として設定されます。それぞれのケースについて、実際のSQL実行例を見ていきましょう。CASE 1:NOT NULLなし → NULLが格納されるケースまず、通常のENUMカラムを持つテーブルを作成します。mysql> create t

  9. MySQLで列の値が2つの母音文字で始まるレコードを取得する方法

    MySQLで母音2文字で始まる値を持つレコードを取得する方法MySQLでは、RLIKE演算子(REGEXPと同等)と正規表現パターンを組み合わせることで、特定の文字列パターンに一致するレコードを簡単に抽出できます。今回は、「列の値が2つの母音(a、i、u、e、o)で始まる」レコードを取得する方法を解説します。1. サンプルテーブルの作成まず、テーブルを作成します。mysql> create table DemoTable664 (CityName varchar(100));Query OK, 0 rows affected (0.89 sec)2. レコードの挿入INSERT文を使って

  10. MySQLのORDER BYでキーワードマッチを実行する方法

    本記事では、MySQLにおいてORDER BY句とCASE式を組み合わせてキーワードマッチによる並べ替えを行う方法を、実際にテーブルを作成しながら解説します。 サンプルテーブルの作成 まず、CREATE TABLE文でテーブルを作成します。 mysql> create table DemoTable602 (GameName text); Query OK, 0 rows affected (0.55 sec) レコードの挿入 続いて、INSERT文を使ってテーブルにデータを追加していきます。 mysql> insert into DemoTable602 values(Candy

  11. MySQLの識別子(テーブル名・フィールド名)は引用符ありとなしのどちらでも使える?予約語の扱い方を解説

    MySQLにおける識別子の引用符(バッククォート)とはMySQLでは、テーブル名、ストアドプロシージャ名、ビュー名、カラム名などの識別子を、バッククォート(`)で囲んで引用するかどうかを選択できます。通常の名前であれば引用符は不要ですが、識別子が予約語(reserved keyword)に該当する場合は必ず引用符で囲む必要があります。囲まなかった場合、SQL構文エラーが発生します。例えば「INT」「SELECT」「VARCHAR」などはMySQLの予約語なので、そのままカラム名として使用することはできません。以下では、実際に予約語をカラム名として使う例を見ていきましょう。サンプルテーブルの作成

  12. MySQLでテーブルのカラム名(列名)を確認する方法|SHOW COLUMNSとinformation_schemaの使い方

    MySQLでテーブルに含まれるカラム名(列名)を調べたい場合、SHOW COLUMNS文またはINFORMATION_SCHEMA.COLUMNSテーブルを使用する方法が一般的です。この記事では、両方の方法をサンプルコードとともにわかりやすく解説します。検証用テーブルの作成まず、動作確認用として以下のようなサンプルテーブルを作成します。mysql> create table DemoTable603 ( ClientId int NOT NULL AUTO_INCREMENT, ClientName varchar(100), Clien

  13. MySQLでストアドプロシージャの定義(CREATE文)を表示する方法

    ストアドプロシージャの定義を表示するにはMySQLで作成済みのストアドプロシージャの定義(説明)を確認したい場合は、SHOW CREATE PROCEDURE文を使用します。このコマンドを実行すると、プロシージャを作成したときのCREATE文そのものや、sql_mode、文字セットなどの詳細情報を一覧で取得できます。基本構文SHOW CREATE PROCEDURE yourProcedureName();サンプル用ストアドプロシージャの作成まず、動作確認用のストアドプロシージャを作成してみましょう。mysql> DELIMITER //mysql> CREATE PROCEDUR

  14. MySQLでテーブル内の2つの異なる行セットの件数を取得して割り算する方法

    はじめにMySQLでは、count(*)関数を使うことで、テーブル内の2つの異なる行セットそれぞれの件数を取得し、その結果を割り算することができます。例えば、「既婚者(isMarried=1)」と「未婚者(isMarried=0)」の人数比を求めたい場合などに活用できます。本記事では、実際にサンプルテーブルを作成しながら、その手順をわかりやすく解説します。サンプルテーブルの作成まず、以下のコマンドでテーブルを作成します。mysql> create table DemoTable(isMarried tinyint(1)); Query OK, 0 rows affected (0.53

  15. 【MySQL】CASEステートメントを使ってORDER BYの並び順を自由にカスタマイズする方法

    MySQLでレコードを取得する際、標準の ORDER BY では昇順・降順しか指定できませんが、CASEステートメントを組み合わせれば、値ごとの優先順位に従った「任意の並び順」でソートすることができます。ここでは、その具体的な手順をサンプル付きで解説します。 1. サンプルテーブルの作成 まず、動作確認用のテーブルを作成します。 mysql> create table DemoTable(StudentId varchar(100)); Query OK, 0 rows affected (1.69 sec) 2. テストデータの挿入 続いて、insertコマンドでいくつかのレコードを追

  16. MySQLのSLEEP()関数はビジーウェイトなのか?その仕組みと実装方法を解説

    MySQLのSLEEP()関数はビジーウェイトか?結論から言うと、いいえ、MySQLのSLEEP()関数はビジーウェイト(Busy-Wait)ではありません。スリープ中もCPUを回し続けるのではなく、指定した秒数だけスレッドを休止させて処理を一時停止する仕組みになっています。それでは、実際にテーブルを作成し、SLEEP()関数の動作を確認してみましょう。1. テーブルの作成まず、以下のコマンドでサンプル用のテーブルを作成します。mysql> create table DemoTable(FirstName varchar(100));Query OK, 0 rows affected (

  17. 【MySQL】ユーザー定義変数とLAST_INSERT_ID()を使って2つのテーブルに異なる自動インクリメントIDを設定する方法

    MySQLでは、LAST_INSERT_ID()関数とユーザー定義変数を組み合わせることで、2つのテーブルにそれぞれ異なる自動インクリメントIDを設定できます。この記事では、その具体的な手順をサンプルコード付きで解説します。手順1: 最初のテーブルを作成するまず、StudentIdカラムにAUTO_INCREMENT(自動インクリメント)を設定したテーブルを作成します。mysql> create table DemoTable1 (StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY); Query OK, 0 rows affected (

  18. MySQLのストアドプロシージャで5つの乱数を生成する方法

    MySQLでランダムな数値を抽出するには、ORDER BY RAND() を活用するのが便利です。本記事では、テーブルに登録されたデータの中からランダムに5つの値を選び出し、それをストアドプロシージャとして作成・呼び出すまでの手順を、実際のコード例とともにわかりやすく解説します。 1. サンプルテーブルを作成する まず、乱数の候補となる値を格納するためのテーブルを作成します。 mysql> create table DemoTable (Value int); Query OK, 0 rows affected (0.76 sec) 2. テーブルにデータを挿入する 続いて、INSERT

  19. MySQLで今後12時間以内に期限が近づくレコードを抽出するクエリの書き方

    日時データの中から「現在時刻から今後12時間以内」に期限が到来するレコードだけを抽出したいケースは、タスク管理やリマインダー機能などでよくあります。このような条件検索には、DATE_ADD() 関数と INTERVAL 12 HOUR を組み合わせると簡単に実現できます。本記事では、実際にテーブルを作成し、サンプルデータを挿入しながら、具体的なクエリの書き方を順番に解説していきます。1. テーブルを作成するまずは、DATETIME型のカラムを持つサンプルテーブルを作成します。mysql> create table DemoTable (DueDateTime datetime); Que

  20. MySQLのCASEステートメントとPHPのifステートメント、どちらが高速か?速度比較を解説

    MySQLのCASEステートメントとPHPのifステートメント、どちらが高速?結論から言うと、MySQLのCASEステートメントの方がPHPのifステートメントより高速です。PHPのifステートメントは、まずデータをアプリケーション側に読み込んでから条件分岐の処理を行うため、その分のオーバーヘッドが発生します。一方、CASEステートメントはデータベースサーバー側で処理を完結できるため、余計なデータ転送や読み込みが不要になり、結果として高速に動作します。ここからは、実際にテーブルを作成し、MySQLのCASEステートメントの動作を具体的な例で確認していきましょう。1. テーブルの作成まず、以下の

Total 4564 -コンピューター  FirstPage PreviousPage NextPage LastPage CurrentPage:82/229  20-コンピューター/Page Goto:1 76 77 78 79 80 81 82 83 84 85 86 87 88