-
MySQLで2つのカラム(列)を同時に更新する方法|UPDATE文の基本構文と実例
MySQLでは、UPDATE文のSET句に「カラム名 = 値」をカンマ(,)で区切って記述することで、1回のクエリで複数のカラムを同時に更新できます。本記事では、基本構文から実際の動作確認まで、具体例を交えてわかりやすく解説します。基本構文2つのカラムを更新する場合の基本的な構文は以下の通りです。UPDATE テーブル名SET カラム名1 = 値1, カラム名2 = 値2WHERE 条件;ポイントは、SET句の中で更新したいカラムごとの代入式をカンマで区切ることです。WHERE句で対象レコードを絞り込むことも忘れないようにしましょう。サンプルテーブルを作成するそれでは、実際に動きを確認す
-
MySQLでSQL ServerのIDENTITY列に相当するのは?AUTO_INCREMENTの使い方を徹底解説
MySQLにおけるIDENTITY列の代替機能Microsoft SQL ServerのIDENTITY列に相当する機能は、MySQLではAUTO_INCREMENTです。SQL ServerのIDENTITYが自動的に連番を生成するように、MySQLのAUTO_INCREMENTも同様に、レコード挿入時に数値を自動的に増加させてくれます。AUTO_INCREMENTの基本構文MySQLでAUTO_INCREMENTを使用する場合、基本的な構文は以下のとおりです。CREATE TABLE yourTableName ( yourColumnName1 dataType NOT NULL
-
MySQLでSELECT結果のLONGTEXTフィールドの文字数を制限する方法
MySQLでSELECT結果として取得する長いテキスト(LONGTEXT)フィールドの文字数を制限したい場合は、SUBSTRING()関数を使用します。この関数を使うことで、クエリ実行時に指定した文字数だけ文字列を切り出して表示できます。SUBSTRING()の基本構文SELECT SUBSTRING(カラム名, 1, 取得したい文字数) AS 別名 FROM テーブル名;第1引数に対象のカラム名、第2引数に開始位置(1文字目からの場合は「1」)、第3引数に取得したい文字数を指定します。動作を確認するためのサンプルテーブル作成それでは、実際に動作を確認してみましょう。まずはLONGTEXT型の
-
MySQLのエラー1396(HY000)を解決:DROP USER操作が「'user'@'localhost'」に対して失敗する原因と対処法
エラー1396(HY000)が発生する原因 このエラーは、ホストを「%」(すべてのホスト)として作成したユーザーを、誤って「localhost」を指定して削除(DROP USER)しようとしたときに発生します。MySQLではユーザーは「ユーザー名@ホスト名」の組み合わせで管理されているため、ホスト部分が異なると別のユーザーとして認識され、該当するユーザーが存在しないというエラーになります。 ホスト「%」でユーザーを作成する まず、ホストに「%」を指定してユーザーを作成してみましょう。構文は以下の通りです。 CREATE USER yourUserName@% IDENTIFIED BY you
-
MySQLでパラメータ付きストアドプロシージャを作成する方法(IN・OUTの使い方)
MySQLでは、ストアドプロシージャを作成する際にINとOUTという2種類のパラメータを使用できます。INは入力用パラメータ、OUTは出力用パラメータとして機能します。 基本構文 パラメータ付きストアドプロシージャの基本的な構文は以下の通りです。 DELIMITER //CREATE PROCEDURE yourProcedureName(IN yourParameterName dataType, OUT yourParameterName dataType)BEGINyourStatement1;yourStatement2;..NEND;//DELIMITER ; ポイントは、まずD
-
MySQLでsql_modeを永続的に設定する方法を解説
MySQLのsql_modeを永続的に設定する手順MySQLでは、セッションごとにSET sql_modeを実行してSQLモードを変更できますが、サーバーを再起動すると設定は元に戻ってしまいます。そこで本記事では、設定ファイル(my.cnf / my.ini)を編集することで、sql_modeを永続的に設定する方法を解説します。ステップ1:データディレクトリの場所を確認するまず、MySQLのデータディレクトリの場所を確認しましょう。以下のコマンドを実行します。mysql> select @@datadir;実行結果は次のようになります。+-------------------------
-
MySQLで昨日の日付を取得する方法|subdate()関数の使い方を実例付きで解説
MySQLで昨日の日付を取得したい場合は、subdate()関数を使うのが便利です。この記事では、基本的な構文から、実際にテーブルを作成して動作を確認するまでの手順をサンプルコードとともにわかりやすく解説します。 subdate()関数の基本構文 日時カラムから1日前の日付を取得するには、以下のように記述します。 SELECT SUBDATE(日時カラム名, INTERVAL 1 DAY) AS 別名 FROM テーブル名; サンプルテーブルの作成 まずは動作確認用に、datetime型のカラムを持つテーブルを作成します。 mysql> CREATE TABLE YesterdayD
-
MySQLにおけるUNIX_TIMESTAMPの最適なデータ型とは?
UNIX_TIMESTAMPに最適なデータ型は整数型(INT)MySQLでUNIX_TIMESTAMPの値を保存する場合、最も適しているのは整数型(INTEGER)です。具体的には、次のように定義します。int(11);整数型は「>」や「<=」といった比較条件を使った検索や、インデックスの作成に適しています。さらに、UNIX_TIMESTAMP関数の戻り値自体が整数であるため、データ型としても相性が良いのがポイントです。DATETIMEをUNIXタイムスタンプに変換してみようここからは、DATETIME型の値をUNIXタイムスタンプに変換したときに、実際どのような結果が得られるのか
-
MySQLで%ワイルドカードを正しく使う方法|LIKE演算子によるパターン検索の基本
MySQLの%ワイルドカードとはMySQLであいまい検索(パターンマッチング)を行う際には、LIKE演算子と%ワイルドカードを組み合わせて使用します。%は「0文字以上の任意の文字列」にマッチするワイルドカードで、前方一致・部分一致など、柔軟な条件でのデータ抽出が可能になります。基本構文は以下のとおりです。select *from yourTableName where yourColumName Like condition%;サンプルテーブルの作成実際の動きを確認するため、まずはテスト用のテーブルを作成しましょう。mysql> create table SearchDemo -&
-
PythonでSQLiteデータベースを操作する方法|sqlite3モジュール徹底解説
SQLiteとは SQLiteは、サーバーを必要とせず、設定も一切不要なオープンソースのデータベースです。データベース全体が単一のディスクファイルとして保存され、OSのファイルシステム上の任意の場所に配置できます。SQLiteのコマンドは標準SQLに近い構文を持つため、学習コストも低く抑えられます。 SQLiteは、Webブラウザなど多くのアプリケーションの内部データ保存に広く採用されており、組み込みデバイス向けのデータストレージとしても非常に有用です。 Pythonの標準ライブラリには、SQLiteデータベース接続のサポートが最初から組み込まれています。その中核となるのがsqlite3モジ
-
MySQLでURL文字列の最後のインデックス(末尾部分)を取得する方法
URL文字列から最後の部分(最後の区切り文字以降の文字列)を取得したい場合、MySQLのSUBSTRING_INDEX()関数を使用します。この関数は、指定した区切り文字を基準に、文字列を前方または後方から数えて切り出すことができます。SUBSTRING_INDEX()関数の基本構文最後のインデックス(末尾部分)を取得するには、区切り文字の位置に「-1」を指定します。基本構文は以下の通りです。SELECT カラム名1,...N, SUBSTRING_INDEX(対象カラム名,区切り文字,-1) AS 別名 FROM テーブル名;動作確認用テーブルの作成実際に構文を理解するために、まずテーブルを
-
MySQLでSUM()などの集計関数を使わずに列の値を合計する方法
MySQLでは、SUM()のような集計関数を使わなくても、「+」演算子で列同士をつなげるだけで、行ごとの列の値を合計できます。この記事では、実際にテーブルを作成しながら、その具体的な手順をわかりやすく解説します。基本構文複数の列の値を加算し、任意の名前を付けた列として表示するには、次の構文を使用します。SELECT *,(yourColumnName1+yourColumnName2+yourColumnName3,....N) as anyVariableName from yourTableName;サンプルテーブルの作成構文の動きを確認するために、まずテーブルを作成しましょう。ここでは、
-
MySQLとSQL ServerでクエリからテーブルのDDLを生成・取得する方法
DDLとは「Data Definition Language(データ定義言語)」の略称で、テーブルやインデックスなどのデータベースオブジェクトを定義・変更・削除するためのSQL文を指します。既存テーブルのDDL(CREATE TABLE文)を取得したい場面は、バックアップや環境移行、ドキュメント作成などでよくあります。MySQLでDDLを取得する方法MySQLでは、SHOW CREATE TABLE コマンドを使うことで、クエリ一つでテーブルのDDLを簡単に生成できます。基本構文SHOW CREATE TABLE テーブル名;※この構文はMySQL固有のものであり、SQL Serverでは使用
-
MySQLのSELECT文でIN句に指定した値の順序どおりに並べ替える方法
MySQLでは、ORDER BY句とFIELD()関数を組み合わせることで、IN句に指定した値の順序どおりに検索結果を並べ替えることができます。通常、IN句は条件の絞り込みにのみ使われ、結果の並び順には影響しませんが、FIELD()関数を併用すれば、リストに記述した通りの任意の順序でレコードを取得できます。基本構文SELECT *FROM yourTableName WHERE yourColumnName IN(Value1,Value2,Value3,.......N) ORDER BY FIELD(yourColumnName ,Value1,Value2,Value3,.......N
-
MySQLコマンドラインでレコードを縦方向(垂直)に表示する方法
MySQLでレコードを垂直表示するには「\G」を使うMySQLのコマンドラインでSELECT文の結果を見やすく縦方向(垂直)に表示したい場合は、通常のセミコロン(;)の代わりに、バックスラッシュとGを組み合わせた「\G」を使用します。構文は以下のとおりです。SELECT * FROM テーブル名\Gターミナルの幅が狭く、横並びの表形式では列が折り返されて読みにくい場合に、この\G指定が非常に便利です。1レコードごとに「カラム名: 値」の形式で縦に出力されるため、内容がひと目で把握できます。動作確認用テーブルの作成それでは、実際にテーブルを作成して動作を確認してみましょう。まずはテーブル作成用の
-
MySQLコマンドラインでデータベース一覧を縦方向(垂直)に表示する方法
MySQLのコマンドラインでクエリを実行する際、通常は文末にセミコロン(;)を付けますが、これを「\G」に置き換えることで、結果を縦方向(垂直)に整形して表示できます。基本構文MySQLコマンドラインでデータベース名の一覧を垂直に表示するには、次のような構文を使用します。SHOW DATABASES \G実行例すべてのデータベース名を縦方向に表示するには、\Gを指定してクエリを実行します。mysql> show databases\G実行結果*************************** 1. row *************************** Database: b
-
MySQLで通常のクエリ用に変数を宣言する方法|セッション変数とローカル変数の違いも解説
MySQLでは、@変数名 の形式で「セッション変数」を宣言できます。セッション変数を作成するには、SET コマンドを使用します。セッション変数の宣言構文SET @anyVariableName := anyValue;一方、DECLARE コマンドを使用すると「ローカル変数」を宣言できます。ローカル変数はストアドプロシージャやストアドファンクション内でのみ有効です。ローカル変数の宣言構文DECLARE yourVariableName datatype;変数の作成時にデフォルト値を設定することも可能です。デフォルト値付きの宣言DECLARE yourVariableName datatype
-
MySQLにDECIMAL型(小数値)を挿入する方法を徹底解説
MySQLでDECIMAL型を使うには MySQLデータベースに小数値を挿入する場合は、カラムのデータ型としてDECIMAL型を定義します。DECIMAL型は金額のように誤差が許されない数値を正確に格納したい場合に最適なデータ型です。 DECIMAL型の基本構文 テーブル作成時に、次の構文でDECIMAL型のカラムを定義できます。 yourColumnName DECIMAL(総桁数, 小数点以下の桁数); 第1引数は全体の有効桁数、第2引数はそのうち小数点以下に割り当てる桁数を表します。たとえば DECIMAL(4,2) なら「最大4桁・うち小数点以下2桁」、すなわち「-99.99 ~ 9
-
MySQLでINSERTとSELECTを組み合わせて別テーブルからデータを挿入する方法
MySQLでは、INSERT文とSELECT文を組み合わせることで、別のテーブルから取得したデータをそのまま新しいテーブルに挿入できます。この記事では、その基本的な構文と具体的な使用例を解説します。基本構文INSERT、VALUES、SELECTを組み合わせるには、以下の構文を使用します。insert into yourFirstTableName(yourColumnName1,yourColumnName2,.......N) select yourColumnName1,yourColumnName2,.......N from yourSecondTableName where you
-
MySQLでNOT NULL制約のカラムを追加する方法|テーブル作成時と既存テーブルへの追加を解説
MySQLでNOT NULL列を追加する2つの方法 MySQLでは、NOT NULL制約を持つカラム(列)を追加する場面として、主に次の2つのケースがあります。 ケース1: テーブルを作成する際にNOT NULL列を定義する ケース2: 既存のテーブルに後からNOT NULL列を追加する それぞれの手順と実際の動作を、具体例とともに詳しく見ていきましょう。 ケース1:テーブル作成時にNOT NULL列を追加する テーブル作成時にNOT NULL制約を設定する場合の基本構文は以下のとおりです。 CREATE TABLE yourTableName ( yourColumnName1