よつやTips

元IT技術者がおくる情シス超入門:VB.NET / SQLServer / 弥生製品

【まとめ】SQLServer Tips

個人的に書いた記事をはしから忘れてしまうので、まとめました。

 

■概要編

超初心者向け!SQLServerとは?わかりやすく解説 - よつやTips

超初心者向け!SQLServerデータベースの構造 - よつやTips

【SQL】超初心者向け!基礎学習用の本を紹介 - よつやTips

 

SQLServer環境構築編

【SQL】超初心者向け!SQLServer開発環境を構築(準備編) - よつやTips

【SQL】超初心者向け!SQLServer開発環境を構築(インストール編) - よつやTips

 

SQLServer データ抽出編

【SQL】超初心者向け!抽出(SELECT)基本の構文 - よつやTips

 

 

超初心者向け!ACCESSとは?エクセルとの違いをわかりやすく解説

こんにちは、四ツ屋です。久しぶりの投稿です。

 

最近仕事でMicrosoft ACCESSに触れる機会が多く、またその業務のなかで意外と

「エクセルはわかるけどアクセスはちょっと」

という方がいました。

たしかにエクセルと見た目が似ている分だけはとっつきにくい印象があるのかもしれませんが、使ってみるとデータベースとしては利点もあります。

今回はアクセスについて少し紹介したいと思います。

 

■アクセスとは?

Microsoft社のファイル形式データベース管理ソフトです。

表計算ソフトであるエクセルとは異なっていて、こちらはリレーショナル・データベースです。そのため、ワークシートという概念とはまったく異なっています。

データベースは表計算ソフトとは違い、格納するデータの内容や形式を列(カラム)ごとに先に決めています。

たとえばエクセルではセルごとにデータ形式を変えられますが、アクセスではセルではなくフィールドという概念になるので、一箇所だけデータ形式を変えるというようなことはできません。

※フィールドとはなんぞや?ということについては詳しくはこちらの記事をごらんください。 

 

エクセルに慣れた方が初めてアクセスを使うときに戸惑うのはそこだと思いますが、データベースを始めるにあたっては機能の一つ一つを理解していくことで、親しみやすいのでは、と個人的に感じます。

 

■アクセスのメリット

アクセスを使う利点としては、大容量のデータを集計したり検索するのが楽であること、それからデータベースであるので集計やピボットが楽にできることかと思います。

※楽、というと慣れによって個人差はあるかもしれませんが…

また、テーブルの列ごとに形式が決まっているため、作業をルーチン化するにはもってこいです。エクセルファイルはCSVファイルのインポートもあまり考えなくてもできてしまう。すごい。

何より、セルの結合ができないぶん、逆にデータの整合性は増していきます。エクセルは自由度が高すぎて、好き勝手にデータを入れられてしまうケースが多いのです。

 

一方、SQLServerなどと比較すると、様々な機能が安価で手軽に使えることがメリットとして挙げられます。エンジニアではなくてもライセンスさえあれば使えますし、環境構築するという面倒な手順が必要ありません。

また、アプリケーションを実際に稼働させる際にはSQLServerだけでは難しく、データの入力、編集、削除といったインターフェイスを使いたいと思ったときに、ACCESSならVBAが利用できます。

 

何より、バックアップの手間が必要ない。ファイルをコピーするだけ。そこに気づいたとき、「もしかしてアクセスって初心者向けの間口広めツールとしてはそこそこ優秀なのでは?」と感じ始めました。

 

個人的にはSQLServerVB.NETに慣れていたので最初は「アクセスクソだな~~~」と思うことは多々ありました。今もときどきあります。

 

しかし初心者向けに作り、自分以外がメンテすることになる、という制約の多い状況では「意外とアクセスも捨てたものではないかも?」と思うケースもしばしば。VBAなら少しプログラムをかじった人なら通る道なので、間口が広い。

 

■アクセスを使うデメリット

とはいえ、ですよ。頭を抱えることもしばしば。

データベースとして廉価版だし、Office製品だから書籍も山のようにあるし使ったことある人も多いし、SQL書けなくてもクエリ作れるし、クエリ保存しておけばなんとでもなるし、帳票作れるしVBAでフォームも作れるし、意外といいやつじゃねぇか?と思ったけれど。

