MySQL

 Computer >> コンピューター >  >> プログラミング >> MySQL
  1. 【MySQL】「ñ」を検索する際に「n」を含むレコードを除外する方法

    MySQLで「ñ」と「n」を区別して検索する方法 MySQLで「ñ(エニェ)」を検索したとき、デフォルトの照合順序では「n」を含むレコードまで一緒にヒットしてしまうことがあります。これは、多くの照合順序がアクセント記号の違いを無視するためです。「ñ」だけを正確に検索し、「n」のみを含むレコードを除外したい場合は、COLLATE句でutf8_spanish_ciを指定します。 基本構文 select *from yourTableName where yourColumnName LIKE %ñ% COLLATE utf8_spanish_ci; サンプルテーブルの作成 まず、動作確認用のテーブ

  2. MySQLでAUTO_INCREMENTの設定を忘れたときは?後からALTER TABLEで追加する方法

    結論:後からでもAUTO_INCREMENTは設定可能です テーブル作成時にAUTO_INCREMENT(自動採番)の設定を忘れてしまっても心配いりません。ALTER TABLE文を使用すれば、あとからいつでもカラムへAUTO_INCREMENTを追加できます。 本記事では、実際のサンプルコードを使いながら、設定を忘れたテーブルへ後からAUTO_INCREMENTを追加する手順を段階的に解説します。 手順1:AUTO_INCREMENTなしでテーブルを作成する まず、AUTO_INCREMENTを設定せずにテーブルを作成します。ここでは、学生IDと学生名を持つシンプルなテーブルを例にします。

  3. MySQL WorkbenchでDECLARE構文エラーが発生する原因と解決方法

    DECLARE構文はBEGINとENDの間に記述する必要があるMySQLで変数を宣言するDECLARE構文は、必ずBEGINとENDの間に記述しなければなりません。ストアドプロシージャの外でDECLAREを使用すると、構文エラーが発生します。基本的な構文は以下の通りです。BEGINDECLARE 変数名1 データ型;DECLARE 変数名2 データ型;...ENDDECLARE構文エラーを回避するクエリ例以下は、MySQLでDECLARE構文エラーを回避するためのストアドプロシージャの作成例です。変数を宣言し、値を設定してSELECT文で表示しています。mysql> DELIMITER

  4. MySQLテーブルで日付を参照して一意キー(UNIQUE KEY)を作成する方法

    はじめにMySQLのテーブルにおいて、日付カラムを参照しながら一意キー(UNIQUE KEY)を設定したい場合、複数のカラムを組み合わせた「複合一意キー」を定義することで実現できます。例えば、顧客IDと納期日付の組み合わせが重複しないように制約をかけたいケースなどに有効です。本記事では、日付カラムを含む一意キーの作成方法を、具体的なSQL文とともにわかりやすく解説します。基本構文テーブル作成時に、IDカラムと日付カラムを組み合わせて一意キーを定義するには、以下のような構文を使用します。CREATE TABLE yourTableName(    your

  5. MySQLの「SET + 0」とは?SET型の値を整数(ビット値)に変換する方法を解説

    MySQLでは、SET型の値に「+0」を付けると、そのセット値が対応する整数値(ビットマスク値)に変換されます。SET型は内部的に各要素を2のべき乗のビットとして管理しており、「+0」を使うことで文字列ではなく数値として取得できるのです。ここでは、実際にテーブルを作成して動作を確認してみましょう。サンプルテーブルの作成まず、SET型のカラムを持つテーブルを作成します。mysql> create table SetZeroDemo-> (-> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,-> TechnicalSkills set

  6. MySQLで自動インクリメントIDを予約する方法

    ```html MySQLでは、トランザクションを活用することで、自動インクリメント(AUTO_INCREMENT)のID値を事前に予約できます。INSERTを実行した後にROLLBACKでロールバックしても、AUTO_INCREMENTカウンターは巻き戻らないという仕組みを利用するテクニックです。基本構文自動インクリメントIDを予約するための基本的な構文は以下のとおりです。START TRANSACTION; insert into yourTableName values(),(),(),(); ROLLBACK; SELECT LAST_INSERT_ID() INTO @anyVari

  7. MySQLで現在の日付と日付フィールドの間の日数を取得する方法

    MySQLでは、DATEDIFF()関数とSTR_TO_DATE()関数を組み合わせることで、現在の日付とテーブル内の日付フィールドとの間の日数を簡単に計算できます。ここでは、具体的なサンプルを使ってその手順を詳しく解説します。基本構文現在の日付と日付フィールドの間の日数を取得するには、以下の構文を使用します。SELECT DATEDIFF(CURDATE(),STR_TO_DATE(yourColumnName, %d-%m-%Y)) AS anyAliasName FROM yourTableName;この構文では、CURDATE()が現在の日付を返し、STR_TO_DATE()が文字列と

  8. MySQLクエリで日付範囲検索時に年を無視する方法

    MySQLクエリで日付範囲検索時に年を無視する方法MySQLで日付の範囲検索を行う際に「年」を無視したい場合は、DATE_FORMAT()関数とBETWEEN句を組み合わせるのが効果的です。日付を「月-日」の形式に変換して比較することで、年に関係なく特定の期間に該当するレコードを抽出できます。ここでは、実際にデモテーブルを作成して動作を確認していきましょう。1. サンプルテーブルを作成するまずは出荷日(ShippingDate)を格納するテーブルを作成します。以下がテーブル作成のクエリです。mysql> create table igonreYearDemo -> (

  9. MySQLでINFORMATION_SCHEMA.key_column_usageのパフォーマンス低下を解決する方法

    INFORMATION_SCHEMA.key_column_usageが遅くなる原因MySQLでINFORMATION_SCHEMA.key_column_usageを参照するクエリを実行した際、処理に長い時間がかかってしまうことがあります。このパフォーマンス低下の主な原因は、システム変数innodb_stats_on_metadataがデフォルトで有効(ON)になっていることです。この設定が有効な場合、INFORMATION_SCHEMAのメタデータテーブルにアクセスするたびにInnoDBが統計情報を更新するため、大量のディスクI/Oが発生し、クエリが遅くなります。解決方法:GLOBAL変数

  10. MySQLでAUTO_INCREMENT列が1つだけのテーブルに行を挿入する方法

    自動インクリメント(AUTO_INCREMENT)列が1つだけ設定されたテーブルには、実はとてもシンプルな方法で行を挿入できます。通常、値を指定して挿入する必要がありますが、AUTO_INCREMENT列に対してはNULLを渡すだけで、自動的に連番が採番されます。基本の構文SET句を使った書き方は以下のとおりです。insert into テーブル名 set カラム名 = NULL;また、VALUES句を使った次の書き方でも同様に挿入できます。insert into テーブル名 values(NULL);動作確認用のテーブルを作成するそれでは、実際に動きを確認してみましょう。まずはAUTO_IN

  11. MySQLでAND条件を正しく使う方法を実例付きで解説

    MySQLにおけるAND条件の基本構文MySQLで複数の条件をすべて満たすレコードを抽出したい場合は、WHERE句と組み合わせてAND演算子を使用します。AND条件の基本的な構文は以下の通りです。select *from yourTableName where yourColumnName1 = yourValue1 AND yourColumnName2 = yourValue2;この構文では、指定した両方の条件に一致するレコードのみが取得されます。それでは、実際にテーブルを作成しながらAND条件の使い方を見ていきましょう。サンプルテーブルの作成まず、以下のクエリでテーブルを作成します。my

  12. MySQLでタイムスタンプ(UNIX時間)を日付文字列として取得する方法

    MySQLでタイムスタンプを日付文字列に変換するにはMySQLでは、FROM_UNIXTIME() 関数を使うことで、UNIXタイムスタンプ(整数値)を読みやすい日付・時刻の文字列として取得できます。基本構文SELECT FROM_UNIXTIME(カラム名, %Y-%m-%d %H:%i:%s) FROM テーブル名;第2引数の日付フォーマット指定子は省略可能です。省略した場合は、セッションの日時形式で自動的に整形されます。主な書式指定子は以下の通りです。%Y:4桁の年(例:2019)%m:2桁の月(01〜12)%d:2桁の日(01〜31)%H:24時間制の時(00〜23)%i:分(00〜5

  13. アンパサンド(&)付きの値を使ったクエリがOracleでは動作し、MySQLでは動作しない理由と対処法

    Oracleの「&」変数とMySQLの違い Oracleでは、&変数名のようにアンパサンド(&)を付けた置換変数をSQL内で利用できます。しかし、同じ構文をMySQLで実行してもエラーになってしまいます。これは、MySQLにはOracleのような置換変数の仕組みがなく、代わりにユーザー定義変数として「@(アットマーク)」を先頭に付けた変数を使用するためです。 MySQLで変数を使う方法:@変数の基本構文 MySQLで変数に値を設定してINSERT文に使うには、以下の構文に従います。 SET @yourVariableName1 = yourValue, @yourVariableNa

  14. MySQLでFOREIGN_KEY_CHECKSが1に設定されているか確認する方法

    MySQLでは、外部キー制約(FOREIGN KEY)のチェック機能が有効になっているかどうかを、システム変数 @@foreign_key_checks を使って簡単に確認できます。この値が「1」(ON)の場合は外部キーチェックが有効、「0」(OFF)の場合は無効です。ここでは、foreign_key_checks が1に設定されているかを確認する2つの方法を紹介します。 方法1:SELECT文で変数の値を確認する @@foreign_key_checks 変数の値を直接SELECT文で参照する方法です。構文は以下のとおりです。 select @@foreign_key_checks; 実際に

  15. MySQLで文字列の末尾2文字を基準に並べ替える方法

    MySQLでは、ORDER BY句とRIGHT()関数を組み合わせることで、文字列カラムの末尾2文字を基準にレコードを並べ替えることができます。IDの末尾にある番号順にソートしたい場合などに非常に便利なテクニックです。基本構文RIGHT(カラム名, 2)は、指定したカラムの値の右端から2文字を取り出す関数です。これをORDER BYに渡すことで、末尾2文字を基準としたソートが実現できます。select yourColumnName from yourTableName ORDER BY RIGHT(yourColumnName, 2);サンプルテーブルの作成それでは、実際に動きを確認してみまし

  16. MySQLで特定のカラム(フィールド)の全エントリを一括変更する方法

    MySQLでは、UPDATE文を使うことで、特定のカラム(フィールド)に含まれるすべてのエントリを一括して変更できます。この記事では、デモ用テーブルを作成し、実際に一括更新を行う手順を順番に解説します。 1. デモ用テーブルの作成 まず、動作確認のためのサンプルテーブルを作成しましょう。 mysql> create table BulkChangeDemo -> ( -> CustomerId int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> CustomerName varchar(20), -&g

  17. MySQLテーブルから一意制約(UNIQUE制約)を削除する方法

    一意制約を削除する基本構文MySQLでテーブルに設定された一意制約(UNIQUE制約)を削除したい場合は、ALTER TABLE文とDROP INDEXを組み合わせて使用します。基本的な構文は以下の通りです。ALTER TABLE テーブル名 DROP INDEX 一意制約名;ここでのポイントは、一意制約を作成した際に自動的に付与されるインデックス名を指定するという点です。実際の流れを理解するために、サンプルテーブルを使って順番に確認していきましょう。サンプルテーブルの作成まず、一意制約を持つテーブルを作成します。IdカラムとisGreaterThan18カラムに対して複合一意制約(UNIQU

  18. int型カラムへのMySQLインデックス:作成方法と検索速度への効果

    テーブルに大量のレコードが格納されている場合、int型のカラムにインデックスを追加することは、クエリを高速化するための有効な手段です。一方で、レコード数が少ないテーブルに対してインデックスを作成しても、大きな効果は期待できません。むしろ、インデックスの管理コストだけがかかる可能性があります。 この記事では、実際にテーブルを作成しながら、int型カラムへのインデックスの付け方と、その検索性能への影響を解説します。 1. インデックス付きテーブルの作成 まずは、UserId カラムにインデックスを設定したテーブルを作成します。CREATE TABLE 文の中で INDEX(UserId) を指定

  19. MySQLでフィールド内の文字列を検索・置換する方法を徹底解説

    MySQLで文字列を検索・置換する基本構文MySQLでテーブルのフィールド(カラム)内に含まれる文字列を検索して別の文字列に置き換えたい場合は、REPLACE()関数とUPDATE文を組み合わせて使用します。基本的な構文は以下の通りです。update yourTableName set yourColumnName = REPLACE(yourColumnName, yourOldValue, yourNewValue);この構文では、指定したカラムの中から「yourOldValue」に一致する部分をすべて探し出し、「yourNewValue」へ一括で置換します。WHERE句を付けなければ、テ

  20. MySQLでSELECT INTOの代替となる方法とは?CREATE TABLE AS SELECT文の使い方を徹底解説

    SQL Serverなどではテーブル間でデータをコピーする際にSELECT INTO文が使われますが、MySQLにはこの構文が存在しません。その代わりとなるのがCREATE TABLE AS SELECT(CTAS)文です。この記事では、基本的な構文から実際の動作例まで、わかりやすく解説します。CREATE TABLE AS SELECT文の基本構文既存のテーブルから新しいテーブルを作成し、データを同時にコピーするには、以下の構文を使用します。CREATE TABLE 新しいテーブル名 AS SELECT * FROM 元のテーブル名;この一文だけで、「テーブルの新規作成」と「データの挿入」を

Total 4564 -コンピューター  FirstPage PreviousPage NextPage LastPage CurrentPage:122/229  20-コンピューター/Page Goto:1 116 117 118 119 120 121 122 123 124 125 126 127 128