SQLの実行 PDOオブジェクト、PDO Statementオブジェクト

PDOオブジェクト データベースに接続するためのオブジェクトであり、query関数を使うことでクエリを実行し、PDO Statementオブジェクトを取得できる。 プレースホルダーを使用したクエリを実行するには、PDOオブジェクトを使用してPDOStatementオブジェクトを取得し、その後、それを使用してクエリを実行する。 以下例 PDO Statementオブジェクト PHPからSQLを実行す…Continue reading SQLの実行 PDOオブジェクト、PDO Statementオブジェクト

SQL nullと文字列の比較

nullとの比較 SQLであるカラムと文字列を比較したとき、そのカラムがNullだと条件に当てはまらなくなる。 以上のような場合、CLMがNullだと当てはまらないのは当然だが、 以下はどうだろう? ‘a’ という文字列以外のなので、CLMがNullの行も取得できそうな気がする。 しかし、取得できない。 CLMがNullの場合、比較されないので、行は取得できない。 ISNU…Continue reading SQL nullと文字列の比較

SQLserverとMySQLの主なクエリの違い

使ってみて気づいた違いを書いていきます。 随時追加予定。 ISNULL -> COALESCE NULLのときの値置換 WITH (NOLOCK) 使えない のようなSQLを実行しないといけない。 VARCHARではなくCHARで指定 文字列を固定長でキャスト GETDATE()ではなくNOW() ほかにCURRENT_TIMESTAMP()がある。ほぼ同じ。 テーブル作成時、サーバー接続時…Continue reading SQLserverとMySQLの主なクエリの違い

SQL serverからMySQLへデータ移行(スクリプト化して移行が簡単)クエリでCSVインポート

MySQL WorkbenchやSQL Server Integration Servicesを使わずに、 スクリプトで移行する方法を試す。 データベースのスクリプト化 SQLserverにて、移行したいデータベースを右クリック「タスク」→「スクリプトの生成」→「次へ」→ データベース全体か特定のデータベースを選択 →テーブルを選択したら「次へ」→ 詳細設定の部分で、「スクリプトを作成するデータの…Continue reading SQL serverからMySQLへデータ移行(スクリプト化して移行が簡単)クエリでCSVインポート

WHERE句内でCASE文を使うとき、THENには比較演算子は使えない (SQL Server)

タイトルの通り。 SQL Serverでは、WHERE句内でCASE文を使用する際に、THEN句内で比較演算子を直接使用することはできません。比較演算子を使用するためには、CASE文の結果を一時的な列に格納し、その列をWHERE句で使用する必要があります。 ChatGPT SQLのWHERE句内で条件分岐したいときがある。 通常下のように のような感じ書くことが多いだろう。 しかし、 GENDER…Continue reading WHERE句内でCASE文を使うとき、THENには比較演算子は使えない (SQL Server)

SQL Server サブクエリを使ったInsert

カラムの数は合わせる必要がある。 テーブル作成時にInsert 番号を順番に振ってアップデート すでにあるテーブルのデータのとあるカラムに上から順番に番号を振りたいとき まず順番に番号を振ったテーブルを作る このとき、アップデートしたいテーブルの何か一意のデータが必要。 方法はいろいろあるが、numberカラムにidentityをつける。 テーブルを右クリック、IDENTITY設定を「はい」にする…Continue reading SQL Server サブクエリを使ったInsert

SQLでの日付比較での注意点 うまく条件分岐できない、データが取れない

カラムの型を確認する SQLで日付比較をするときカラムがDate型でも、’2023/01/01’ というような文字列で渡していないだろうか? となるようなSQLだとうまく条件に当てはまらない日付がでることもある。 ほとんどのDBでは、カラムに対して、値が自動的に型変換される。 この場合、渡した’2023/01/01’が日付型に変換されるだろう。 0が…Continue reading SQLでの日付比較での注意点 うまく条件分岐できない、データが取れない

SQL Server 異なるサーバー間 (違うDB)でテーブルをコピーしたいとき 簡単な方法

別のデータベースのテーブルからデータをコピー (テーブル構造はコピーできない) 異なるサーバー、もしくは違うDBからいくつかのテーブル内のデータをコピーしたい場合。 自分の開発用と、共有の開発サーバーがあったとする。 共有サーバーから、更新されたテーブルを取得したいとき、 一番簡単な方法は、ウィザードを使う方法である。 データのインポート、エクスポートウィザードを使う この方法はテーブルのカラムに…Continue reading SQL Server 異なるサーバー間 (違うDB)でテーブルをコピーしたいとき 簡単な方法