-
MySQLで文字列を日付に変換する方法【STR_TO_DATE()関数の使い方】
MySQLでは、STR_TO_DATE()関数を使うことで、文字列を日付型に簡単に変換できます。本記事では、テーブルの作成からデータの挿入、実際の変換処理まで、具体例を交えて順番に解説していきます。 テーブルの作成 まずは、日付文字列を格納するためのサンプルテーブルを作成します。 mysql> create table StringToDateDemo -> ( -> YourDate varchar(100) -> ); Query OK, 0 rows affected (0.49 sec) テーブルへのレコード挿入 次に、「10/27/201
-
MySQLでテーブルのすべてのカラム(列)を一覧表示する方法
MySQLでテーブルのすべてのカラムを一覧表示するには? テーブル内のすべてのカラム(列)を確認したい場合は、SHOWコマンドを使うのが最も簡単な方法です。ここでは、実際にテーブルを作成しながら、カラムの一覧表示手順を詳しく解説します。 1. サンプルテーブルの作成 まず、動作確認用として以下のようなテーブルを作成しましょう。 mysql> create table ColumnsList -> ( -> id int, -> Firstname varchar(200), -> LastName varchar(100), -&
-
MySQLでコメントを書く方法|#・--・/* */の3種類の使い方を解説
MySQLでは、SQL文の中にコメント(注釈)を記述することができます。コメントとして書かれた部分は、MySQLによって実行時に無視されるため、コードの説明やメモ、一時的にSQLを無効化したい場合などに活用できます。 MySQLで使用できるコメントには、主に以下の3種類があります。 1. 「#」記号を使ったコメント 行頭や文の前に「#」を付けると、その行の「#」以降がすべてコメントとして扱われ、MySQLに無視されます。主に単一行のコメントに使われます。 mysql> create table CommentDemo -> ( -> id int #Id
-
MySQLストアドプロシージャの終了方法|LEAVEコマンドの使い方を解説
MySQLでは、LEAVEコマンドを使用することで、ストアドプロシージャを任意の時点で終了(抜け出す)ことができます。 本記事では、LEAVEコマンドの基本的な使い方から、実際のサンプルコードまで詳しく解説します。 LEAVEコマンドの基本構文 LEAVEコマンドは、ラベルを付けたブロックやループから処理を脱出するために使われます。基本構文は以下のとおりです。 Leave yourLabelName; ストアドプロシージャを終了させる具体例 ここでは、実際に新しいプロシージャを作成して、LEAVEコマンドの動作を確認してみましょう。 mysql> delimiter // my
-
MySQLデータベースでENUM型の値を列挙・管理する方法
MySQLのENUM型とはMySQLでは、ENUM(列挙型)を使用することで、カラムに設定可能な値をあらかじめ定義できます。ENUM型のカラムには、定義済みの値リストの中から1つだけ値を格納でき、データの整合性を保ちながら文字列を内部的に数値として効率的に保存できるのが特徴です。基本構文ENUM型は次のような構文で定義します。yourColumnName ENUM(value1,value2,......valueN)括弧内に許可したい値をカンマ区切りで並べるだけで、そのカラムに入力できる値が自動的に制限されます。テーブルの作成例まず、ENUM型のカラムを持つテーブルを作成してみましょう。my
-
MySQLで次の自動インクリメントIDを取得する方法
MySQLには、自動採番(オートインクリメント)を実現するためのAUTO_INCREMENTキーワードが用意されています。開始値はデフォルトで「1」に設定されており、新しいレコードが挿入されるたびに1ずつ加算されていきます。 MySQLで次の自動インクリメントIDを取得したい場合は、last_insert_id()関数を使う方法と、information_schemaのAUTO_INCREMENT値をSELECT文で参照する方法の2つがあります。本記事では後者の方法を具体的な例とともに解説します。 1. 自動インクリメント付きテーブルの作成 まず、「id」カラムを自動インクリメントに設定したテ
-
MySQLのSELECTクエリで別テーブルに存在しない行を抽出する方法(NATURAL LEFT JOIN活用)
MySQLのSELECTクエリで別テーブルに存在しない行を抽出する方法データベースの運用では、「片方のテーブルには存在するが、もう片方のテーブルには存在しないレコード」を抽出したい場面がよくあります。この記事では、2つのテーブルを作成し、NATURAL LEFT JOINを活用して差分の行を取得する方法を、実際のサンプルコードとともにわかりやすく解説します。1. 最初のテーブルを作成するまずは比較元となる最初のテーブルを作成します。 mysql> create table FirstTableDemo -> ( -> id int, -> name v
-
MySQLでテーブル内の重複レコードをすべて削除する方法
MySQLのテーブルから重複レコードを削除したい場合、DELETEコマンドを使用します。この記事では、実際にテーブルを作成し、重複データを挿入したうえで、DELETE文を使って重複レコードを削除する手順を具体的に解説します。 1. テーブルの作成 まず、練習用のテーブル「DuplicateDeleteDemo」を作成しましょう。このテーブルは、id(整数型)とname(可変長文字列)の2つのカラムを持つシンプルな構造です。 mysql> create table DuplicateDeleteDemo -> ( -> id int, -> name
-
MySQLで文字列から英数字以外の文字をすべて削除する方法
MySQLでは、文字列に含まれる記号や特殊文字を取り除きたいケースがよくあります。ここでは、文字列から英数字(アルファベットと数字)以外の文字をすべて削除する方法を解説します。削除対象となる英数字以外の文字の例以下のような記号が該当します。@, !, #, &, (), ?, /組み込み関数は存在しない残念ながら、MySQLには文字列から英数字以外の文字を削除するための組み込み関数は用意されていません。そのため、独自のユーザー定義関数を作成する必要があります。以下は、RemoveNonAlphaNumericという関数の宣言と定義です。文字列を1文字ずつ走査し、正規表現パターン [[:alnu
-
MySQLのデータベース行タプルで整数に「L」サフィックスが付く理由とは?
MySQLの行タプルで整数に「L」が付く理由 MySQLで取得したデータベース行タプルの整数値に「L」という接尾辞(サフィックス)が付いている現象は、Pythonの仕様と深い関係があります。Python 2では、長整数(long型)リテラルを表すために、数値の末尾に「L」または「l」を付ける必要がありました。しかし、Python 3ではint型とlong型が統合され、単一のint型になったため、「L」や「l」を付ける必要はなくなりました。 Python 3での大きな数値の扱い方 Python 3.7では、接尾辞を一切使わずに、そのまま大きな数値を記述することができます。 ここで、あえて「L
-
MySQLでテーブルのカラム(列)数を調べる方法を解説
MySQLでテーブルに含まれるカラム(列)の数を確認したい場合は、information_schema.columns に対して count(*) 関数を使い、WHERE 句で対象テーブルを指定するのが基本の方法です。この記事では、実際のSQL例とともに、具体的な手順をわかりやすく解説します。サンプルテーブルの作成まずは動作確認用のテーブルを作成します。mysql> create table NumberOfColumns -> ( -> id int, -> FirstName varchar(100), -> LastName varc
-
MySQLのBLOBデータ型とTEXTデータ型の違いとは?使い分けのポイントを解説
BLOBとTEXTの基本的な違いBLOBは「Binary Large Objects(バイナリ・ラージオブジェクト)」の略称で、その名の通りバイナリデータを格納するために使用されるデータ型です。一方、TEXTは大量の文字列を格納するためのデータ型です。BLOBはバイナリデータを扱えるため、画像・動画・音声ファイルだけでなく、実行形式のプログラムなどもそのまま保存できます。例えば、以下のような画像ファイルはバイナリデータで構成されているため、BLOB型のカラムに格納することが可能です。比較・ソートの挙動の違いBLOBとTEXTでは、データの比較やソートの方法が大きく異なります。BLOB値:バイト
-
MySQLのSHOW PROCESSLISTで表示されるすべてのプロセスを強制終了する方法
MySQLでは「KILL」コマンドを使ってプロセスを終了できます。ただし、MySQLには一括でプロセスを強制終了する専用のコマンドが用意されていないため、基本的にはプロセスを1つずつ終了していく必要があります。現在のプロセス一覧を確認するまず、現在存在するプロセスの一覧や状態を確認するには、「SHOW PROCESSLIST」を使用します。 show processlist; 実行結果は以下のとおりです。 +----+-----------------+-----------------+------+---------+------+------------------------+----
-
MySQLのクエリ結果をテキストファイル(.txt)やExcelで使える形式に保存する方法
MySQLでクエリの出力結果をテキストファイルに保存したい場合は、INTO OUTFILEコマンドを使用します。この記事では、実際にテーブルを作成し、データを登録したうえで、クエリ結果を「QueryOutput.txt」というファイルに出力するまでの一連の手順を具体的な例とともに解説します。 1. サンプルテーブルの作成 まず、出力確認用のテーブルを作成しましょう。 mysql> create table SaveintoTextFile -> ( -> id int, -> name varchar(100) -> ); Query
-
MySQLで現在の接続情報を確認する方法|CURRENT_USER・CONNECTION_ID・statusコマンドの使い方
MySQLには、現在の接続に関するさまざまな情報を取得できる関数やコマンドが多数用意されています。たとえば、現在ログインしているユーザーを知りたい場合はuser()関数(またはCURRENT_USER())を使用します。 現在のユーザーを確認する 現在のユーザー名を取得するには、以下のようにCURRENT_USER()関数を実行します。 mysql> SELECT CURRENT_USER(); 実行結果として、現在のユーザー名が表示されます。 +----------------+ | CURRENT_USER() | +----------------+ | root@%
-
MySQLでビュー(VIEW)の一覧を取得する方法を解説
MySQLでビューの一覧を確認するには? MySQLに作成されているビュー(VIEW)の一覧を取得したい場合、information_schemaデータベースのtablesテーブルを参照するのが基本的な方法です。SELECT文とLIKE演算子を組み合わせることで、データベース内に存在するすべてのビューを簡単に抽出できます。 まずは、実際に使用するSQL構文を見てみましょう。 ビュー一覧を取得するSQL構文 mysql> SELECT TABLE_SCHEMA, TABLE_NAME -> FROM information_schema.tables -> W
-
MySQLの「SELECT 1」とは何を意味するのか?具体例で解説
MySQLにおける「SELECT 1」の意味 MySQLでは、任意のテーブル名を指定して「SELECT 1」を実行すると、結果として定数「1」のみが返されます。このとき返される行数は、テーブル内のレコード数と一致します。たとえば、テーブルに4件のレコードが存在する場合、「1」が4回表示されます。 それでは、具体的な例を見ていきましょう。まず、CREATE文を使用してテーブルを作成します。 mysql> create table StudentTable -> ( -> id int, -> name varchar(100) -> );
-
MySQLデータベース内のテーブル数を数える方法|SHOW TABLESとCOUNT(*)の使い方
MySQLデータベース内のテーブル数を数える方法 MySQLでデータベースに含まれるテーブルの総数を調べたい場合は、COUNT(*)とINFORMATION_SCHEMA.TABLES(table_schema)を組み合わせるのが基本です。まずは、対象となるデータベース「business」に実際にどのようなテーブルが存在するのかを確認してみましょう。テーブルの一覧を表示するには、SHOWコマンドを使用します。 mysql> show tables; 以下は、データベース「business」内のすべてのテーブルを表示した出力結果です。 +-----------------------
-
MySQLでデフォルト値として「false」を持つブール型(BOOLEAN)カラムを作成する方法
MySQLでデフォルト値falseのブール型カラムを作成する MySQLでは、「false」をデフォルト値とするブール型(BOOLEAN)カラムを作成したい場合、テーブル作成時に「DEFAULT」句を利用します。 ポイント:MySQLにおいてBOOLEAN型は内部的にTINYINT(1)として扱われ、0がfalse、1がtrueを表します。 1. テーブルの作成 以下のように、DEFAULT句で「false」を指定してテーブルを作成します。 mysql> create table TrueFalseTable -> ( -> Adult boolean def
-
MySQLでUNIONとORDER BY句を組み合わせて使う方法
UNIONはMySQLにおける演算子の一種で、ORDER BY句と組み合わせることで、結合後のレコードを自由に並べ替えることができます。複数のテーブルから行を順番に取得したい場合や、1つのテーブルから複数の行セットを取り出し、それらを1つの結果セットとして扱いたい場合にUNIONを使用します。ここでは、実際の例を使ってUNIONとORDER BYの使い方を解説します。最初のテーブルを作成するまず、サンプル用のテーブル「UnionDemo1」を作成します。 mysql> create table UnionDemo1 -> ( -> id int ->