データベース

SQL

[SQL] 連番データ行や期間内の全日付行を生成する方法 [SQL Server]

SQL で連番データ行や範囲内の全日付行を生成する方法 SQL で何もないところから連続するデータを生成する方法をまとめます。対象データ自体は歯抜けになっているけれど、固定件数分取得したい場合などの要件を満たそうとすると、ここでまとめた方法が使えるかもしれません。 今回は SQL Server を対象としますが、考え方は別のデータベースでも使えるはずです。 連番のデータを生成できると、範囲内の日付 […]

[SQL Server] 日時を操作する関数の使い方まとめ [DATE][TIME]

SQL Server で日付をや時間を操作する関数 SQL Server で日付や時間を操作する方法を調べました。例えばある日付から3日後の日付を取得したり、2つの日付の差分日数を計算したりする方法をSQL上で関数を使って実現します。 日付や時間を表すデータ型には以下のようなものがあります。 date datetime datetimeoffset datetime2 smalldatetime […]

SQL Server のデータを Access にインポートする方法

SQL Server から Access にデータ移行 逆方向、Access のデータを SQL Server に移行する手順はいろんなページでまとめられていますが、SQL Server -> Access のインポート手順があまり見つからず、わかりにくかったのでまとめておきます。 SQL Server からデータをインポートする場合、データそのものをインポートするか、データにリンクするか、 […]

  • 2017.11.27
  • ,

[MySQL]GROUP_CONCATで縦のデータをカンマ区切りで取得

複数レコードのデータを連結して取得したい MySQL(MariaDB)で、GROUP_CONCAT を使って、縦に並んだ複数レコードのデータを1列(カンマ区切り)で取得するSQLを書く方法をまとめます。 SQL Serverでは、FOR XML PATH('') を使用して取得できます。 [SQL Server] 縦に並んだデータを横にカンマ区切りの列データで取得する方法 上記記事では SQL S […]

[SQL Server] 縦に並んだデータを横にカンマ区切りの列データで取得する方法

縦に複数のデータを横並びで取得したい 縦にたくさん並んだデータについて、横に並べて一つの可カンマ区切りの列データとして取得したい場合があったのでその方法をまとめます。 RMDBは SQL Server です。FOR XML PATH('') を使って実現します。 例えば、部署と社員の関係を以下のようなリレーションで表現します。 部署マスタと社員マスタがあり、社員マスタには所属部署を表す部署IDを保 […]

[MS SQL] Insertしたデータの ID(IDENTITY) を取得する方法

Insertしたデータの ID(IDENTITY) を取得する方法     SQL Server では、テーブルの列に対して自動でIDを採番してくれる IDENTITY というプロパティがあります。このプロパティが設定されている列については、手動で値を登録することができません。     例えば INSERT 処理後、このIDを使って関連するテーブルへデータを続けて登録したい場合は、以下のように(S […]

SQL

[SQL] 再帰クエリでツリー(木)構造を扱う

SQLにおける再帰的な処理 リレーショナルデータベース(RDB)には、階層的なデータ構造(例:ツリー構造など)を扱うことができる、再帰クエリをサポートしているものがあります。再帰クエリを使の使い方を以下に紹介します。 再帰クエリをサポートするRDB Wikipediaによると以下のRDB(バージョンによっては利用不可)は再帰クエリを使えるようです。今回は以下のうち、SQLServer と SQLi […]

SQL Server Expressで自動バックアップを作成する方法

SQLServer Expressで自動バックアップの取り方 小規模のWebアプリであれば、SQL Server Expressで事足りることも多く利用されている方も多いと思います。 しかしSQL Server Expressには製品版と比べ、いくつかの機能の制限がかけられています。 メンテナンスプランによる自動バックアップ機能もそのうちの一つです。 勿論手動でのバックアップはできますが、SQL […]