でも、でも!

腹立つことは意外とあります。

ファイルサイズが2GBを越えるとファイルが使い物にならなくなるとか。

SQLをきれいに書いても改行コードがなかったことにされるとか。

SQL書いてても予約後や関数が色分けされないとか。

そもそもSQLに癖があって使いづらいとか。

ROW_NUMBER関数も使えないし、CASE WHENはSWITCHで読みづらいとか、そもそも結合できるテーブルに限りがあるとか。

※ROW_NUMBERもSQLServer2000じゃ使えませんでしたけどね。

ちょっと長いクエリを書くと、「クエリが複雑すぎます」って怒られたりとか。

VBAだと文字列の全角半角を認識してくれないとか。

※実際あった話です。全角カンマと半角カンマを認識してくれなくてハゲるかと思いました。

 

 

■じゃあ結局、アクセス使ったほうがいいの?悪いの?

こう書くと「やっぱりオメー、アクセス嫌いなんじゃねーか!」と思われそうですが、そうではないのです。いや好きでもないですけど。

どのツールにもメリット・デメリットあります。

エクセルでもできる、アクセスでもできる、RDBMSでもできる。

じゃあどのツールを使うか?となったときに私が重視したのはメンテするのが誰か?運用するのは誰か?ということです。

別に、一人で作って一人で使う、自分ひとりで完結するなら何を使ってもいいんですよ。ぶっちゃけ。

 

でも、自分以外が関わる状況で、

 ・運用する人

 ・メンテする人

これが誰で、どういうスキルがあるのか、どういう制約があるのか?ということを考えながらツールを作っていると、存外アクセスも悪くないんだなぁと感じます。

でもやっぱり同時に、アクセスでは出来ないことにブチ当たって悶絶もしますけどね!

 

 

【雑記】水没したiPodが10日間かけて復活したはなし。

こんばんは、四ツ屋です。今回もSQLの話はちょっと置いておいて。。。

 

年末のことです。

なんとズボンの尻ポケットにiPodを突っ込んだまま脱ぎ捨て、挙句の果てにそれを拾って洗濯機へインしてしまい、気付いたのはベランダで干そうとしたその瞬間であった。

デニムの尻ポケットが、、、かたい!!!

 

 

マジで?と二度見をしたのはいいけれど既に水浸し。

しかもご丁寧に脱水までされている。見事に洗濯しちゃった!

 

やべーーーーーーーーやっちまった!!!!!やっちまったな!??

慌てた。なにせその数日前に、キッチンで二度ほど水没させていたのだ。

洗い物するのに音楽かけようと置いた瞬間に手が滑ってコップへイン。

おいおい、即座に取り出せた状況ならまだしも。

 

ガッツリ洗濯機に一時間近く回してんじゃねーか。

 

これは死んだな、と思いつつ、とりあえず水気を拭いてみた。

そして、真っ先に電源を入れてみた。

(※ここで通電するとショートするので、本来はしないほうがいいです)

 

一瞬、アップルのロゴが表示されたが、その瞬間に落ちた。

死んだな。その後はうんともすんとも言わなかった。

折角なのでPCにもつないでみる。

認識がおかしくなっているせいか、うんともすんとも言わない。

おまけにiTunesは機器接続でエラーになっていてデバイスが認識されない。

 

買い替えかぁ。。。と5年以上お世話になったiPodを弔い、新たに音楽プレーヤーを買おうかと検討したが。

そういえば昔、ケータイ(ガラケー)を水没させたら冷凍庫に入れろとか、いろいろ聞いたな…と思い出したわけです。

 

冷凍庫へイン

だがしかし、何も起こらなかった。うんともスンとも言わねぇ。

 

タッパーに乾燥剤を入れてイン

…しようとおもったら、そんな都合よく乾燥剤がなかった。だめだ。

 

ジップロックにお米を入れてイン

ちょっと前にタルトを焼こうと思って、重石がわりに使った生米をそのまま放置してたことを思い出し、ちょうどよく転がってた飴の袋に全部投入して、半日ほど放置してみた。

 

 

な、なんと!電源がつく!!!

なんだってーーーー!!!と言わんばかりに喜んだ瞬間、落ちた。

