MySQL

 Computer >> コンピューター >  >> プログラミング >> MySQL
  1. MySQLで年のみの値を持つ日付(月と日はゼロ)を保存する方法

    MySQLでは、月と日の部分がゼロ(00)となっている、年のみの値を持つ日付(例:2017-00-00)をテーブルに保存できます。ただしこれを実現するには、SQLモードのNO_ZERO_IN_DATEを無効にしておく必要があります。このモードが有効な場合、MySQLは月または日にゼロを含む日付を無効な日付とみなし、代わりにすべてがゼロの値(0000-00-00)を格納します。mysql> Insert into year_testing (OrderDate) values(2017:00:00); Query OK, 1 row affected (0.09 sec) mysql&g

  2. MySQLでテーブルの列に現在の日付を自動挿入する方法(CURDATE・NOW関数の使い方)

    MySQLでは、CURDATE() 関数や NOW() 関数を使うことで、テーブルの列に現在の日付を自動的に挿入できます。INSERT文の中でこれらの関数を呼び出すだけで、実行時点の日付がレコードに記録されるため、日付を手入力する必要がありません。CURDATE() と NOW() の違いCURDATE():現在の日付のみを「YYYY-MM-DD」形式で返します。DATE型の列に最適です。NOW():現在の日付と時刻を「YYYY-MM-DD HH:MM:SS」形式で返します。DATETIME型やTIMESTAMP型の列向けの関数ですが、DATE型の列に挿入した場合は日付部分だけが格納されます(

  3. MySQLで使われるSQLコマンドの種類とは?DML・DDL・DCL・TCLをわかりやすく解説

    SQL言語は、その役割によって「DML」「DDL」「DCL」「TCL」という4種類のステートメントに分類されます。これらのコマンドを使い分けることで、データベースやテーブルの構造を定義・変更したり、テーブル内のデータを挿入・更新・削除したり、ユーザーのアクセス権限を制御したり、トランザクションを管理してデータの一貫性を保ったりすることができます。本記事では、MySQLでよく使用される4つの主要カテゴリのSQLコマンドについて、それぞれの役割と代表的なステートメントを詳しく解説します。DML(Data Manipulation Language/データ操作言語)DMLは、テーブル内のレコード(行

  4. MySQLのtestデータベースを使うことの欠点とは?権限取得の方法も解説

    testデータベースの主な欠点 SHOW DATABASES; ステートメントで表示されるデータベースの一覧の中には、test という名前のデータベースが含まれています。この test データベースは誰でも利用できますが、最大の欠点は、その中に作成したテーブルやオブジェクトが、アクセス権を持つ他のユーザーによって自由に変更・削除されてしまう可能性があるという点です。 つまり、せっかく作成したデータや構造が、意図せず他人に上書きされたり消去されたりするリスクが常に伴うため、本番環境や学習用途であっても重要な作業を行う場所としては適していません。 自分専用のデータベースを使うための権限取得方法 こ

  5. 比較演算子はMySQLの日付値とどのように連携しますか?

    MySQLにおける日付値の比較演算の仕組みMySQLでは、日付同士を比較する際、比較演算子は論理的な方法で機能します。内部的には、MySQLは日付値を単純に数値または文字列として扱い、その大小関係を評価しています。例えば「YYYYMMDD」形式の日付は、そのまま整数として比較されるため、直感的に理解しやすい結果が得られます。比較結果がFALSEになる例次の例では、2つの日付を「<」(小なり)演算子で比較しています。このとき、MySQLは両者を数値として単純に比較します。mysql> select 20171027 < 20150825; +------------------

  6. 文字列として表された日付に対し、MySQLの加算・減算・乗算・除算演算子はどう動作するのか?

    MySQLでは、日付が文字列として表されている場合に、加算(+)、減算(-)、乗算(*)、除算(/)といった算術演算子を適用すると、予測できない結果になることがあります。その理由は、MySQLが文字列に対して数値演算を実行しようとする際、文字列の先頭から読み取れる数値部分だけを取り出して計算に使用するためです。つまり、日付「2017-10-17」は「2017」という数値として解釈され、月や日の部分は一切考慮されません。具体例以下の実行例を見ると、この挙動がよく分かります。mysql> select 2017-10-17 + 20; +-------------------+ | 2017

  7. MySQLでデフォルトデータベースを別のデータベースに切り替える方法(USEステートメントの使い方)

    MySQLでは、複数のデータベースの中から「どのデータベースに対して操作を行うか」を指定する必要があります。現在作業対象となっているデータベースはデフォルト(カレント)データベースと呼ばれ、以降のクエリはすべてこのデータベースに対して実行されます。USEステートメントでデフォルトデータベースを変更するたとえば、現在使用しているのが tutorial データベースであるとします。ここから別のデータベースに切り替えたい場合は、USE db_name ステートメントを使用します。db_name の部分に、切り替え先のデータベース名を指定してください。mysql> USE SampleDatab

  8. MySQLで現在使用中のデータベース名を確認する方法

    SELECT DATABASE()コマンドで使用中のデータベースを確認するMySQLでは、SELECT DATABASE() コマンドを実行することで、現在接続しているセッションで使用中のデータベース名を簡単に確認できます。mysql> select database(); +------------+ | database() | +------------+ | tutorial | +------------+ 1 row in set (0.00 sec)上記の実行例では、現在 tutorial というデータベースが選択されていることがわかります。補足ポイントなお、どのデータ

  9. 特定のMySQLデータベースを作成するステートメントを確認する方法

    SHOW CREATE DATABASEステートメントとはMySQLでは、SHOW CREATE DATABASEコマンドを使用することで、既存のデータベースがどのようなCREATE DATABASEステートメントで作成されたのかを簡単に確認できます。この機能は、データベースの構成情報(文字セットや照合順序など)を把握したい場合や、同じ設定で別の環境にデータベースを再作成したい場合に非常に便利です。実行例以下は、Sampleというデータベースの作成ステートメントを確認する例です。mysql> SHOW CREATE DATABASE Sample; +----------+-------

  10. MySQLテーブルに格納された日付値に対する四則演算(+、-、×、÷)はどのように処理されるのか?

    MySQLにおける日付値と算術演算子の関係MySQLでは、テーブルに格納されている日付値に対して加算(+)、減算(-)、乗算(*)、除算(/)といった算術演算子を適用すると、その日付値は数値として解釈され、単純な数値計算が実行されます。例えば「2017-05-25」という日付は「20170525」という数値に変換されてから計算されるため、演算結果は必ずしも有効な日付にはなりません。具体例による確認以下の例では、orderdateカラムに日付値「2017-05-25」が格納されたテーブル「example」を使用して、各演算子の実際の挙動を確認していきます。mysql> select * f

  11. MySQLで加算・減算演算子とINTERVALキーワードを使って日付演算を行う方法

    MySQLでは、加算(+)および減算(-)の演算子に「INTERVAL」キーワードを組み合わせることで、日付(DATE)や日時(DATETIME)に対する簡単な演算を実行できます。INTERVALの後ろには、日数・時間・月数などの時刻単位を指定します。例1:特定の日付に2日を加算するmysql> Select '2017-05-20' + INTERVAL 2 day; +-------------------------------+ | '2017-05-20' + INTERVAL 2 day | +-------------------------

  12. MySQLのデフォルトデータベースにあるテーブル一覧を取得する方法

    MySQLのデフォルトデータベースにあるテーブル一覧を取得する方法 MySQLにおける「デフォルトのデータベース」とは、その後のクエリで現在使用中となっているデータベースのことです。このデータベースに含まれるテーブルの一覧は、SHOW TABLESステートメントを使うことで簡単に取得できます。 mysql> SHOW TABLES; +------------------+ | Tables_in_sample | +------------------+ | employee | | new_student | | student | +

  13. 【MySQL】特定のカラム名を持つテーブルをデータベースから検索・確認する方法

    特定のカラム名を持つテーブルを検索するには?MySQLでは、INFORMATION_SCHEMA.COLUMNS テーブルを参照することで、「email」のような特定のカラム名を持つテーブルを簡単に特定できます。INFORMATION_SCHEMA は、データベース内のテーブルやカラムといったメタデータ(データディクショナリ)情報を格納している仮想データベースです。次のステートメントは、Sampleデータベース内で「email」というカラムを持つ2つのテーブルの一覧を表示します。mysql> SELECT DISTINCT TABLE_NAME -> FROM INFORMA

  14. MySQLで「0000-00-00」を日付として保存する方法

    MySQLのテーブルにあるDATE型カラムに「0000-00-00」のような日付を保存したい場合、デフォルト設定のままではエラーが発生します。これは、MySQLが標準で厳格な日付の妥当性チェックを行っているためです。このような無効な日付を保存できるようにするには、SQLモードを「allow_invalid_dates」に設定する必要があります。SQLモードを設定するまず、SET文を使用してSQLモードを変更します。以下のコマンドを実行してください。mysql> SET sql_mode = 'allow_invalid_dates';Query OK, 0 rows af

  15. MySQLで独自のデータベースを作成する方法

    MySQLでは、CREATE DATABASEステートメントを使用することで、任意の名前のデータベースを自由に作成できます。データベースはテーブルやデータを格納するための入れ物となるもので、実際に作業を始める前に必ず作成しておく必要があります。基本構文データベースを作成する際の基本構文は以下のとおりです。CREATE DATABASE データベース名;作成例例えば、「Sample」という名前のデータベースを作成したい場合は、mysqlクライアント上で次のコマンドを実行します。mysql> CREATE DATABASE Sample; Query OK, 1 row affected

  16. MySQLのUNIX_TIMESTAMP()関数はどのような出力を返すのか?

    UNIX_TIMESTAMP()関数とはMySQLのUNIX_TIMESTAMP()関数は、指定された日付または日時の値を「1970年1月1日 00:00:00 UTC(UNIXエポック)」からの経過秒数に変換して返す関数です。つまり、人間が読みやすい日時の表現を、コンピュータ上で扱いやすい整数値のタイムスタンプへと変換します。この関数は、日付の比較や計算、データベースへの保存など、時間を数値として処理したい場面で広く活用されています。実行例:日時から経過秒数への変換例えば、次のように「1970-05-15 05:04:30」という日時を引数として渡すと、UNIXエポックからの経過秒数である「

  17. MySQLサーバー上に現在存在するデータベースの一覧を表示する方法

    MySQLでデータベース一覧を表示するにはMySQLサーバー上に現在存在するデータベースの一覧を確認したい場合は、SHOW DATABASES コマンドを使用します。このコマンドを実行すると、ログインしているユーザーが閲覧できる権限を持つすべてのデータベースが表示されます。基本的な使い方まずmysqlクライアントに接続し、以下のコマンドを実行します。mysql> SHOW DATABASES; +-----------------------------+ | Database | +-----------------------------+ |

  18. MySQLのデータベース名・テーブル名は大文字と小文字を区別するのか?

    MySQLにおけるデータベース名・テーブル名の大文字小文字の扱いMySQLでデータベース名やテーブル名を扱う際、「大文字と小文字は区別されるのか?」という疑問を持つ方は多いでしょう。結論から言うと、その答えは稼働しているオペレーティングシステム(OS)のファイルシステムの挙動に大きく依存します。OSによる違いMySQLでは、データベースやテーブルがディレクトリやファイルとして管理されているため、OS側のファイル名の大文字小文字の扱いがそのまま影響します。Windowsの場合: ファイルシステムが大文字と小文字を区別しないため、データベース名やテーブル名も区別されません。「Users」と「use

  19. MySQLセッションを開始するたびにデータベースを選択する必要がある?指定方法をわかりやすく解説

    なぜセッションごとにデータベースの選択が必要なのかデータベース自体の作成は一度だけ行えばよいものですが、MySQLセッションを開始するたびに、どのデータベースを使用するかを選択する必要があります。これは、MySQLコマンドラインツール上でUSE db_nameステートメントを使うことで簡単に行えます。mysql> USE Query; Database changed「Database changed」と表示されれば、現在「query」データベースを使用している状態になったことを意味します。以降のSQL文はすべて、このデータベースに対して実行されます。Windowsコマンドラインから起動

  20. 【MySQL】「1965-05-15」のような日付をTIMESTAMPに変換すると0(ゼロ)が返される理由とは?

    UNIX_TIMESTAMP関数で古い日付が0になる原因MySQLのUNIX_TIMESTAMP関数を使用すると、指定した日付や日時(DateTime)から、Unixエポックからの経過秒数を取得することができます。しかし、「1965-05-15」のような日付を変換しようとすると、結果は0(ゼロ)となってしまいます。その理由は、TIMESTAMP型の有効範囲が「1970-01-01 00:00:01」から「2038-01-19 08:44:07」までに限定されているためです。この範囲外の日付値は変換することができず、その場合、UNIX_TIMESTAMP関数は常に0を返します。動作確認の例実際の

Total 4564 -コンピューター  FirstPage PreviousPage NextPage LastPage CurrentPage:225/229  20-コンピューター/Page Goto:1 219 220 221 222 223 224 225 226 227 228 229