-
MySQLで引用符で囲まれた2つの数値を加算するとどう評価される?
引用符(クォート)で囲まれた2つの数値を加算しようとする場合、これは文字列を数値として扱っていることを意味します。このような場合、MySQLは自動的に文字列の値を最も近い数値へ変換し、その結果をもとに計算を実行します。 つまり、演算子「+」を使った算術演算のコンテキストでは、オペランドが文字列であっても、MySQLはそれを暗黙的に数値型へキャストして評価するのです。 実行例 mysql> Select 1525 + 200 As Total; +-------+ | Total | +-------+ | 1725 | +-------+ 1 row in set (0.00 sec)
-
MySQLのストレージエンジンとは?サポートされているエンジン一覧の確認方法を解説
ストレージエンジンとはストレージエンジンとは、データベース管理システム(DBMS)が、データベースに対する作成(CREATE)・読み取り(READ)・更新(UPDATE)・削除(DELETE)といったSQL操作を処理するために使用するソフトウェアコンポーネントのことです。言い換えれば、DBMSがデータベース内の情報を管理するために利用する仕組みであり、テーブルへのデータの格納方法やトランザクションの扱い方などを決定づける中核的な役割を担っています。最も広く使われているストレージエンジンはInnoDBで、MySQL 5.5以降のバージョンではデフォルトのストレージエンジンとして採用されています。
-
引用符で囲まれた数値に非数値のテキストが含まれる場合、MySQLは加算をどのように評価するのか?
引用符で囲まれた数値同士を加算する際、その数値の後ろに「Kg」や「Oz」のような非数値のテキストが付いている場合、MySQLはどのように処理するのでしょうか。結論から言うと、MySQLは非数値のテキスト部分を単純に無視(破棄)し、数値部分のみを抽出して加算を実行します。ただし、この際に警告(warnings)が発生する点に注意が必要です。つまり、計算自体はエラーにならず結果が返されますが、データの変換に関する警告が記録される仕組みです。以下の例を見てみましょう。「1525 Kg」と「200 Oz」という文字列を加算しています。実行例mysql> Select 1525 Kg + 200
-
MySQLでテーブル作成時にデフォルトのInnoDB以外のストレージエンジンを指定する方法
MySQLでテーブルを作成する際、デフォルトのストレージエンジンであるInnoDBを使わずに、別のストレージエンジンを明示的に指定することができます。指定方法は非常にシンプルで、CREATE TABLE文の末尾にENGINEキーワードを追加するだけです。 基本的な指定方法 以下は、テーブル作成時にストレージエンジンとして「MyISAM」を指定する例です。 mysql> CREATE TABLE Student(id INTEGER PRIMARY KEY, Name VARCHAR(15)) -> ENGINE = MyISAM; Query OK, 0 rows affected
-
MySQLで特定のテーブルに使用されているストレージエンジンを確認する方法
MySQLでは、information_schema データベースの TABLES テーブルを参照することで、任意のテーブルに使用されているストレージエンジンを簡単に確認できます。ここでは、具体的なSQL文と実行結果の見方を解説します。 ストレージエンジンを確認するSQL文 以下のSQL文を実行すると、データベース「tutorial」内の「Student」テーブルに使用されているストレージエンジンを取得できます。 mysql> SELECT ENGINE FROM information_schema.TABLES -> WHERE TABLE_SCHEMA = tutor
-
現在のデータベース以外にあるテーブルから列の一覧を取得するには?(MySQL)
現在接続しているデータベースとは別のデータベースに存在するテーブルの列情報を取得したい場合、SHOW COLUMNS ステートメントに IN 句を組み合わせることで実現できます。USE 文でデータベースを切り替えなくても、そのまま他のデータベースのテーブル構造を確認できるのが便利なポイントです。基本構文SHOW COLUMNS FROM tab_name IN db_nametab_name: 列の一覧を表示したいテーブルの名前db_name: そのテーブルが格納されているデータベースの名前使用例以下の例では、現在「query」というデータベースを使用している状態で、「mysql」データベース
-
INSERT INTOステートメントでMySQLユーザーアカウントを作成する方法
MySQLへの新規ユーザー追加の基本MySQLに新しいユーザーを追加するには、mysqlデータベース内のuserテーブルに新しいレコードを挿入します。ここでは、INSERT INTOステートメントを使った具体的な手順を例とともに解説します。実行例次の例では、SELECT・INSERT・UPDATE権限を持ち、パスワードが「guest123」である新しいユーザー「guest」を追加しています。実際に実行するSQLクエリは以下のとおりです。root@host# mysql -u root -p Enter password:******* mysql> use mysql; Database
-
SQL GRANTステートメントを使ってMySQLユーザーアカウントを設定する方法
MySQLでは、CREATE USERステートメントを使用しなくても、SQLのGRANTコマンドだけでユーザーアカウントを新規作成し、同時に権限を付与することができます。ここでは、具体的な例を使ってその手順を解説します。 GRANTステートメントによるユーザー作成の例 この例では、TUTORIALSというデータベースに対して、パスワードzara123を持つユーザーZaraを追加します。 root@host# mysql -u root -p password; Enter password:******* mysql> use mysql; Database changed mysql
-
MySQLの集計関数とIF()関数を組み合わせる方法をわかりやすく解説
MySQLでは、集計関数(SUM()やCOUNT()など)とIF()関数を組み合わせることで、条件に応じた柔軟な集計結果を1つのクエリで取得できます。例えば、「特定の条件に合致する行数」と「合致しない行数」を同時に集計したい場合などに非常に便利です。以下では、実際のクエリ例を使って、その使い方を詳しく見ていきましょう。SUM()関数とIF()関数を組み合わせた例mysql> Select SUM(IF(Language = English, 1, 0)) As English, SUM(IF(Language <> English,1,0)) AS Non-English f
-
コマンドプロンプトでmysqlバイナリを使ってMySQLデータベースに接続する方法
コマンドプロンプトからmysqlバイナリを使用することで、MySQLサーバーへの接続とデータベースの操作を簡単に行うことができます。ここでは、具体的な手順を例を挙げながら解説します。MySQLサーバーへの接続手順コマンドプロンプトからMySQLサーバーに接続するには、以下のコマンドを実行します。[root@host]# mysql -u root -p Enter password:******パスワードを正しく入力すると、mysql>というコマンドプロンプトが表示されます。この状態になると、任意のSQLコマンドを実行できるようになります。上記コマンドの実行結果は以下の通りです。接続成功
-
mysqladminコマンドでMySQLデータベースを新規作成する方法
mysqladminでデータベースを作成するにはMySQLデータベースの作成や削除を行うには、rootユーザーなど適切な特別な権限が必要です。この記事では、mysqladminコマンドを使用して新しいデータベースを作成する手順をわかりやすく解説します。基本構文[root@host]# mysqladmin -u root -p create db_name Enter password:******db_name の部分には、作成したいデータベースの名前を指定します。コマンドを実行するとパスワードの入力を求められるので、rootユーザーのパスワードを入力してください。実行例ここでは、「TUTO
-
MySQLの制御フロー関数「CASE」の仕組みと使い方を徹底解説
MySQLのCASEは、SELECT文やWHERE句などのクエリ内で条件分岐を実現できる制御フロー関数です。IF文に似た働きを持ち、条件に応じて異なる値を返すことができます。CASEには大きく分けて2つの構文が存在します。構文1:値を比較するシンプルな形式CASE val WHEN compare_val1 THEN result1 WHEN compare_val2 THEN result2 . . . ELSE result ENDこの構文では、まず評価対象の値(val)を指定し、各WHEN句の比較値(compare_val)と順番に照合します。valがcompare_val1と一致すれば
-
mysqladminコマンドで既存のデータベースを削除する方法
MySQLデータベースの作成や削除を行うには、管理者権限などの特別な権限が必要です。この記事では、mysqladminコマンドを使って既存のデータベースを削除(ドロップ)する手順を解説します。基本構文mysqladminバイナリを使用してデータベースを削除する際の基本的な構文は以下のとおりです。[root@host]# mysqladmin -u root -p drop db_name Enter password:******ここで、db_nameには削除したいデータベースの名前を指定します。コマンド実行後、パスワードの入力を求められるので、rootユーザーのパスワードを入力してください。
-
MySQLのCASEステートメントで列データを活用する方法をわかりやすく解説
MySQLのCASEステートメント内で列データを使用する方法 MySQLのCASEステートメントは、SELECT句の中で条件分岐を行い、集計処理に活用できる非常に便利な機能です。ここでは、実際のテーブルデータを使いながら、CASEステートメント内で列(カラム)データをどのように利用できるのかを解説します。 サンプルデータ:Studentsテーブル まず、以下のような「Students」テーブルのデータを例として考えてみましょう。 mysql> Select * from Students; +----+-----------+-----------+----------+-------
-
MySQLのCASEステートメントがNULLを返すのはどのような条件の場合か?
MySQLのCASEステートメントは、指定した比較や条件がすべて偽(false)だった場合、ELSE句の後に記述された結果を返します。しかし、もしELSE句が存在しない場合はどうなるのでしょうか?その場合、CASEステートメントはNULLを返します。これは初心者が見落としがちな重要な仕様です。集計クエリなどで意図しないNULLが表示される原因になることもあるため、動作を正しく理解しておきましょう。以下に具体的な例で示します。例1:ELSE句がない場合の基本動作mysql> Select CASE 100 -> WHEN 150 THEN It is matched
-
MySQL TRUNCATE()関数で第2引数に負の値を指定すると出力はどう変わるのか?
TRUNCATE()関数の第2引数に負の値を指定した場合の動作MySQLのTRUNCATE()関数では、第2引数に負の値を指定すると、小数点より前(整数部分)の桁が四捨五入されることなくそのまま切り捨てられます。削除される桁数は、第2引数に指定した負の値の絶対値によって決まります。以下の例では、第2引数の負の値の大きさに応じて、TRUNCATE()関数の出力がどのように変化するかを順に確認していきます。第2引数に-1を指定した場合mysql> Select TRUNCATE(1789.456,-1);+-----------------------+| TRUNCATE(1789.456
-
MySQLで数値を累乗する方法:POWER()関数とPOW()関数の使い方
MySQLでは、POWER()関数を使用することで、ある数値を別の数値でべき乗(累乗)した結果を求めることができます。また、POW()関数はPOWER()関数のシノニム(同義語)であり、どちらを使っても同じ結果が得られます。これらの関数では、第1引数が底(基数)として機能し、第2引数が指数として機能します。構文POWER(M, N)各引数の意味は以下の通りです。M: べき乗の底となる数値です。N: べき乗の指数となる数値です。使用例例えば、「2の3乗」を計算したい場合は、次のようにクエリを実行します。POWER()とPOW()のどちらでも同じ結果「8」が返されることが確認できます。mysql&
-
MySQLのPOWER()関数を列のデータ値に対して使う方法を解説
MySQLのPOWER()関数は、通常は特定の数値同士のべき乗計算に使われますが、テーブルの列(カラム)のデータ値に対しても利用できます。その場合、第1引数(底)には列名を指定し、第2引数(指数)には任意の数値を指定します。こうすることで、該当するすべての行の値について、一括でべき乗計算を実行できるのです。サンプルテーブル「Employee」ここでは、以下のようなレコードを持つテーブル「Employee」を例に説明します。mysql> Select * from Employee; +----+--------+--------+ | ID | Name | Salary | +--
-
MySQLの関数はどのように組み合わせる?ネスト(入れ子)の基本と具体例
MySQLにおける関数の組み合わせとはMySQLでは、ある関数の引数として別の関数を渡すことで、複数の関数を組み合わせて使用することができます。この書き方は「関数のネスト(入れ子)」とも呼ばれ、文字列操作や日付計算など、さまざまな場面で活用できるテクニックです。ここでは、代表的な例として UPPER() 関数と LOWER() 関数を CONCAT() 関数と組み合わせたケースを見てみましょう。UPPER() と CONCAT() を組み合わせた例mysql> Select UPPER(CONCAT(www.,tutorialspoint,.com))As Tutorials; +---
-
MySQLでBOOLEANデータ型がなくてもTRUEとFALSEの値を表示する方法
ご存知の通り、MySQLには専用のBOOLEANデータ型が用意されていません。しかし、TRUE(または true)、FALSE(または false)というキーワードを使用することで、MySQLのステートメント内でブール値を簡単に入力・表示することができます。使用例mysql> Select TRUE,FALSE; +------+-------+ | TRUE | FALSE | +------+-------+ | 1 | 0 | +------+-------+ 1 row in set (0.00 sec) mysql> Select true,false;