【基本情報などを受けるSQL初心者向け】ブラウザ上でSQLが実行できるサイトまとめ

どうもmozaです。

私は基本情報技術者試験を大学生時代に受けたのですが、その時はブラインドタッチもできない、全くのIT初心者でした。

基本情報技術者試験の技術要素にデータベース分野があるのですが、SQLて言われても全くイメージがつかず、情報科のサークルの先輩を捕まえて質問してみました。

すると先輩には、こう言われました。

先輩
先輩

環境構築して実際に動かしてみたら、SQLなんてすぐ覚えるよ!

初心者だったので環境構築ってなにそれ、意味わからん。という状態でした。

SQLは実際にてを動かして実行してみたらすぐに覚えることができるという意見は同意なのですが、環境構築が初心者には厳しいのです。

そこで、今回は環境構築不要で、実際にSQLを書いて覚えるためのサイトをまとめました。

ブラウザ上でSQLを実行できるサイト

1.sqliteonline(https://sqliteonline.com)

個人的には一番おすすめです。

使えるデータベースはSQLiteとMariaDBです。新人エンジニアで、業務で SQLiteとMariaDB以外を使用することが決まっている人以外は、このサイトがよいと思います

2.SQL Fiddle(http://sqlfiddle.com/)

MySQL, Oracle, PostgreSQL, SQLite, SQL Serverと主要なデータベースをブラウザ上で実行できるサイトです。

それぞれのバージョンは若干古いところもありますが、初心者がSQLを試すのには、ちょうど良いサイトだと思います。

3. SQL攻略 – Web上でSQLを実行しながらマスターするサイト ( http://sql.main.jp/ )

ブラウザ上でSQLを実行しながら、SQLを学べるサイトです。これをすべてやり切れば、基本情報のデータベース分野は得点源となるはずです。

4. Oracle Live SQL ( https://livesql.oracle.com/)

データベースのシェア世界一のOracleが提供する、ブラウザ上でOracleデータベースを実行できるサイトです。使用するためにはOracleのアカウントを登録する必要があります。

いかがでしたでしょうか?基本情報や応用情報を受ける場合、データベース分野の勉強をしておけば、ぐっと合格に近づきます。

SQLやデータベースは 歴史が長いため、情報処理試験では最新トレンドなどに左右されずにワンパターンな問題構成となっていることが多いように感じます。

SQLを学んで、合格しましょう!

【1日1本アプリ開発】柿をかわせ2!【18本目】

どうもozaniです。

開発18本目のアプリです。

【1日1本アプリ開発】柿をかわせ!【18本目】

今回も、かわして、かわして、かわしまくれ!
ということで、仲間内で受けが良かった、飛んでくる柿をひたすらかわしまくるゲーム第2弾です!
当然今回も、キノコ機能の進化機能を備えております。

今度の柿は、追ってくる

是非、遊んでみてください!

・今日のちょっとソース。
こちらから

【1日1本アプリ開発】柿をかわせ!【16本目】(※鬼畜ゲーム

どうもozaniです。

開発16本目のアプリです。

【1日1本アプリ開発】柿をかわせ!【16本目】
今回は、かわして、かわして、かわしまくれ!
てことで、飛んでくる柿をひたすらかわしてもらいます。

15本目のアプリがマ〇オを意識していたので、今回も少しだけマ〇オを意識しました。
キノコをとると巨大化してパワーアップします!!!

あまり難易度を考えないで作ったので、かなりの鬼畜ゲームとなっております。
むしろ、ゲームクリアできたら、連絡してほしいレベルです!

是非、遊んでみてください!

・今日のちょっとソース。
こちらから

【Unity】タイマー機能の作成

どうもozaniです。

制限時間を表示する、タイマー機能をテーマに以下のアプリを作成しました。
アプリの紹介記事はこちら!
【1日1本アプリ開発】柿をかわせ!【16本目】

時間を表示するテキストの作成

手始めに、制限時間を表示するテキストを追加します。
Create > UI > textを選択して、テキストを追加します。

今回のアプリでは60秒をカウントするので、初期のテキストに書かれている内容を60秒とします。
これは、InspectorタブのTextに60秒を表すように入力してあげればよいです。

これで、画面上に表示するタイマーのテキストが完成しました。

タイマースクリプトの作成

次に、1秒毎にタイマーテキストの表示を変更する、タイマースクリプトを作成しました。

	
    public class GameMaster : MonoBehaviour
    {
        
        public Text timer_text; // タイマーテキストを設定します。
        int timer_count = 60;  // 初期は残り60秒

        // Use this for initialization
        void Start()
        {
            StartCoroutine(CountTime()); //CountTime()を数秒(今回は1秒)おきに実行
        }

        public IEnumerator CountTime()
        {
            yield return new WaitForSeconds(1f); //1秒待機
            timer_count--; //制限時間を1秒減らす
            timer_text.text = string.Format("Time:{0}", timer_count.ToString()); //タイマーテキストを変更

            StartCoroutine(CountTime()); //CountTime()を実行
        }
    }

タイマー用のテキストに上記スクリプトをつけることで、制限時間を表示するタイマーとなります。

今回のスクリプトは、Unity(C#)のコルーチンという機能を用いて実装しました。
参考:Unity Document(MonoBehaviour.StartCoroutine)
メインの処理とは非同期に、動作・停止を繰り返し行う仕組みみたいです。

使いこなせたら便利なので、コルーチンについての説明は改めてどこかでしたいと思います。

【使用ゲームエンジン】
Unity2018.3.5.f1

【プロジェクト管理】
git(Bitbucket使用)

【1日1本アプリ開発】世界の愛してる!【13本目】

どうもozaniです。

開発13本目のアプリです。

【1日1本アプリ開発】世界の愛してる辞典!【13本目】

世界中の女性とお近づきになりたいと思ったこと、ありませんか。
そんな思いを込めて作成したアプリとなります。

 

・今日のちょっとソース。

シーン間の値の受け渡し

	
   // ラベル文言管理クラス
   class LabelWords
   {
       public static string ILoveYou { get; set; }
       public static string ILoveYouKana { get; set; }
   }
   // ドロップダウン変更イベント
   public class LanguageDropDown : MonoBehaviour
    {
        public void OnValueChanged(Dropdown dropdown)
        {
            switch (dropdown.value)
            {
                case 0:
                    LabelWords.ILoveYou = "愛してるよ";
                    LabelWords.ILoveYouKana = "アイシテルヨ";
                    break;
                case 1:
                    LabelWords.ILoveYou = "I love you";
                    LabelWords.ILoveYouKana = "アイラブユー";
                    break;
                    ……(略)
            }

        }
    }

上記のソースコードは、ドロップダウンを変更したときに動くプログラムです。

Unityでシーン間で値を共有する場合、最も簡単な方法は静的(static)な変数に値を入れてしまうことです。
上記のソースコードの様に、変数にstatic キーワードをつけることでその変数は静的な変数となります。

静的な変数の特徴は、プログラムの開始から終了まで値が保持され続けることです。
普通のstaticではない変数というのは、使い終わった後その値と領域は破棄されます。
今回リリースしたアプリを例にすると、最初のトップのシーンで言語を「英語」と選んでも、普通の変数だとシーンが切り替わるタイミングで破棄され、次の愛してるよのシーンでは何が選択されているのか、わからくなってしまいます。

staticな変数は乱立すると、「え、今これ何入ってるんだっけ?」と複雑怪奇なプログラムになり、思わぬバグの元となりますので、ご利用は控えめに!

【使用ゲームエンジン】
Unity2018.3.5.f1

【プロジェクト管理】
git(Bitbucket使用)

【知り合いに実際にプレイしてもらった感想】

グラフィック :

ボリューム  :

操作性    :

ゲームバランス:

独創性    :

クリアタイム :00分

【1日1本アプリ開発】サルを揃えろ!【11本目】

お初です、ozaniです。

開発11日目です。

【1日1本アプリ開発】サルを揃えろ!【11本目】

今日は簡単なパズルゲームを作成しました!

・今日のちょっとソース。


	
var currentPosIndex = picePosDict.
    Where(x => x.Value.name.Equals(flickPiece.name)).
    FirstOrDefault().Key;

パズルのピースの位置とそのオブジェクトを格納したHashtableをゲーム開始時に作成し、各ピースの位置を管理しました。

上記は、フリックしたピースの位置情報をLINQを使用して取得しているソースコードです。
C#はLINQがあるから大好きだったりします!

LINQを使用しない場合、ソースコードは下記のようなソースコードになるかと思います。

	
var currentPosIndex = 0f;
foreach (var index in picePosDict.Keys)
{
    if(picePosDict[index].name.Equals(flickPiece.name))
    {
        currentPosIndex = index;
        break;
    }
}

上記のコードを上から読んでいくと
「Hashtableの中身を順番にループで見ていき、フリックしたピースと名前が一致するオブジェクトがあれば、そのINDEXを保持してループから抜ける」
となります。

「Hashtableからフリックしたピースの位置をとってくる」ていう意味では、
1つ目のソースコードも、2つ目のソースコードも同義なのですが、
やりたいことをストレートに表現しているのは前者だと思いませんか?

積極的にC#やるなら、積極的にLINQ使っていきましょう!

【使用ゲームエンジン】
Unity 2018.3.5f1

【プロジェクト管理】
git(Bitbucket使用)

これからも、よろしくお願いします。

【1日1本アプリ開発】サルを救え!【9本目】

お初です、ozaniです。

開発9日目です。

【1日1本アプリ開発】サルを救え!【9本目】

チーム初参加で作成したゲームは、
落ちもの系となりました!

Unityゲーム初作成で不出来なところもあるかと思いますが、
これからどうぞよろしくお願いします!

・今日のちょっとソース。


	
Destroy(gameObject);

ゲーム内では、入れ物に触れたサルを上記のスクリプトで削除しています。

【使用ゲームエンジン】
Unity2018.3.5.f1

【プロジェクト管理】
git(Bitbucket使用)

これからも、よろしくお願いします。