どうやら電源系が死んでいるようで、充電器にさしてみると、充電しながらならぎこちなく動くようだ。とはいえ、PCに接続しても認識されない。困った。

日常的に使うのにさしっぱなしというわけにもいかない。

通勤のときに使いたいのだ。

 

これはもしやワンチャンあるのでは?と再びジップロックにお米まみれにしてやった。この時点で画面は光るが、操作がうまくいかない。

画面上も妙にラインが入っていて、液晶が若干死にかけている。

 

充電ケーブルの穴にお米が入るのを哀れに思いながら放置することさらに数日。なんと息を吹き返したiPodは、音を出すようになったが、イヤホンの再生ボタンは効くのに、操作用のボタンがウンともスンとも言わない。

 

まぁでも、音が出るしな…と(強引に)使い続けること更に数日。

なんと、いつの間にか操作ボタンが効くようになっているではないか!

PCにつなげてみると、なんと認識するようになった!

 

こいつまさか…自己修復機能でも備えてるんじゃねぇか?

と思いながら、なだめすかし使っていた年末年始…そしていま3月に入ったが、充電の減りが若干早いことを除けば十分に使えるまでに回復したのである。

 

とりあえず、水没させたときは慌てず騒がず乾燥させるのが大事だなと思いました。

それ以来、絶対に尻ポケットには入れないようにしてます。

【雑記】手捏ねパンの一次発酵に失敗した救済方法

突然何を言ってるんだこいつって記事ですが、ざっくり調べても一次発酵後の失敗を救済するしっくりした方法が見つからなかったので記事にしました。(生地だけにw)

 

 

今日唐突に思い立って「バターロール作りたい!」と思ってパンをこねこねしてたんですが、無様にも一次発酵の段階で失敗。

一切ふくらまない。

発酵時間を増やそうが温度を上げようが、うんともすんとも言わない。

これはイースト菌死んでるんだな、と把握。

ちなみにイースト菌は冷凍保存が基本なようで、常温保存しちゃってました。

 

どうしようかな~とクックパッド見たり、いろいろ調べてみました。

揚げてドーナツにしちゃうとか、中に具を入れてカルツォーネにしちゃうとか色々あったんですけど、揚げ物の気分じゃないし、油の匂いするし、カルツォーネに入れる具材も急にはないし、ということで。

 

薄く伸ばして、フライパンに投入!

うまくいけばナンになるかも、と思ってやってみました。調べもせずに!

 

生地自体は割ときれいに出来てたので、薄くしても切れることもなく、綺麗に伸びました。

ということで、出来上がりがこちら。

 

f:id:yotsuya_yz:20181105231322j:plain

 

いい具合に焼けたじゃないですか~~~!!

明日はカレーに決まりました。

【雑記】はてなブログでsyntaxhilightを使う方法

こんにちは、四ツ屋です。

はてなブログSQLを掲載するときにみづらいな~とは思っていたのですが放置しっぱなしだったので、そろそろ何とかしないとなぁと思い、調べてみました。
さて、お手軽な方法があればいいのですが…

はてな技法

これは使いやすいですね。というか、いままで適当に「見たまま編集」をしていたのですが、バックログWiki作成時に近い感覚で使えるようです。

SELECT *

  FROM order

 INNER JOIN customer

   ON order.customer_id = customer.customer_id

 WHERE order.order_id = hogehoge

参照はこちら。
ソースコードを色付けして記述する(シンタックス・ハイライト) - はてなダイアリーのヘルプ


highlight.js

これは設定でヘッダにCSSの記載が必要そう。この記事を参考にしてみました。
www.okotono.net

SELECT *
  FROM order
 INNER JOIN customer
   ON order.customer_id = customer.customer_id
 WHERE order.order_id = hogehoge

CSSの部分を変更すると色も変更できるらしい。
しかし、行番号をつけたいなぁ~という気も。

と、思うとやはりsyntaxhilighterなのかな?なんだか面倒くさいと小耳にはさみました。

syntaxhilighter

うーーーーーーん。この記事を参照にしてみたけど、肝心のところでリンク先に思った内容がないよう。
omoshiro.hatenablog.com
なにせ6年も前のハナシ。。。
syntaxhilighterについては調べておきます。

