プログラ生活

プログラム初学者のためのポイントを書いていこうと思います。たまに脇道それた記事もありますが、息抜きだとおもって気長にお付き合いください。

プログラミング

【SQL Server(連載)】正規化(第2正規化) -35-

www.pon-x.jp 前回の続き 今回は、第2正規化についてのはなしです。 第2正規化 前回、第1正規化を行い以下のようにテーブルを設計してきました。 注文番号 注文年月日 商品ID 商品名 単価 数量 顧客ID 顧客名 顧客TEL 顧客住所 1001 2020/12/20 K101 うまい…

【SQL Server(連載)】正規化(第1正規化) -34-

www.pon-x.jp 前回の続き 今回からテーブル設計についての話になります。 正規化と正規形 リレーショナルデータベースをここまでやってきて、おおよそテーブル構造についても想像できるようになったかとおもいます。 一方で、テーブルを作るということもやっ…

【SQL Server(連載)】ストアドプロシージャ -33-

www.pon-x.jp 前回の続き 今回はストアドプロシージャの説明です。 ストアドプロシージャ ストアドプロシージャとは、処理をまとめてひとつにして保存するものです。 前回まで、複数の処理を重ねて処理する例をたくさんやってきましたが、それらを実行するた…

【SQL Server(連載)】カーソルの応用 -32-

www.pon-x.jp 前回の続き 今回は、カーソルと一時テーブルを組み合わせた使い方を紹介します。 カーソルと一時テーブル 例えば、SELECT文で出力したいのだけれどもものすごく複雑な構造になってしまう場合、一時テーブルでイメージしていた構造をつくってあ…

【SQL Server(連載)】カーソル -31-

www.pon-x.jp 前回の続き 今回はカーソルについて説明をしていきます。 カーソル カーソルとは1行ずつデータを取り出してループ処理のなかでデータをハンドリングしていくことを目的とします。 では、さっそくサンプルを示してみたいと思います。 以下は、Pe…

【SQL Server(連載)】一時テーブル -30-

www.pon-x.jp 前回の続き 今回は、一時テーブルの扱い方について説明します。 一時テーブル その処理の中において、仮想にデータを保持したいときに扱うのが、一時テーブルです。 一時テーブルは実際にはテーブルを作成せず(実際は tempdbに作成される)に…

【SQL Server(連載)】テーブル関数 -29-

www.pon-x.jp 前回の続き 今回からテーブル関数について紹介していきます。 テーブル関数とは 前回は単一の値を返す、スカラ関数について説明しましたが、今回紹介するテーブル関数はその名の通りテーブルを返す関数です。 なんかイメージしにくいですよね。…

【SQL Server(連載)】WHILE文 -28-

www.pon-x.jp 前回の続き 今回は繰り返し処理を行うためのWHILE文を紹介します。 WHILE文 繰り返し処理はWHILEの後に条件式をかいて、条件式がTRUEな限り繰り返し処理を行います。 こんな感じです。 WHILE [条件式] BEGIN -- ################## -- 何かしら…

【SQL Server(連載)】スカラ関数の活用 -27-

