-
【MySQL】全レコードを一括更新して先頭の文字だけ大文字にし、残りを小文字に変換するクエリ
はじめに MySQLでは、カラム内の文字列の先頭の文字だけを大文字にし、残りの文字をすべて小文字に変換したいケースがあります。本記事では、CONCAT()、UPPER()、LOWER()、LEFT()、SUBSTRING()といった文字列関数を組み合わせたUPDATEクエリを使って、テーブル内のすべてのレコードを一括更新する方法を解説します。 サンプルテーブルの作成 まず、テーブルを作成しましょう。 mysql> create table DemoTable2017 -> ( -> Name text -> ); Query OK, 0 rows
-
MySQLでGROUP BYのように特定の1行だけ更新する方法|ORDER BYとLIMITを活用したUPDATE文の書き方
MySQLでは、UPDATE文の中でGROUP BYを直接使用することができません。しかし、「同じ値を持つ複数のレコードの中から、最初の1行だけを更新したい」というケースは実際の開発でよく発生します。 そんなときに役立つのが、ORDER BYとLIMITを組み合わせたUPDATE文です。この記事では、サンプルテーブルを使いながら、その具体的な手順をわかりやすく解説します。 1. サンプルテーブルを作成する まず、従業員情報を格納するテーブル「DemoTable2018」を作成します。テーブルには、自動採番される主キー「EmployeeId」、従業員名「EmployeeName」、給与「Emp
-
MySQLで列にENUM型を設定する方法
```html MySQLでは、テーブルを作成する際に、あらかじめ決められた文字列のリストから値を選ばせたい列に対してENUM型を設定できます。ENUMは、指定した候補値以外のデータが登録されるのを防ぎたい場合に便利なデータ型です。ここでは、実際にテーブルを作成しながら基本的な使い方を見ていきましょう。ENUM型を含むテーブルを作成するまず、学生の点数と合否ステータスを管理するテーブルを作成します。「StudentStatus」列には「First」「Second」「Fail」の3つの値のみを許可するENUM型を設定しています。mysql> create table DemoTable20
-
MySQLで1つのスキーマから別のスキーマへデータを挿入する方法
MySQLでは、INSERT INTO ... SELECT文を使うことで、あるデータベース(スキーマ)から別のデータベースへ簡単にデータをコピーできます。ここでは、「web」と「test」という2つのデータベースを例に、具体的な手順を解説します。 基本構文 スキーマ間でデータを挿入する際の基本構文は以下の通りです。 insert into データベース名2.テーブル名2 select *from データベース名1.テーブル名1; ポイントは、テーブル名の前に「データベース名.(ドット)」を付けることです。これにより、現在接続しているデータベースに関係なく、任意のスキーマのテーブルを指定できま
-
MySQLで1つのINSERT文を使って列に複数の値を一括挿入する方法
はじめにMySQLでは、1つのINSERT文を繰り返し実行しなくても、単一のクエリだけで同じ列に複数の値を挿入できます。VALUES句の後ろに、挿入したい値をカンマ区切りのタプル(行)として列挙するだけです。この方法はデータベースへの接続回数を減らせるため、大量のデータを登録する際にパフォーマンス面でも大きなメリットがあります。基本構文複数の値を1つの列に挿入する場合の基本構文は以下のとおりです。INSERT INTO テーブル名 VALUES(値1),(値2),...,(値N);このように、各値を丸括弧で囲み、カンマ(,)で区切って並べることで、1回のクエリで複数行をまとめて挿入できます。実
-
LinuxでMySQLサーバーとクライアント間のSSL接続を設定する方法
このチュートリアルでは、SSLによる暗号化を利用してMySQLサーバーへの安全な接続を確立し、データベース内のデータを第三者による盗聴や盗難から守る方法を解説します。SSL証明書による認証は、なりすまし(フィッシング)攻撃への対策としても有効です。サーバー側でSSLを有効化する手順から、クライアント側の設定まで、順を追って説明します。 SSLサポートの有効化状況を確認する まずMySQLサーバーに接続し、SSLのステータスを確認しましょう。 # mysql -u root -p mysql> show variables like %ssl%; +---------------+----
-
Ubuntu 16.04でMySQLデータディレクトリを別の場所へ移動・変更する方法
この記事では、MySQLのデータディレクトリを変更し、データベースのデータを新しい場所へ移動する方法を解説します。データベースが急速に成長している場合や、セキュリティ上の理由でデータディレクトリを別の場所へ移したい場合に役立つ手順です。 前提条件 Sudo権限を持つ一般(非root)ユーザーが設定されたUbuntuマシン MySQLがインストール済みで正常に動作していること データの移動先となる新しいボリュームまたはロケーション。本記事では、サーバーに接続した新規ボリューム「data_vol」を使用し、移動先を /mnt/data_vol/mysql とします。 MySQLデータフォルダの
-
LinuxでMySQLからMariaDBへ移行する方法|バックアップからデータ復元までの手順を解説
本記事では、Linux環境でMySQLからMariaDBへデータベースを移行する具体的な手順を解説します。MariaDBはMySQLと高いバイナリ互換性を持つため、移行作業は非常にシンプルで、既存のデータをそのまま引き継ぐことができます。 MariaDBへの移行の背景 OracleによるMySQL買収後、コミュニティは新たなデータベース「MariaDB」を開発しました。MariaDBはオープンソースとして公開されており、MySQLとの高い互換性を特徴とします。このため、RHELやCentOS、Fedoraといった主要なLinuxディストリビューションの多くは、すでにMariaDBをMySQLの
-
PL/SQLで1からnまでのすべての奇数とその合計を出力する方法
問題の概要 この問題では、ある数値 n が与えられ、PL/SQL を用いて 1 から n までのすべての奇数を出力し、さらにそれらの合計値も表示するプログラムを作成します。 PL/SQL(Procedural Language/SQL)は、SQL を手続き型言語として拡張した Oracle のプログラミング言語です。変数宣言や条件分岐、ループ処理といった手続き的な要素を、DECLARE・BEGIN・END によるブロック構造の中にまとめて記述できるのが大きな特徴です。 入出力例 入力:7 出力:奇数は 1, 3, 5, 7 奇数の合計は 16 解き方のアプローチ この問題は、次の手順で解
-
CentOS 7にMS SQL Serverをインストールして構成する方法【初心者向け完全ガイド】
本記事では、CentOS 7にMicrosoft SQL Server(MS SQL)をインストールし、初期構成までを行う手順を詳しく解説します。MicrosoftはLinux向けSQL Serverの提供を発表しており、Red Hat Enterprise Linux、CentOS、Ubuntu向けのベータ版が公開されています(いずれも64ビット版のみ対応)。ここでは、リポジトリの追加からインストール、SAアカウントの設定、ファイアウォールの開放、接続テストまでの一連の流れを順番に見ていきましょう。前提条件メモリ4GB以上、ディスク空き容量30GB以上を備えたマシンCentOS 7がインスト
-
MySQLインストール後に行うべき重要なパフォーマンスチューニング設定
```html 本記事では、MySQLのインストール直後に実装しておくべき重要なパフォーマンスチューニング設定について解説します。これらの設定を適切に行うことで、MySQLの動作をより高速かつ安定させることができます。事前に押さえておきたい注意点すでにMySQLがインストール済みであることを前提に、チューニング作業を始める前の留意点をいくつか紹介します。経験豊富なITエンジニアでも、設定変更の際に思わぬミスをしてトラブルを招くことがあります。本記事で紹介する推奨設定を適用する前に、以下の点を必ず守りましょう。設定は必ず一度にひとつだけ適用すること。そうすることで、各変更がもたらす効果や影響を正
-
PythonでMySQLに接続する方法|PyMySQLのインストールからデータ取得まで
MySQLは、世界で最も広く利用されているオープンソースのデータベース管理システムのひとつです。Pythonには、このデータベースに接続し、データの保存や取得を行うための仕組みが用意されています。本記事では、PythonからMySQLへ接続するためのライブラリ「PyMySQL」の導入方法と、基本的な使い方をサンプルコード付きで解説します。 PyMySQLのインストール 使用しているPython環境に応じて、以下のいずれかの方法でpymysqlパッケージをインストールできます。 # Pythonコンソールからインストールする場合 pip install pymysql # Anacondaを使用
-
SQL Serverで平均値と最頻値(モード)を求める方法
問題の定義 平均(Mean)とは、データセットに含まれるすべての値の合計を、値の個数で割って求められる代表値のことです。 モード(Mode/最頻値)とは、一連のデータの中で最も多く出現する値のことです。 たとえば、データセットが {1, 2, 3, 4} の場合、平均値は次のように計算されます。 (1 + 2 + 3 + 4) / 4 = 2.5 また、データセットが {1, 2, 3, 4, 1, 1, 1, 1} の場合、「1」が5回出現しているため、モードは 1 となります。 実装例 1. テーブルを作成する まず、数値を格納するためのテーブルを作成します。 CREATE TABLE
-
MySQLストアドプロシージャでSHOW CREATE TABLEを実行する方法
MySQLストアドプロシージャでSHOW CREATE TABLEを実行する方法 ストアドプロシージャの中でSHOW CREATE TABLEを実行したい場合は、動的SQL(プリペアドステートメント)を利用します。SHOW系のコマンドはプロシージャ内に直接記述できないため、SQL文を文字列として組み立てて実行するのがポイントです。 まずはサンプル用のテーブルを作成しましょう。 mysql> create table DemoTable2011 -> ( -> StudentId int NOT NULL AUTO_INCREMENT, -> St
-
MySQLストアドプロシージャでIN()を使って特定のレコードのみを取得する方法
MySQLのストアドプロシージャ内でIN()を使用すると、条件に一致する特定のレコードだけを柔軟に取得できます。ここでは、実際の手順をサンプルコードとともに解説します。1. サンプルテーブルの作成まず、テーブルを作成します。mysql> create table DemoTable2004 ( UserId varchar(20), UserName varchar(20) ); Query OK, 0 rows affected (0.57 sec)2. レコードの挿入次に、INSERTコマンドを使ってテーブルにレコードを挿入します。mysql> insert i
-
MySQLで重複するIDごとに最小値を取得する方法|MIN関数とGROUP BYの実例解説
MySQLでは、重複するIDが存在するテーブルから各IDに対応する列の最小値を取得したいケースがよくあります。例えば、同じ商品IDに対して複数の価格(float型)が登録されている場合などです。そんなときは、GROUP BY句とMIN()関数を組み合わせることで簡単に実現できます。基本構文重複IDごとの最小値を取得するには、以下のような構文を使用します。select min(対象カラム名) from テーブル名 group by グループ化するカラム名;サンプルテーブルの作成実際に動作を確認するため、まずはテーブルを作成しましょう。mysql> create table DemoTabl
-
MySQLで文字列や数値が混在するカラムから特定のレコードを取得する方法
文字列・数値・特殊文字が混在するカラムから特定のレコードを取得したい場合は、ORDER BY CAST() を活用すると便利です。この記事では、SUBSTRING() 関数と組み合わせて、「指定した文字列で始まるレコードの中から、数値部分が最も大きいもの」を抽出する方法を、実際のSQL例とともにわかりやすく解説します。 サンプルテーブルの作成 まず、CREATE TABLE文でテーブルを作成します。 mysql> create table DemoTable2006 ( UserId int NOT NULL AUTO_INCREMENT PRIMARY KEY, Us
-
MySQLで複数のレコードをすばやく一括挿入するクエリの書き方
MySQLで複数のレコードを効率よく挿入したい場合、INSERT文を何度も実行するのではなく、1つのINSERT文で複数行をまとめて指定するのがおすすめです。この方法ならデータベースとの通信回数が減り、処理速度が大幅に向上します。 基本構文 複数のレコードをすばやく挿入するには、単一のINSERT文を使い、以下の構文に従います。 insert into yourTableName values(yourValue1,yourValue2,...N),(yourValue1,yourValue2,...N).....N; ポイントは、各行の値セットをカンマ(,)で区切って並べるだけというシンプル
-
【MySQL】ユーザー定義変数とIF関数・SELECT文を組み合わせてカスタムメッセージを表示する方法
MySQLでは、ユーザー定義変数(@変数)とIF()関数、SELECT文を組み合わせることで、クエリの結果に応じたカスタムメッセージを簡単に表示できます。本記事では、サンプルテーブルを作成し、合計値の正負に応じて異なるメッセージを返す方法を順を追って解説します。1. サンプルテーブルの作成まず、テーブルを作成しましょう。mysql> create table DemoTable2008 ( Value int ); Query OK, 0 rows affected (10.59 sec)2. レコードの挿入次に、INSERTコマンドを使用してテーブルにレコードを挿入します。my
-
MySQLクエリでLIKE句を2回使う方法|OR条件で複数パターンを検索する
MySQLでは、LIKE句を1つのクエリ内で2回以上使用することで、複数のパターンに一致するレコードを柔軟に抽出できます。この記事では、実際にテーブルを作成し、LIKE句を2回組み合わせた検索クエリの書き方を手順を追って解説します。 1. サンプルテーブルを作成する まず、検索対象となるテーブルを作成します。 mysql> create table DemoTable2009 ( Name varchar(20) ); Query OK, 0 rows affected (0.51 sec) 2. テーブルにレコードを挿入する INSERT文を使って、いくつかの名前データを登録し