ねぎとろごはん

SQL Server関連の事や日々の事

【SQL】指定した文字を前方・後方から削除する方法

はじめに

SQLServer2022からTRIM関数が拡張されて、前方や後方から指定した文字を削除できるようになったようです。

TRIM (Transact-SQL) - SQL Server | Microsoft Learn

前方から指定した文字を削除する場合

SELECT TRIM(LEADING  '' FROM '    毒リンゴ毒バナナ毒 ') 
リンゴ毒バナナ毒 

後方から指定した文字を削除する場合

SELECT TRIM(TRAILING 'サーモン ' FROM ' 炙りサーモンアボガドサーモン ') 
 炙りサーモンアボガド

G検定 合格体験記

はじめに

先日、2020年3月14日開催のG検定を受験し、合格しました。 試験内容や勉強方法を記録しておこうとおもいます。

なぜ受験しようと思ったのか

機械学習ディープラーニング辺りの技術が賑やかにみえていたので、興味があったのですが、なかなか最初一歩の踏み出し方がわかりませんでした。 そんな時に、会社でG検定の資格取得奨励の通達があり、この資格の存在を知ったので、受験をしました。

ちなみに私のスペックは10年目のSEです。 機械学習ディープラーニングの知識は皆無でした。

勉強方法

主に、以下の2つです。

  • 書籍を読む
  • 模擬試験を解く

勉強時間は2週間くらいで、20時間程度だったと思います。

まず、書籍については以下の問題集とテキストがあれば十分だと思います。 最初に問題集をやって試験の傾向を掴んでからテキストを読むと分かりやすい気がします。

上記2つでも十分だと思いますが、さらに理解を深めたいならAI白書も良いと思います。 試験ではAIの法律などに関する設問もあるのですが、そのあたりはAI白書などを読むほうがためになると感じました。

あとは、模擬試験サイトでひたすら問題を解くと、試験の感覚が掴めるますし、同じような問題も出てくるので絶対にやった方が良いです。 study-ai.com

試験内容について

試験は120分、多肢選択式、自宅でオンライン受験です。 ネット調べながらできますが、調べていると全然時間が足りないです。なのでテンポよく解いていく必要があります。

私が行った対策としては、自分で要点をまとめたメモを用意しました。 Qiitaとかでも要点をまとめた記事等があるので、をれをすぐに検索できるようにするのも有効です。 (私は人名覚えるのが苦手なのですが、そこでメモがすごく役立ちました。)

試験終了後

だいたい2~3週間して、結果が通知されます。 合格者専用のSlackなどの案内もあり、登録すればAIに関する情報を得ることができます。

最後に

合格率が高いですが、知識がゼロの人からすると、難易度が高かったように思います。 ですので、油断せず勉強した方がよいと思いました。

次はE資格にも挑戦していきたいですね!

ゼロから作るDeep Learning - 環境構築編

はじめに

Deep Learningに興味が沸いたので、こちらの本を買いました!少しずつ読みつつ、やった事を記録していこうと思います。

ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装

ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装

  • 作者:斎藤 康毅
  • 発売日: 2016/09/24
  • メディア: 単行本(ソフトカバー)

環境構築編

まずは環境構築していきます。 anacondaのURL変わってるみたいですね。 https://www.anaconda.com/products/individual

ダウンロード完了したらインストールです。 f:id:negitoro_gohan:20200518050037p:plain

f:id:negitoro_gohan:20200518050124p:plain

こんな感じかな…。

インストール完了後、バージョンを確認すると f:id:negitoro_gohan:20200518050337p:plain 上手くいったみたいですね!

データベースを簡単に比較する方法

はじめに

データ移行等で新旧のデータベースを比較するということがあるかと思います。その時に簡単に比較する方法があることを知りました。環境はSQL Serverです。

必要なもの

SSDTが必要になります。 下記のURLを参考にインストールしましょう。ちなみにここではVisual Studio 2019を使ったやり方を紹介します。

docs.microsoft.com

方法

Visual Studioを起動して、空のソリューションを起動しましょう。そして、 [表示]から[SQL Serverオブジェクトエクスプローラー]を表示させます。

f:id:negitoro_gohan:20191215065050p:plain

[右クリック]で[SQL Serverの追加]を行い、比較元のインスタンスを選択します。

f:id:negitoro_gohan:20191215065238p:plain

インスタンス内の情報が表示されるので[右クリック]して[スキーマの比較]を選択します。

f:id:negitoro_gohan:20191215065948p:plain

[ターゲットの選択]を選択します。

f:id:negitoro_gohan:20191215070337p:plain

比較元のインスタンスを選択します。

f:id:negitoro_gohan:20191215070453p:plain

[比較]をクリックします。

f:id:negitoro_gohan:20191215070623p:plain

データベースの差異が表示されました。(この例ではcolumn1を追加しました。)

f:id:negitoro_gohan:20191215070830p:plain

その他

変更点のスクリプト作成

[スクリプトの作成]を行えば、変更箇所のみ反映するスクリプトも作成してくれます。

f:id:negitoro_gohan:20191215071302p:plain

オプション

オプションで比較方法を変えることもできます。

f:id:negitoro_gohan:20191215071758p:plain

おわりに

この方法知るまではSQL文で差異を抽出していたのですが、この方法使えばあっという間ですですね!

SQL Serverで復元・バックアップ時にフォルダが参照できない

はじめに

DBの復元時にバックアップファイルを置いたフォルダが参照できませんでした。調べてみたらSQL Serverを実行しているアカウントに権限がなかったからのようです。

解決方法

データベースエンジンを実行しているアカウントに対してフォルダの参照権限をつけてやれば問題ないです。

具体的にいうとSQL Server構成マネージャーで「SQL Server(インスタンス名)」という名前のログオン列に表示されているアカウントです。 f:id:negitoro_gohan:20191213012326p:plain

フォルダのプロパティから該当のアカウントに対して権限を与えます。 f:id:negitoro_gohan:20191213012655p:plain

SSMSのスニペット機能について

はじめに

SSMSではスニペットを使ってT-SQLを簡単に書くことができます。

スニペットの挿入

右クリックから[スニペットの挿入]で追加することができます。 f:id:negitoro_gohan:20191211004249p:plain

デフォルトでいくつか登録されています。

f:id:negitoro_gohan:20191211004418p:plain

スニペットの登録

足りない場合は追加することもできます。

[ツール]-[コードスニペットマネージャー]をクリック。 f:id:negitoro_gohan:20191211004628p:plain

f:id:negitoro_gohan:20191211004720p:plain

よく使う構文は登録しておくと作業が楽になりそうですね。

SSMSのテンプレート機能について

はじめに

仕事でクエリを書く機会が多いのですが、簡単に書く方法が無いかと思って調べてみるとテンプレートというものがあることを知りました。

テンプレートとは

用意されたクエリのテンプレートを利用することができます。テンプレートを呼び出した後は、必要最小限の箇所だけ変更すればよいのでクエリを書くのが楽になります。 既存のテンプレートを編集することもできますし、自分でオリジナルのテンプレートを保存しておくこともできます。

使い方

[表示]-[テンプレートエクスプローラー]をクリックして[テンプレートブラウザー]が開きます。 f:id:negitoro_gohan:20191127233802p:plain

テンプレートを選択すればクエリが表示されます。 f:id:negitoro_gohan:20191127235150p:plain

右クリックでフォルダやテンプレートの追加ができます。 f:id:negitoro_gohan:20191127235639p:plain

おわりに

SSMS長い間使ってましたが、こんな機能があったんですね…。今まで気にしてなかっただけで他にも色んな機能ありそうなので調べてみたいと思いました。