-
MySQLでGROUP BYの結果を行数(出現回数)ごとにグループ化する方法
MySQLでGROUP BYの結果を行数(出現回数)ごとにグループ化したい場合は、GROUP_CONCAT()関数を活用すると便利です。この記事では、実際にテーブルを作成しながら、その具体的な手順をサンプルコードとともにわかりやすく解説します。 1. サンプルテーブルを作成する まず、動作確認用のテーブル「groupByDemo」を作成します。以下のCREATE TABLE文を実行してください。 mysql> create table groupByDemo-> (-> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,-> Nam
-
MySQLで現在の区切り文字(デリミタ)を確認・変更する方法
MySQLでは、\s(status)コマンドを使うことで、現在設定されている区切り文字(デリミタ)をはじめ、接続に関するさまざまなステータス情報を簡単に確認できます。\s コマンドで現在の区切り文字を確認する現在の区切り文字を確認するには、MySQLクライアントで以下のコマンドを実行します。mysql> \s実行すると、次のようなステータス情報が出力されます。-------------- C:\Program Files\MySQL\MySQL Server 8.0\bin\mysql.exe Ver 8.0.12 for Win64 on x86_64 (MySQL Community
-
JDBCのBLOBデータ型とは?データベースへの保存と読み取り方法を徹底解説
BLOB(バイナリラージオブジェクト)とはBLOB(Binary Large Object)は、最大65535バイトの可変長データを格納できるバイナリ大規模オブジェクトです。BLOBは、画像やその他の種類のファイルなど、大量のバイナリデータを保存するために使用されます。TEXT型として定義されたフィールドも同様に大量のデータを保持できますが、両者の違いは、保存されたデータに対するソートや比較の際に、BLOBでは大文字と小文字が区別されるのに対し、TEXTフィールドでは区別されないという点です。なお、BLOBおよびTEXT型では長さを指定する必要はありません。BLOBをデータベースに保存する手順
-
JDBCのClobデータ型とは?データベースへの保存と読み取り方法を解説
CLOBは「Character Large Object(キャラクタ・ラージ・オブジェクト)」の略称で、SQLにおけるClobは組み込みデータ型の一つです。大量のテキストデータを格納するために使用され、このデータ型を使えば最大2,147,483,647文字までのデータを保存できます。 JDBC APIのjava.sql.Clobインターフェースが、このCLOBデータ型を表現します。JDBCにおけるClobオブジェクトはSQLロケーター(locator)を用いて実装されているため、実際にはCLOBのデータ本体ではなく、SQL CLOBを指す論理ポインターを保持している点に注意してください。 M
-
JDBCでCLOBデータ型の値をテーブルに挿入する方法【サンプルコード解説】
この記事では、JDBCプログラムを使用してCLOBデータ型の値をデータベースのテーブルに挿入する方法を、具体的なサンプルコードとともに解説します。前提条件:サンプル用テーブルの準備まず、データベースに以下の構造を持つ「MyData」というテーブルが既に存在しているものと仮定します。+---------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +---------+--------------+------+-----+----
-
JDBCのgetCharacterStream()メソッドでテーブルからClob値を取得する方法【サンプルコード解説】
JDBCのResultSetインターフェースには、データベースのテーブルからCLOB型(長文テキスト)のデータを取得するためのメソッドとして、getClob()とgetCharacterStream()の2つが用意されています。 どちらのメソッドも、引数に列のインデックスを表す整数(または列名を表す文字列)を指定でき、該当する列の値を取得します。両者の違いは戻り値の型です。getClob()メソッドがjava.sql.Clobオブジェクトを返すのに対し、getCharacterStream()メソッドは文字ストリームを扱うjava.io.Readerクラスのオブジェクトを直接返します。そのため
-
JDBCを使ってMySQLデータベースにファイルを保存・挿入する方法
一般的に、ファイルの内容はMySQLデータベースでは Clob 型(TINYTEXT、TEXT、MEDIUMTEXT、LONGTEXT)のカラムに保存されます。 JDBCはClob型をサポートしており、これを利用することでファイルの内容をデータベースのテーブルに格納できます。 PreparedStatement インターフェースが提供する setCharacterStream() メソッドは、パラメータのインデックス(位置)を表す整数と、Readerオブジェクトを引数として受け取ります。 このメソッドを使うと、指定したインデックスのプレースホルダ(?)に対して、Readerオブジェクト(ファイ
-
JDBCでデータベースからファイル(CLOB)を取得する方法
JDBCでデータベースからファイルを取得するには?データベースには、ファイルの内容をCLOB型として格納することが一般的です。ResultSetインターフェースには、このCLOB型のデータを取得するためのgetClob()メソッドとgetCharacterStream()メソッドが用意されています。どちらのメソッドも、引数として列のインデックスを表す整数、または列名を表す文字列を受け取り、指定された列の値を取得します。両者の違いは、getClob()メソッドがClobオブジェクトを返すのに対し、getCharacterStream()メソッドはCLOB型の内容を保持するReaderオブジェクト
-
BLOBとCLOBデータ型の違いとは?特徴と使い分けを徹底解説
BLOBとCLOBは、あわせてLOB(Large Object:ラージオブジェクト型)と呼ばれるデータ型です。どちらも大量のデータをデータベースに格納するために使用されますが、扱うデータの種類が大きく異なります。この記事では、BLOBとCLOBの主な違いを表形式で整理し、それぞれの特徴や実際の使い方についても詳しく解説します。 BLOBとCLOBの主な違い一覧 BLOBCLOB 正式名称は「Binary Large Object(バイナリ・ラージオブジェクト)」。正式名称は「Character Large Object(キャラクタ・ラージオブジェクト)」。 大容量のバイナリデータを格納
-
LOBデータ型とは?BLOBとCLOBの基本とJDBCでの主な制限をわかりやすく解説
LOBデータ型の概要 データベースでは、画像や音声ファイル、長文テキストなど、通常のカラムサイズでは収まらない大容量データを扱うためにLOB(Large Object:ラージオブジェクト)という特殊なデータ型が用意されています。LOBは主に以下の2種類に分けられます。 BLOB(Binary Large Object) BLOBは「バイナリ・ラージオブジェクト」の略で、最大65535バイトまでの可変長データを格納できます。 画像や動画、音声ファイルなど、大量のバイナリデータをそのまま保存したい場合に利用されます。 CLOB(Character Large Object) CLOBは「キャラクタ
-
JDBCで日付を扱う方法とは?setDate()メソッドの使い方を実例付きで解説
JDBCで日付を扱う基本SQLではDATE型を使用することで、日付の値をデータベースに挿入できます。Javaではjava.sql.DateクラスがSQLのDATE型にマッピングされており、このクラスを通じて日付データをやり取りします。日付を挿入する際に活躍するのが、PreparedStatementインターフェースが提供するsetDate()メソッドです。このメソッドを使えば、SQLインジェクションを防ぎながら、テーブルに安全に日付値を登録できます。setDate()メソッドの引数setDate()メソッドは、次の2つのパラメータを受け取ります。parameterIndex:日付値を設定する対
-
MySQLのSELECTクエリにおけるAND演算子とOR演算子の優先順位を解説
MySQLのSELECTクエリでは、OR演算子よりもAND演算子の方が高い優先順位を持っています。本記事では、実際のクエリ例を使いながら、MySQLがどのようにAND演算子を優先的に評価するのかを確認していきます。 検証に使用するクエリ まず、次のようなシンプルな論理演算のクエリを実行してみましょう。 mysql> select 0 AND 0 OR 1 as Result; 実行結果は以下の通りです。 +--------+ | Result | +--------+ | 1 | +--------+ 1 row in set (0.00 sec) もしORが優先されていた
-
JDBCのSQLエスケープ構文とは?各キーワードの使い方を徹底解説
エスケープ構文を利用すると、標準のJDBCメソッドやプロパティだけでは実現できない、データベース固有の機能を柔軟に活用できます。SQLエスケープ構文の一般的な形式は以下のとおりです。{keyword parameters}JDBCには、目的に応じて複数のエスケープ構文が用意されています。以下、それぞれのキーワードと使い方を詳しく見ていきましょう。d・t・tsキーワード(日付・時刻・タイムスタンプ)d、t、tsキーワードは、日付(date)、時刻(time)、タイムスタンプ(timestamp)のリテラルを識別するために使用します。ご存知のとおり、日付や時刻の表現方法はDBMSごとに異なります。
-
JDBCのResultSetが提供するカーソル移動(ナビゲーション)メソッドの一覧
JDBC ResultSetのナビゲーション用メソッドとはJDBCにおけるResultSetオブジェクトには、大きく分けて「順方向専用(forward only)」と「双方向(bi-directional)」の2種類があります。名前が示すとおり、順方向専用のResultSetではポインタを前方にしか移動できませんが、双方向のResultSetではポインタを前後どちらの方向にも自由に移動できます。ResultSetインターフェースは、これら両方のタイプのResultSetオブジェクト内を移動するための複数のメソッドを提供しています。以下の表に、主なナビゲーション用メソッドとその説明をまとめました
-
JDBCのセーブポイント(Savepoint)とは?トランザクション制御の基本と使い方を解説
JDBCのセーブポイント(Savepoint)とは セーブポイント(Savepoint)は、トランザクションに対してよりきめ細かい制御を可能にする機能です。OracleのPL/SQLをはじめ、多くの最新のDBMSが、それぞれの環境でセーブポイントをサポートしています。 セーブポイントを設定すると、トランザクションの中に論理的なロールバック地点を定義できます。セーブポイントより後の処理でエラーが発生した場合でも、rollbackメソッドを使えば「トランザクション全体の変更」を取り消すことも、「セーブポイント以降の変更だけ」を取り消すことも可能です。これにより、正常に完了した前半の処理を保ちながら
-
JDBCを使ってデータベースに画像を挿入・保存する方法を徹底解説
setBinaryStream()メソッドとは PreparedStatementインターフェースが提供するsetBinaryStream()メソッドは、第1引数にパラメータのインデックス(位置)、第2引数にInputStreamオブジェクトを受け取り、指定したプレースホルダに入力ストリームの内容を設定します。画像やファイルなど、サイズの大きなバイナリデータをデータベースへ送信したい場合に、このメソッドが活躍します。 一方、SQLデータベース側にはBLOB(Binary Large Object:バイナリラージオブジェクト)というデータ型が用意されています。この型を使えば、画像のような大きなバ
-
JDBCでBLOBデータ型の値をテーブルに挿入する方法|サンプルコード付き
BLOBデータ型とはBLOB(Binary Large Object)は、画像・音声・動画などのバイナリデータをデータベースに格納するためのデータ型です。MySQLでは、BLOB型のカラムに画像ファイルなどを直接保存することができます。本記事では、JDBCを使ってBLOB型カラムに画像データを挿入する具体的な手順を解説します。前提条件:テーブル構造データベースには、以下のような構造を持つ「MyTable」というテーブルがすでに存在しているものとします。+-------+--------------+------+-----+---------+-------+ | Field | Type
-
JavaでOracleデータベースに画像を挿入する方法|BLOB型を使った手順を解説
Oracleデータベースに画像などのバイナリデータを保存する場合、一般的にBLOB(Binary Large Object)型が使用されます。そのため、あらかじめBLOB型のカラムを持つテーブルを作成しておく必要があります。Name Null? Type ----------------------------------------- -------- ---------------------------- NAME VARCHAR2(255) IMAGE BLOBJavaプログラムからOracleデータベースへ画像を挿入するには、以下の手順に従います。ステップ1:データベースへの接続デー
-
JavaでMySQLデータベースに画像を挿入する方法を徹底解説【BLOB型の基本と手順】
MySQLで画像を保存するにはBLOB型を使うMySQLデータベースに画像を保存する場合、一般的にはBLOB型が使用されます。そのため、あらかじめBLOB型のカラムを含むテーブルを作成しておく必要があります。以下は、画像挿入用テーブルの構造例です。+-------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+--------------+------+-----+---------+-------+ | Name
-
JDBCのsetBlob()とsetBinaryStream()の違いとは?使い分けのポイントを解説
setBlob()メソッドとはsetBlob()メソッドは、データベースのBLOB型カラムに値を設定するために使用されるメソッドです。このメソッドには、以下の3つのバリアント(オーバーロード)が用意されています。void setBlob(int parameterIndex, Blob x):指定したインデックスのパラメータに、指定されたBlobオブジェクトの値を設定します。void setBlob(int parameterIndex, InputStream inputStream):指定したインデックスのパラメータに、入力ストリーム(InputStream)の内容を値として設定します。v