-
MySQLで0、1、NULL値を格納するのに最適なデータ型は?
MySQLで0、1、NULLという3種類の値を格納したい場合、最適なデータ型は TINYINT(1) UNSIGNED NULL です。TINYINTはわずか1バイトで済むため省スペースであり、フラグや真偽値のような扱いにも向いています。カラム定義の構文yourColumnName TINYINT(1) UNSIGNED NULL;UNSIGNEDを指定することで負の値を排除し、NULLを許容することで「未設定」の状態も表現できます。テーブルを作成して動作を確認するそれでは、実際にテーブルを作成して構文を確認してみましょう。テーブル作成のクエリは以下の通りです。mysql> create
-
MySQLでIN句に指定した順序どおりに行を取得する方法:FIND_IN_SET()の活用
IN句の順序で行を取得するには?MySQLでは、IN句に指定した値の順序どおりに結果セットを取得したい場合、通常のクエリでは実現できません。そこで活躍するのが FIND_IN_SET() 関数です。この関数を ORDER BY 句と組み合わせることで、IN句で指定した値の並び順そのままに行をソートできます。基本構文SELECT yourVariableName.* FROM yourTableName yourVariableName WHERE yourVariableName.yourColumnName IN(value1,value2,...N) ORDER BY FIND_IN_SE
-
MySQLで月の何週目かを取得する方法|組み込み関数を使った計算テクニック
MySQLに「月の何週目か」を取得する組み込み関数はある?結論から言うと、MySQLには月の何週目かを直接取得する標準関数は存在しません。ただし、既存の関数を組み合わせることで、月の週番号を簡単に計算することができます。この記事では、WEEK()関数とDATE_SUB()関数を組み合わせて、日付がその月の何週目にあたるかを求める方法を、実際のサンプルコードとともにわかりやすく解説します。月の週番号を取得する構文以下の構文を使用することで、指定した日付がその月の何週目かを算出できます。SELECT WEEK(日付カラム名, 5) - WEEK(DATE_SUB(日付カラム名, INTERVAL
-
MySQLでパスからファイル名を抽出する方法
MySQLでファイルパスからファイル名だけを抽出したい場合、SUBSTRING_INDEX()関数を使用すると簡単に実現できます。この関数は、指定した区切り文字を基準に文字列を分割し、指定した位置の部分を取得することができます。基本構文パスからファイル名を抽出する基本構文は以下の通りです。SELECT SUBSTRING_INDEX(カラム名, \\, -1) AS 任意の別名 FROM テーブル名;第3引数に「-1」を指定することで、区切り文字(バックスラッシュ)で分割した際の最後の要素、つまりファイル名を取得できます。サンプルテーブルの作成それでは、実際に動作を確認するためにテーブルを作成
-
MySQLのORDER BYで日付列と整数列を組み合わせて並べ替える方法:CASE式によるカスタムソート
MySQLのORDER BYで日付列と整数列を組み合わせて並べ替える方法 MySQLでは、ORDER BY句にCASE式を組み合わせることで、整数列に対して独自の並び順ルールを指定しつつ、日付列でもソートを行うことができます。このテクニックを使えば、「特定の値を持つレコードを優先的に表示し、それ以外は日付順に並べたい」といった要件にも柔軟に対応できます。 基本構文 ORDER BY句とCASE式を組み合わせた基本構文は以下の通りです。 SELECT * FROM yourTableName ORDER BY CASE yourIntegerColumnName WHEN 2 THEN 1
-
MySQLのテーブルレコードで最初に出現する文字だけを検索・置換する方法
MySQLで最初の出現箇所のみを検索・置換する方法MySQLのテーブルレコード内で、特定の文字が最初に出現した箇所だけを別の文字に置き換えたい場合は、CONCAT()関数とREPLACE()関数を組み合わせることで実現できます。さらに、最初の出現位置を特定するためにINSTR()関数を使用します。基本的な構文UPDATE yourTableNameSET UserPost = CONCAT( REPLACE(LEFT(yourColumnName, INSTR(yourColumnName, k)), k, i), SUBSTRING(yourColumnName, INSTR(y
-
MySQLのmax_heap_table_sizeの値を確認・変更する方法
max_heap_table_sizeとは max_heap_table_sizeは、MySQLのシステム変数の一つで、読み取り/書き込みの両方のプロパティを持っています。主に、メモリ上に作成されるMEMORY(HEAP)テーブルの最大サイズを制御するために使用されます。 初期状態では、max_heap_table_sizeは16MBに設定されています。まずは、現在の設定値を確認してみましょう。この値はバイト単位で表されます。 確認には以下のクエリを使用します。 mysql> select @@max_heap_table_size; 実行結果は以下のとおりです。 +----------
-
MySQLのSELECT *クエリでDATE_FORMAT()関数を使って日付をフォーマットする方法
MySQLで日付をフォーマットするには?MySQLで日付をフォーマットしたい場合、FORMATDATE()という関数は存在しないため注意が必要です。代わりに、標準関数であるDATE_FORMAT()を使用します。正しい構文は以下のとおりです。SELECT *, DATE_FORMAT(日付カラム名, 書式) AS 任意の別名 FROM テーブル名;この構文では、元のすべてのカラム(*)に加えて、指定した書式に変換された日付が新しい別名のカラムとして結果セットに追加されます。サンプルテーブルの作成構文を理解するために、まず実際にテーブルを作成してみましょう。テーブル作成用のクエリは次のとおりです
-
MySQLですべてのテーブルのカラム名を一括で小文字に変更する方法
MySQLでは、INFORMATION_SCHEMA.COLUMNS を利用することで、データベース内のすべてのテーブルのカラム名をまとめて小文字に変換できます。ここでは、CONCAT 関数を使って ALTER TABLE 文を自動生成し、カラム名を小文字に書き換える手順を解説します。カラム名を小文字に変更する基本構文まず、対象となるSQLの構文は以下の通りです。SELECT CONCAT(ALTER TABLE , TABLE_NAME, CHANGE `, COLUMN_NAME, ` `, LOWER(COLUMN_NAME), ` , COLUMN_TYPE, ;) AS anyAl
-
JavaでMySQLのSELECTクエリにPreparedStatement(プリペアドステートメント)を使う方法
executeQuery()メソッドの基本的な使い方JavaからMySQLに対してSELECTクエリを実行する場合は、PreparedStatementオブジェクトのexecuteQuery()メソッドを使用します。基本構文は以下の通りです。yourPreparedStatementObject = yourConnectionObject.prepareStatement(yourQueryName);yourResultSetObject = yourPreparedStatementObject.executeQuery();それでは、実際にサンプルデータベース「sample」を使って手
-
MySQLで値がNULLの場合にNOT NULL列へデフォルト値を挿入する方法
MySQLでNULL値の代わりにデフォルト値を挿入する方法MySQLでは、IF()関数とIS NULLを組み合わせることで、挿入する値がNULLの場合に、NOT NULL制約が設定された列へ自動的にデフォルト値を挿入できます。また、用途によってはIFNULL()関数を利用することも可能です。基本となる構文は以下の通りです。INSERT INTO yourTableName(yourColumnName1, yourColumnName2)VALUES(yourValue, IF(yourColumnName1 IS NULL, DEFAULT(yourColumnName2), yourMes
-
MySQLで2つのテーブルを外部キー制約を使って結合する方法
MySQLでは、外部キー制約を設定した2つのテーブルを作成し、JOIN句を使って結合することができます。ここでは、親テーブルと子テーブルを作成し、LEFT JOINで結合する手順を具体的に解説します。 1. 親テーブル(ParentTable)の作成 まず、最初のテーブルを作成します。UniqueId列をAUTO_INCREMENT付きの主キーとして定義します。 mysql> create table ParentTable -> ( -> UniqueId int NOT NULL AUTO_INCREMENT PRIMARY KEY, ->
-
EclipseプロジェクトにJDBC MySQLドライバーを追加する方法をわかりやすく解説
EclipseでJDBC MySQLドライバーを使えるようにする手順 EclipseのプロジェクトでMySQLデータベースに接続するには、JDBC MySQLドライバー(Connector/J)をプロジェクトに組み込む必要があります。この記事では、動的Webプロジェクトを作成し、JARファイルを配置して、実際にデータベース接続をテストするまでの一連の手順をスクリーンショット付きの流れに沿って解説します。 ステップ1:動的Webプロジェクトを作成する まず、Eclipseを起動し、任意の名前で「Dynamic Web Project(動的Webプロジェクト)」を作成します。メニューから Fil
-
MySQLにDATEPART()関数はない?MONTH()関数で月ごとに行を抽出する方法
SQL ServerでおなじみのDATEPART()関数ですが、実はMySQLには存在しません。そのため、日付カラムから月の情報を抽出して行を絞り込みたい場合は、代わりにMONTH()関数を使用します。MONTH()関数を使った基本的な構文SELECT * FROM yourTableName WHERE MONTH(yourDateColumnName) = yourValue;この構文では、指定したテーブルの中から、日付カラムの「月」が条件値と一致するレコードだけを取得できます。それでは、実際にテーブルを作成しながら動作を確認していきましょう。サンプルテーブルの作成まず、以下のクエリでテー
-
MySQLのカラム(フィールド)をデフォルト値にリセットする方法
MySQLでは、カラム(フィールド)の値をデフォルト値に戻したい場面がよくあります。その方法は大きく分けて2つあり、ひとつは「DEFAULT」キーワードを使う方法、もうひとつは「DEFAULT()」関数を使う方法です。本記事では、それぞれの構文と具体的な使用例をわかりやすく解説します。 デフォルト値へのリセット方法は2種類 方法1:DEFAULTキーワードを使う 最もシンプルな書き方は、SET句でDEFAULTキーワードを指定する方法です。基本構文は以下のとおりです。 UPDATE yourTableName SET yourColumnName = DEFAULT WHERE yourC
-
MySQLでNOT NULL制約付きの新しい列を追加する方法
MySQLのテーブルに、NULLを許可しない(NOT NULL)新しい列を追加したい場合、ALTER TABLE文を使用します。ポイントは、DEFAULTキーワードを使わずにNOT NULL制約だけを指定することです。基本構文ALTER TABLE テーブル名 ADD COLUMN 列名 データ型 NOT NULL AFTER 既存の列名;テーブル名:列を追加する対象のテーブル列名:新しく追加する列の名前データ型:varcharやintなど、列に適した型AFTER 既存の列名:任意指定。既存のどの列の後ろに配置するかを指定できます実際に試してみよう1. サンプルテーブルを作成するまず、動作を確
-
MySQL:テーブル作成クエリにおける「AUTO_INCREMENT = 5」とは何か?
MySQLでテーブルを作成する際に指定できる AUTO_INCREMENT = 5 は、自動採番される最初のレコードのIDを「1」ではなく「5」から開始させるためのオプションです。通常、AUTO_INCREMENTを設定したカラムには、特に指定しない限り1から順に連番が振られていきます。しかし、AUTO_INCREMENT = 5 のように初期値を明示することで、採番のスタート地点を任意の数値に変更できます。基本構文記述方法は以下のとおりです。CREATE TABLE yourTableName(yourColumnName1 dataType NOT NULL AUTO_INCREMENT,
-
MySQLでDECIMAL列の桁数を増やす方法|ALTER TABLEとMODIFY COLUMNの使い方
MySQLでDECIMAL列の桁数を変更する基本構文MySQLでは、すでに作成済みのDECIMAL型カラムで扱える桁数を増やしたい場合、ALTER TABLE文とMODIFY COLUMN句を組み合わせることで簡単に変更できます。基本の構文は以下の通りです。ALTER TABLE テーブル名 MODIFY COLUMN カラム名 DECIMAL(全体の桁数, 小数点以下の桁数);なお、DECIMAL(M, D) の「M」は整数部と小数部を合わせた最大桁数、「D」は小数点以下の桁数を表します。例えば DECIMAL(10,4) なら、小数点以下4桁を含めて最大10桁まで格納できます。検証用テーブ
-
MySQLのNOT LIKEの正しい構文と使い方を実例付きで解説
MySQLにおけるNOT LIKEの正しい構文MySQLで特定のパターンに一致しないテーブル名やレコードを抽出したい場合には、NOT LIKE句を使用します。基本的な構文は以下の通りです。SHOW TABLES WHERE `Tables_in_データベース名` NOT LIKE テーブル名%;この構文では、指定した文字列パターンに一致しないテーブルだけが結果として表示されます。ワイルドカード「%」は任意の文字列を表すため、たとえば「insert%」と指定すれば、「insert」で始まるテーブル以外がすべて抽出されます。実際に動作を確認してみようここからは、サンプルデータベース「SAMPLE」
-
MySQLで文字列をBIGINT型にキャストする方法|CONV()関数とCAST演算子の使い方
MySQLでは、CAST演算子とCONV()関数を組み合わせることで、文字列をBIGINT型(符号なし整数)に変換できます。CONV()関数は、ある基数の数値を別の基数の数値へ変換するための関数です。例えば、基数「16」は16進数(ヘキサデシマル)、基数「10」は10進数(デシマル)を表します。つまり、16進数の文字列を10進数の整数値に変換できるのです。基本構文構文は以下の通りです。SELECT CAST(CONV(yourColumnName,16,10) AS UNSIGNED INTEGER) as anyAliasName FROM yourTableName;実際にテーブルを作成し