www.pon-x.jp 前回の続き 前回はスカラ―関数をつくりました。 今回はこれの応用です。 スカラ―関数の定義変更 まず、定義したスカラ―関数をどこで確認すればよいかということですが、 オブジェクトエクスプローラーから、 [プログラミング]→[関数]→[スカラー…

【SQL Server(連載)】スカラ関数 -26-

www.pon-x.jp 前回の続き 今回は、関数を自作する際の説明をしていきます。 スカラー関数 スカラ―関数とは、単一の値を返してくれる関数であり、例えば同様の処理をたくさんやるときなどに関数定義をしておくと、簡単な構文で実装できることになります。 使…

【SQL Server(連載)】変数 -25-

www.pon-x.jp 前回の続き 今回は、変数の扱いについて説明していきます。 変数宣言 これまで、変数というのは使わずにきましたが、SQLでも変数を使う場面というのは多分にあります。 例えば、システムに組み込むときに、WHERE句の抽出条件を可変にしたいとき…

東京創業ステーションにてプログラミングセミナーを開催しました!!

12月4日(金)に東京創業ステーションにて、Pythonを始めてみたいという方向けにセミナーを開催させていただきました。 ちなみに告知はこんなかんじでした。 startup-station.jp 普段は高校教師をしているため、社会人向けでさらにフルリモートでの講義は経験…

【SQL Server(連載)】IF文 -24-

www.pon-x.jp 前回の続き 今回はIF ELSE文をやります。 PRINTコマンド IF文とは直接関係ありませんが、PRINTコマンドというのを使いながらIF文の動きを見ていこうと思います。 SELECTはテーブルのデータを出力していたのに対して、PRINTはコメントが表示され…

【SQL Server(連載)】ビューの変更・削除 -23-

www.pon-x.jp 前回の続き 前回からビューをやっておりますが、今回はその続きです。 今回はビューの変更と削除を行います。 ビューの確認 まず、ビューってどこにしまわれているの!?という疑問があろうと思うので、格納場所を確認しておきます。 SSMSの左…

【SQL Server(連載)】ビューの作成 -22-

www.pon-x.jp 前回の続き 複雑なSQLを作成していた場合に、簡単に呼び出す方法のひとつにビューがあります。 今回は、ビューの登録方法を紹介したいと思います。 CREATE VIEW 例えば、以下のようなSQLがあったとします。 SELECT PersonType, COUNT(PPP.Busin…

【SQL Server(連載)】テーブルの削除 -21-

www.pon-x.jp 前回の続き 今回はテーブルの削除です。 削除は、定義も何もわずらわしいことはないので、とっても簡単です!! DROP TABLE 前回作ったテーブルを削除してみましょう。 DROP TABLE Telephone_List 結果はこんな感じ。 ないものは消せない 上記…

【SQL Server(連載)】テーブルの作成 -20-

www.pon-x.jp 前回の続き これまで基本的なSQL文のSELECT、UPDATE、INSERTをやってきました。 これだけできればけっこうできることも多いので、例えば事務職の方がデータを利活用したいってときにはある程度実用できるスキルだとおもいます。 さて、今日から…

【SQL Server(連載)】SELECT文 ORDER BYをやるのを忘れてました -19-

www.pon-x.jp 前回の続き 読者から、ソートの話が出てきているけど、ORDER BYの説明ってやってませんよね!?というご指摘を頂いた。 そのとおり、やっておりませんでした。 誠に失礼しました・・・。ということで、今回はソートの話です。 ORDER BY ORDER B…

【SQL Server(連載)】CASE式の応用 -18-

www.pon-x.jp 前回の続き 前回、CASE式をやりましたが、今回は応用的な事例を紹介します。 並び替えに使う。 ORDER BY で並び替えができるのですが、CASE式をもっておもしろい使い方ができます。 例えば、以下のようにPerson.PersonテーブルをPersonTypeでソ…

【SQL Server(連載)】CASE式 -17-

www.pon-x.jp 前回の続き 今回は、条件分岐を目的とするCASE式を紹介します。 CASE式 CASE式は、もしデータが、〇〇だったら××、△△だったら□□みたいなかんじに読み替えてあげることを目的とします。 便利なのは、SELECT文をはじめ、UPDATE、DELETE、INSERTな…

【SQL Server(連載)】INSERT文(SELECT文の利用) -16-

www.pon-x.jp 前回の続き 前回からINSERT文に入りました。 今回は、それの応用です。 SELECT文を使った、INSERT文 例えば特定のレコードの内容の一部のカラムを変えてレコードを追加したい。なんてことがたまにある。 今回の目的は、そんなときにSELECT文を…

【SQL Server(連載)】INSERT文 -15-

www.pon-x.jp 前回の続き 今回は、データの挿入INSERTをやりたいと思います。 INSERT INSERT文はレコードを挿入するために使います。 文法はこんな感じ INSERT INTO [テーブル名] VALUES([データ1], [データ2]…) 例えば、Sales.SalesReasonテーブルにデータ…

【SQL Server(連載)】DELETE文 -14-

www.pon-x.jp 前回の続き 今回から、レコードの削除を行う、DELETE文を紹介します。 DELETE ここまで、SELECT文やUPDATE文をやってきましたが、これらの内容が抑えられていればそんなに難しいものではありません。 DELETE文はこんな感じに書きます。 DELETE …

【SQL Server(連載)】UPDATE文 (JOINの活用) -13-

www.pon-x.jp 前回の続き 前回からUPDATE文に入り、WHERE句を活用までやりました。 今回は、他のテーブルと結合してデータを更新する方法を紹介します。 JOINを活用する。 あるカラムのデータについて、そのテーブルと別のテーブルを結合させて、別のテーブ…

【SQL Server(連載)】UPDATE文 (データの変更) -12-

www.pon-x.jp 前回の続き 今回からデータの更新、UPDATEに入っていきます。 UPDATE UPDATE文は、データを変更するために行います。 こんなかんじにかきます。 UPDATE [テーブル名] SET [カラム名] = [更新したいデータの内容] では、前回作成したPerson.Pers…

【SQL Server(連載)】テーブルのコピー -11-

www.pon-x.jp 前回の続き 今回は、テーブルのコピーの仕方を紹介したいと思います。 INTO句 テーブルのコピーはINTO句を使って行うことができます。 こんな感じです。 SELECT [カラム] INTO [追加したいテーブル] FRON [元のテーブル] では、ためしにPerson.…

【SQL Server(連載)】SELECT文 (部分一致検索) -10-

www.pon-x.jp 前回の続き 今回は、WHERE句において、部分一致検索の方法を紹介したいと思います。 部分一致検索 WHERE句を使って、必要なレコードを抽出する方法はすでに紹介しました。 www.pon-x.jp しかし、これはイコールをつかって、完全一致する条件で…

【SQL Server(連載)】SELECT文 (存在チェック) -9-

www.pon-x.jp 前回の続き 前回は、サブクエリを勉強しました。 今回は、サブクエリを使って、他のテーブルにデータが存在するかという確認をもって、抽出条件を決める方法を紹介します。 EXISTS EXISTSは、データが存在するかを確認するものです。 ちなみに…

【SQL Server(連載)】SELECT文 (サブクエリ) -8-

www.pon-x.jp 前回の続き 今回は、サブクエリを勉強します。 サブクエリとは入れ子ともいわれ、例えば、親のSELECT文の中に子のSELECT文をいれるなどあります。 今回は、このSELECT文を使ったサブクエリを紹介します。 FROM句をサブクエリにする。 前回、HAV…

【SQL Server(連載)】SELECT文 (グループ化) -7-

www.pon-x.jp 前回の続き 今回は、グループ化をやりたいと思います。 以前に、DISTINCTを使いましたが、それとはちょっと違います。 ちなみにDISTICTは、こんな風に書きました。 SELECT DISTINCT PersonType FROM [Person].[Person] 出力はこんな感じ 重複を…