今日はここまで。何かわかったらまた続き書きます。。。

【WIX】初心者が一週間くらいでWIXサイト作ってみた

こんばんは~四ツ屋です。

さて、今回はWIXを使ったWEBサイト作成について、お話しようと思います。

 

ミトコンドリア110k文庫の灰島さん主催で、ホラーアンソロジー本を発行いたします。

mitochondria110k.com

告知や紹介などのサイトづくりをさせていただいたので、ざっくり説明します。

 

ちなみに四ツ屋のホームページ作成能力は下記程度。

・高校時代にタグ打ちしながらホームページ作成

・大学時代以降でブログ作ったり、CSSを使ったサイト作成

・一社目でテンポのホームページをDreamWeaverで更新作業

・三社目でWordPressでの更新作業

この程度なので、サイト作成は初心者の域を超えてません。

ざっくりと、アンソロ企画サイト作るまでのはなしです。

 

WIXってなんなん?

無料でWEBサイトを作れるサイトです。(ババーン)

ja.wix.com

記載されているように、プログラミング不要、サーバなどを借りる必要もないです。

必要なのは「どんなサイトを作るか?」ということくらいです。

 

準備するもの

WIXを使うにあたって必要なのは

・登録用メールアカウント

・サイトに掲載するコンテンツやサイトの名前

これくらいですかね。ほんとに何もいらないです。

ある程度はフリーで使える画像も準備されているのと、画像加工のツールもあります。

簡単な加工程度は可能なのでちょっといじりたい、くらいなら問題ないでしょう。

 

めんどくさかったこと

かなり簡単だったので、めんどくさかったことって本当に少しだけです。

覚えてるだけ書き起こしておきます。

 

めんどくさい第一位、Twitterへのシェア投稿

いやー、これが一番面倒くさかったです!(笑)

試行錯誤しました。

基本的にTwitterへのシェア投稿箇所についてはタグ埋め込みの記事ばっかり。

WIXだとWordPressのようにタグを手打ちして埋め込みがぱっと出来なかったので、基本aタグの中身をごりごり書いてパラメータにほしい情報を埋め込むしか出来なかったです。

サンプルコードを下記に置いておきます。

http://twitter.com/share?text=【ツイート文】&url=【共有するURL】&hashtags=【ハッシュタグ】

 

めんどくさい第二位、ヘッダとフッタ

WIXではヘッダとフッタを設定して全ページにパーツ表示ができます。

しかしインデックスページには表示させたくない、その方法を探すのが大変でした。

方法ですが、ページ設定にヘッダ・フッタの表示/非表示を切り替える設定がちゃんとあります。

レイアウトのタブでスタンダードかシンプルが選択可能となっており、シンプルを選択すると、ヘッダとフッタが非表示になります。

この方法に辿り着くまでにかなり回り道をしまくったので、もしかしたら次はもっと時間をかけずにサイトが作れるかもしれません。

 

f:id:yotsuya_yz:20181024133038p:plain

 

めんどくさい第三位、スマホサイト

スマホ!これも大概面倒くさかったです。

基本的にはWIXがPCサイトのレイアウトから最適化されたスマホ表示を自動生成してくれるんですが、それだとスマホでは見づらい。

なのでスマホ用のレイアウトで修正が必要になるのですが、できることといえば、

・各オブジェクトパーツの位置を変更する

・テキストのレイアウト位置を変更する

・テキストの大きさを拡大/縮小する(フォントや色の変更は不可)

スマホの場合にのみ非表示にする

このくらいですかね。かなり制約されてしまいます。

とはいえ、スマホで大幅に変更しない限りはこれでも十分ですが。

 

サイトのページ名

サイトの各ページのページ名は設定したほうがいいです。

レイアウトと同様にページ設定の「SEO & Social」から設定が可能です。

初期値は入っていないようなので、ページアドレスの箇所を適切なページ名にしておくと良いと思います。

f:id:yotsuya_yz:20181024133753p:plain

 

そのほか覚書

アクセス解析

アクセス解析については、ドメイン接続してGoogleAnalyticsになるようです。

自前のツールはないようです。

 

ブログ機能

同じレイアウトで複数の記事をアップするならブログ機能がいいかもしれません。

今回使わなかったので、もし次回WIXを使うようなケースがあれば使ってみたいです。

 

サイトマップ

今回はいいかーと思って放置していますが、必要なら直接提出するそうです。

美貌のために記事リンク貼っておきますね。

https://support.wix.com/ja/article/google-%E3%81%AB%E7%9B%B4%E6%8E%A5%E3%82%B5%E3%82%A4%E3%83%88%E3%83%9E%E3%83%83%E3%83%97%E3%82%92%E6%8F%90%E5%87%BA%E3%81%99%E3%82%8B

 

アンカータグ

画面の表示上、前方数文字しかデザイン画面に表示されないので、長い名前をつけるとあとで後悔します。(後悔した)

とはいえ、ドラッグアンドドロップでアンカーも好きな位置に移動できるし、リンク先にアンカー位置が簡単に指定できるのは良かったです。

f:id:yotsuya_yz:20181024134600p:plain

 

トップページをオシャンティなロード表示したい

今回はjQueryを習得していないので断念したんですが、こう、映画の番宣みたいな感じでおしゃれなロード画面をつけてみたいなーって話を主催としてました。

結局実装してないのでわからないんですが、jQueryが習得できたらやってみたいです。

newstella.co.jp

 

なんかレイアウトが崩れるよ事件

そうそう。画面幅を変えるとなぜか一部のヘッダに置いてあるオブジェクトがレイアウトが崩れる事件がありました。

これは最終的に、ヘッダーに置いてたはずの一部のオブジェクトがヘッダに含まれておらず、グルーピングできてなかったことが原因でした。

オブジェクトをグルーピングするにはヘッダならヘッダ、フッタならフッタに置いた上でグルーピングする必要があります。

このとき、場所はヘッダっぽい位置にあっても実際はヘッダに含まれてないケースがあるので要注意です。

 

ところで余談なんですけど、「ヘッダー」?「ヘッダ」?どっちなんでしょう。

サーバーは「サーバ」プリンターは「プリンタ」派なのでヘッダかな、と思ってるんですがWEB業界のひとじゃないのでどちらが主流なのか。(笑)

 

とりあえず、触ってみると面白いよ!

今回、アンソロの告知ページなのでそこにコストかけるのもなーってことで無料のWIXを使ってみました。

いまのところ自前のサーバを持ってないので。

とはいえ、いつか自前のサーバ確保してWordPress構築してみたい野望もあります。

アンソロ告知だと簡単な構成でかつ変化がないこともあり、WIXでまぁ妥当だったかという気はします。

これがいまみたいな技術ブログとか、そういうものだとブログ機能でどこまで補えるのかによりますね。

今回、ざっくりと一通り構築してみたのでネタにしてみました。

よつやTipsで需要があるかはわかんないんですけど。(笑)

 

また何か面白いツールさわったら紹介しますね!

 

↓ホラーアンソロジー「Sanctuary」告知サイト

sanctuaryeldorado.wixsite.com

【備忘】SQLの条件の順番について

100万件超のデータから一部のデータを抽出するときの条件について、気になった点があったのでメモ。

 

Where句の条件はおそらく上から参照されるようです。

特定のフィールドの内容を文字列で判定するようなクエリを記述する場合、先に期間やステータスで区切ったほうが良いと思われます。

根拠について薄いので、調べてちゃんとわかったら追記しますね。

 

とりあえず、5分くらいかかってた抽出が数秒くらいに改善されたので、覚えておくと良いのかもしれない。

【まとめ】SQLServer Tips

個人的に書いた記事をはしから忘れてしまうので、まとめました。

 

■概要編

超初心者向け!SQLServerとは?わかりやすく解説 - よつやTips

超初心者向け!SQLServerデータベースの構造 - よつやTips

【SQL】超初心者向け!基礎学習用の本を紹介 - よつやTips

 

SQLServer環境構築編

【SQL】超初心者向け!SQLServer開発環境を構築(準備編) - よつやTips

【SQL】超初心者向け!SQLServer開発環境を構築(インストール編) - よつやTips

 

SQLServer データ抽出編

【SQL】超初心者向け!抽出(SELECT)基本の構文 - よつやTips