期間限定

キャンペーン中

体験授業申込

非エンジニアでも知らないとヤバイSQL Part4 〜INSERT句でデータを追加〜

非エンジニアでも知らないとヤバイSQL Part4 〜INSERT句でデータを追加〜

前回はWHEREでテーブルから指定した条件のデータを抽出する方法を学びましたね。
今回はテーブルにデータを追加して拡張してくれるINSERT文について学んでいきましょう。

前回までの内容が気になる方はこちらから↓

非エンジニアでも必ず押さえておくべきSQL

データの追加


前回までの内容で、このテーブルの中からデータを抽出することはできるようになりました。

しかし、テーブルがこれだけだと寂しいですよね。
新入社員を追加したり、変更も加えたい時もあると思います。

そこで出てくるのがINSERT文です。
INSERTとは「~を差し込む」「挿入する」という意味で、データを追加するために使われます。

[sql]INSERT INTO テーブル名 VALUES(‘データ名’,’データ名’…);[/sql]

INSERT文には書き方があり、上のように書きます。例によって文末の;は忘れないようにしましょう。

実際にINSERTを用いて、上のテーブルに新入社員の山本さんを追加してみます。

[sql]INSERT INTO t_employee VALUES(9,’山本’,23,’女’);[/sql]

これでこのテーブルに山本さんを追加できます。

VALUESの中で指定しているのが加えたいデータです。

つまり、上のINSERT文にはt_employeeというテーブルに社員ID”9”番で”山本”さんという”23”歳の”女性”社員を追加します”という意味があるんですね。

わからないデータがある時

追加したいデータがあってもわからない値があるかもしれないですよね。

そういうときには上のINSERT文を少し変えて

[sql]INSERT INTO t_employee(‘id’,’name’) VALUES(10,’尾形’);[/sql]

とします。これで社員ナンバーに”10”を入れて氏名に”尾形”を入れることができます。
他のnameやageの部分は空白のままになっています。

※また別の時に話すと思いますが、テーブルがNULL値を拒否してる場合はこのやり方は使えません。

複数のデータをまとめて追加したいとき

以上の方法でINSERTで追加する方法は学びました。ですがこのままではデータを一つずつしか入れることができません。

[sql]INSERT INTO t_employee VALUES(10,’青木’,24,’男’);
INSERT INTO t_employee VALUES(11,’横山’,23,’男’);
INSERT INTO t_employee VALUES(12,’勝田’,30,’女’);
INSERT INTO t_employee VALUES(13,’小暮’,24,’女’);
INSERT INTO t_employee VALUES(14,’小宮山’,24,’女’);
[/sql]


この方法でやっても追加はされてますが、少し面倒ですよね。

そんな時にはこんな風にしてみてください。

[sql]INSERT INTO t_employee VALUES
(10,’青木’,24,’男’),
(11,’横山’,23,’男’),
(12,’勝田’,30,’女’),
(13,’小暮’,24,’女’),
(14,’小宮山’,24,’女’);
[/sql]

このようにコンマで繋げるだけで簡単にデータを複数追加することが出来るようになります。

まとめ

・INSERT INTOテーブル名 VALUES(データ,データ,…)でデータを追加できる。
・複数追加したいときは「,」で省略できる。
次回はデータの内容を変更したいときに使うUPDATEと、データの削除のときに使
うDELETEについて学んでいきましょう。

プログラミングを学んでみたい方、短期間でプログラミングを身につけたい方は64時間で”なりたい”を叶えるプログラミングスクール「WISH」にお気軽にお問い合わせください。現在無料カウンセリングや、入会金無料キャンペーン、さらに受講料20%オフのキャンペーンを開催しております。
プログラミング教室 新宿 大人

非エンジニアでも知らないとヤバイSQL Part3 〜WHERE句で検索条件を指定〜

SELECT文について

前回は、SQLにてSELECTする際、全カラム抽出、カラム指定抽出、件数指定抽出、OFFSETを使った件数指定抽出についてでした。
DBの種類(「関係型」「NoSQL」「階層型」「ネットワーク型」)、その中でも現在主流になっている「ネットワーク型」(RDBMS)について、SQLについてから気なる方は非エンジニアでも知らないとヤバイSQL Part1をご覧ください。

非エンジニアでも必ず押さえておくべきSQL

検索条件を指定

DB
おなじみの社員マスターテーブル、t_employeeです。

全件のデータを取得したり、件数やカラム(列)を指定し取得する方法は前回やりましたね!では、今回は検索条件を指定してデータを抽出していきましょう。

まず、①性別が男の社員 についての検索結果はもちろん以下のようになります。

WHERE句のあとにカラム名を指定することによって、検索条件を指定することが可能となります。
性別が男 ですので sex = ‘男’となります。文字列は、シングルクォーテーションで囲いましょう!

続いて、②年齢が30才未満の社員 の検索結果は以下のようになります。

30才未満ですので、30才の社員は条件にはあてはまりません。

次に、③年齢が30才ちょうどの社員 はこのように。

これはもう簡単ですね!

続いて④年齢が30才以上の社員 の検索結果です。

30才以上ですので30才も含みます。以上の時の演算子は “>=” となります。 “>” のみですと、30才は含まれません。同じように30才以下にしたい場合演算子は “<=” となります。大なり小なりとイコールを組み合わせるだけなのでとても簡単です。

あと少しです。年齢が30才以上かつ性別が女の社員 は検索結果はこちら。

論理演算子の登場です。条件を複数指定したい場合はANDを使います。

最後は、⑥年齢が30才以上または性別が男の社員 です。

また論理演算子です。どちらかの条件をみたしていればいい時は、ORを使います。

まとめ

今回はWHERE句を用いたMySQLでの条件指定の仕方、またその際の演算子、論理演算子の基本的な使い方をみてみました。実際の業務でもこのような基本的なクエリも使いますのでいろんなパターンを検証してみるのも面白いと思います。
MySQLでは他にもさまざまな条件指定の方法や演算子の種類があります。次回はもう少し掘り下げて見てみましょう!

非エンジニアでも知らないとヤバイSQL Part2 〜SELECT文でデータ抽出〜

DB、SQLについて

前回の非エンジニアでも知らないとヤバイSQL Part1では、DBの種類(「関係型」「NoSQL」「階層型」「ネットワーク型」)、その中でも現在主流になっている「ネットワーク型」(RDBMS)について、SQLについて触れました。
今回は具体的に、SQLのデータ抽出のクエリ、SELECTについてです。SQLをある程度知っているとデータの扱い方やマーケティング、ゲームの企画などでも活かせます。構文はシェア率の高いMySQLで進めていきます。

SELECTの基本

DB
前回も登場した社員マスターテーブル、t_employeeです。

ではまず、社員全員のデータを抽出してみましょう。

結果は以下の通りです。

では上記SQLについて解説です。

SELECT * FROM t_employee;

SELECTの後の*は全てのカラム(列)を意味します。表の縦です。対して横はレコードといい行(row)を意味します。

FROMはどのテーブルから抽出するかです。

SELECT カラム名 FROM テーブル名;

ということになります。慣れないうちは文末の;(セミコロン)を忘れがちなので気をつけてください。

SELECTの基本2  カラムを指定

では今度は社員テーブルから氏名のみを抽出してみましょう。

結果はカラムを指定しているので以下のようになります。

とっても簡単ですね!

SELECTの基本3  抽出件数を指定

では今度は社員テーブルから件数を指定して抽出してみましょう。

MySQLの場合、LIMITの後の数字は何件取得するかを指定します。

SELECT カラム名 FROM テーブル名 LIMIT 抽出件数;

すると結果は以下のようになります。

期待通りの結果ですね!

では、3番目から4人のデータを抽出したい場合、MySQLではどのように書けばいいのでしょうか。
3番目にあたる抽出の開始位置をOFFSET(オフセット)といい、MySQLでは以下のように指定します。オプションですので必要な時のみ指定します。

SELECT カラム名 FROM テーブル名 LIMIT (オフセット,) 抽出件数;

結果は以下のようになります。
MySQL LIMIT OFFSET
ここでもう一度クエリを確認してみてください。3番目からなのにOFFSETに2がはいっていることに気づきましたか?開始位置は0から始まるので、3番目を指定したい場合は2をOFFSETに指定する必要があります。

まとめ

今回はMySQLでSELECTする際、全カラム抽出、カラム指定抽出、件数指定抽出、OFFSETを使った件数指定抽出についてでした。データ抽出の仕組みや方法って、色々な場面で役にたちます。非エンジニアでも知っているだけで大違いなSQL。次回もSELECTの続きをやっていきます!

非エンジニアでも知らないとヤバイSQL Part1

非エンジニアでもエンジニアの知識が最低限必要

IT業界で働いていくには、非エンジニアでもエンジニアの知識がある程度必要です。営業マンやマーケッター、プランナーやデザイナーであっても、同じ業界で働くためには社外の打ち合わせなどはもちろん、社内のやりとりをスムーズにするためにも最低限押さえておくべき知識があります。今回はSQLについてです。この記事を読めば、これまでプログラマーたちの会話が呪文のように聞こえていた人や、プログラミング自体に小難しいイメージがあって苦手意識がある人が少しだけ救われるかもしれません。

そもそもSQLって?

SQL(Structured English Query Language)についての説明をするにはデータベースの説明が不可欠です。DBと略されるデータベースはIT業界でなくとも、聞いたことがある人も多いと思います。
DBにはおおきくわけて「関係型」「NoSQL」「階層型」「ネットワーク型」の4種類があり、現在主流となっているのが「階層型」です。リレーショナルデータベース管理システム(RDBMS)ともいいます。
エクセルをイメージするとわかりやすいです。のように列(column)と行(row)で構成されています。
DB
例えばこの社員管理テーブルと下記有給管理テーブルがあるとします。

このふたつのテーブルは社員IDで紐づいてます。このように二つのテーブルが関係性をもっていることから、「関係型」やリレーショナルデータベース(RDB)と言われています。

ではSQLの役割は何でしょうか。リレーショナルデータベース管理システム(RDBMS)と対話するための言語をSQLと呼びます。上記例で言うと、社員の男女の数をカウントしたり、2018年2月7日に有給をとった人の氏名を取得したりといった具合です。また、2月10日に相沢さんが休んだ場合、そのデータを有給管理テーブルに挿入する必要があります。他には、社員が年をとった時には年齢を加算する必要があります。このようにデータベースに要求することをクエリ(問い合わせ)といいます。リレーショナルデータベース管理システムには「Oracle」「MySQL」や「Access」「PostgreSQL」などの様々な種類があります。中でも「MySQL」は、世界中で利用されているオープンソースのRDBMSの一つです。無償で高速である点が人気です。

次回はSQLのクエリについて学んでいきましょう。

非エンジニアでも知らないとヤバイCPU Part2

非エンジニアでも 知らないとヤバイCPU Part2

コア、クロック周波数

前回の非エンジニアでも知らないとヤバイCPU Part1
では、CPUの処理性能がわかるクロック周波数と、CPUの中心をになっているコアについて触れました。
今回は、処理を効率よく進めるためのキャッシュメモリとスレッドについて触れていきます。

処理全体のバランスをとるキャッシュメモリ

以前、CPUの処理速度がかなりのスピードで高速化していた。
しかし、データを記憶する記憶装置であるメモリの性能は大きく向上しなかった。
なので、両者の性能が大きく開いてしまった。
これによってどのような問題が起きるかというと、CPUが高速で処理をし、メモリからデータを要求した際に、メモリの反応が遅いので、CPUは処理を終えているが次の処理を行うことが出来ず、全体の処理速度が著しく下がってしまう。
この現象をメモリ遅延という。

この問題を緩和したのが、キャッシュメモリである。
CPUとメモリの間に高速なキャッシュメモリを設けて、速度差を緩衝している。
キャッシュメモリには、超高速の記憶素子であるSRAMを使用し、メインメモリには低速で安価なDRAMを使用する。
しかし、キャッシュ(1次)を設けても、CPUとメモリの差が大きすぎるので、なかなか処理速度の差が縮まらない。
そこで、1次キャッシュだけでなく、2次・3次キャッシュを設けることで、全体の速度バランスをとっている。
一般的にCPUから遠ざかるにつれて、キャッシュの速度を遅くなり、容量は大きくなる。

マルチタスク能力を上がるスレッド

スレッドとはCPUが同時に担当できる仕事の数。
1スレッドの場合、1つの仕事しかできないが、2、3スレッドを増えるにつれて同時にこなせる仕事が増える。
正確に言えば、同時に処理ができないわけではないが、1スレッドの場合に2つの仕事が来たときに余っているスペースで処理することはできるが、効率よく処理をこなすことができない。

スレッドが増えてもコア数が増えるわけではないので格段に処理能力が上がるわけではないが、複数の仕事を効率よく処理できるので、処理がスムーズになることを体感でき、マルチタスク能力が上がる。

まとめ

キャッシュメモリやスレッドなどの機能を駆使して、現在のコンピュータの処理速度は向上している。
次回もCPUの性能について触れていきます。

非エンジニアでも知らないとヤバイCPU Part1

非エンジニアでも 知らないとヤバイCPU Part1

そもそもCPUとは

CPUとは、Central Processing Unitの略で、日本語では中央演算処理装置と言い、別名はプロッセッサーです。
入力装置などから受けっとった値を処理し、出力装置などで結果を出力します。
CPUの内部は、演算部、メモリー部、外部入出力部から構成されています。
車で言うなら「エンジン」、人間で言うなら「頭脳」にあたり、パソコンに必ず搭載されている部品です。

CPUの処理性能がわかる「クロック周波数」とは

クロック周波数とは、CPUの名前の後ろに付いている数字のことです。値が大きいほど処理能力が高くなります。単位はGHzで、動作周波数の値です。例えば、32GHzなら1秒間に32億回の処理をしていることになります。

「コア」とは

CPUの中心を担っている部分が「コア」です。
以前、クロック周波数を高くすると、消費電力と発熱量が増大する問題がありました。
昔は、1基につき1コアが基本だったが、複数のコアを搭載することで、処理を分散し並列して行うことにより、クロック周波数を高める以外の方法で、処理能力の高速化を可能にしました。

最後に

いかがだったでしょうか。
また次回をお楽しみにしてください。

プログラミングを習う意義とは?

プログラミングを習う意義とは?

弊社が運営しているプログラミングスクール「Knocknote Education」では、講師が全員現役のプログラマーである事を強みとして「どうなってるの?」を「分かった」に変えられるだけの力と環境が揃っています。

プログラムは果たしてどこで使われているのか?

パソコンを前にして黒い画面を見ながら数字の羅列をカチャカチャしているだけのようなイメージや、結果として出来上がったプログラムもパソコンの中でのみ動いているようなイメージを持ちがちです。
しかしプログラムなんてものは実は毎日触れる機器の中にも当たり前のように入っていたしります。

  • 炊飯器
  • 湯沸かし器
  • 自動改札
  • 自動販売機
  • スマホ

とにかくありとあらゆる場所、物の中でプログラムは動いているのです。
では、さも当たり前に存在するプログラムを制御するプログラミングを習得する事にはどんな意義があるのでしょうか。

身につく力がある

論理的思考力

プログラムを作っていく為には上流から下流までの流れを順序立てて論理的に考える能力が必要です。
目的を明確化してそこに至るまでのプロセスを鍛える練習になります。

想像力

プログラムは頭で考えたものを実現するポテンシャルを秘めています。
逆説的に、想像できない限り何も作れないという事でもあります。

自発的学習能力

インターネット上にはプログラミングに関する様々なマニュアルや先人の知恵が無数にあります。
それら知識を理解して自分のやりたい事を自発的に学習して身につける訓練が自然と出来るようになっていきます。

問題解決能力

予測できない不測の事態に対面した時も原因を究明し、解決する為に何が必要か試行錯誤する必要がでてきます。
困難な事態に直面しても諦めずに打開策を考える能力の開発に役立ちます。

忍耐力

上記問題解決能力に近いのですが、プログラムに不具合が起きると、解決に時間がかかる事は少なくありません。
プログラムを一行一行凝視しながら問題の有りそうな箇所を修正しては修正しては確認。。。
泥臭い作業の中でもしかしたら我慢強さも鍛えられるかもしれません。

気楽に初めてみればよい

勿論今までに鍛えたことが無い能力が身についていくのは喜ばしい事なのですが、だからといって「勉強」という意識で身を構えてしまう必要はありません。

何か新しい事を始める為の気軽な第一歩として捉えてみればよいのです。
プログラミングが自分に合うか合わないか、判断するのはそのあとでも十分間に合います。

弊社KnocknoteEducationでは小学生から大人まで幅広くご参加いただける環境を用意しております。
まずは体験授業から、是非ご参加ください。

プログラミングスクール プログラミングスクール TETRA UP

謎?のボタン[CapsLock]キーの使い道

謎?のボタン[CapsLock]キーの使い道

文字入力中に急に出てくる大文字

キーボードで文字入力をしていてよく聞くトラブルに
いきなり大文字しか打てなくなった!壊れた!
というハプニングがあります。

もちろん壊れた訳ではないのですが、
・何がどうなってそんな事になったのか、
・何の機能なのか、
・元に戻すにはどうすればいいのか、

が分からず右往左往。。。

ただでさえキーボードにはボタンが多いですし、どれを押せばよいか全く分からず、初めて遭遇してしまった暁には途方に暮れてしまうなんて状況も1度位はあったのでは?

回はそんな事になってしまう最大の原因である [Caps Lock] について。

ひとまず、CapsLockのONとOFF

◆ Windowsの場合
windowsの標準キーボードの場合は大抵の場合[A]ボタンの左隣に[CapsLock]ボタンがあります。
⇒ [Shift] + [CapsLock]

◆ Mac(日本語キーボード)の場合
キーボードの左下に[caps]キーがあります。
オン状態では緑のライトが点灯するので状態が分かり易くなっています。

CapsLockって?

「Caps」はCapital letters(大文字)の略称文字です。
入力を大文字のみにロック(限定)するという意味でしょう。

いつ使うの?

英語入力モードで大文字のみを使いたい時。

ぐらいですかねー。
いやいやいや、実は他にも隠された機能があるんじゃないの?
なんて思いますが、本当にそれだけです。

何のためにあるの

タイプライター

上記のためだけにあるような一見なぜ実装されているかも謎のボタンですが、実はcpasロックキーの歴史は結構長いです。
パソコンが登場するより以前、タイプライターが主流だった時代、大文字を入力する時は「Upper case」小文字を入力する時は「Lower case」と切り替えていたそうです。
この「Upper case」キーこそが[CapsLock]キーの原型と言われています。

現在のパソコンは[Shift]キーを押しながら打てば大文字入力ができるのでCapsLockはもはや必要のないキーの一つなのですが、タイプライター時代の名残がいつまでも残っているという訳です。

結局使うの?

html等で文字を入力する機会が多い場合なんかは月に数回ほど使ったりしますが、
基本的には忘れてしまってよいボタンと言えそうです。

どころか、ふとした時にオンになるため、パソコン初級者だと戻し方が分からずあたふたしてしまう原因の元ということで嫌われている機能でもあるようです。

極論:使い道はありません! と思います!
悲しいボタンです。

プログラミング入門にはコレがおすすめ!いろいろあるプログラミング言語

プログラミング入門にはコレがおすすめ!いろいろあるプログラミング言語

いろいろある!プログラミング言語

まったくプログラミングをしない人でも、C言語やjavaは聞いたことがあるのではないでしょうか。
C言語は1970年代に誕生した言語で、今では学校の授業で必須になっていたり、世界的に普及しているのでかなりメジャーです。書き方もプログラミング入門にふさわしい言語といえます。

C言語は派生もあり、オブジェクト指向を取り入れたC++(シープラスプラス、シープラプラ)や、Unityでのゲーム開発も可能なC#などが有名です。

javaもC言語と同様世界的に有名なプログラミング言語です。androidのスマホアプリや、金融系のシステムなど様々なプログラムがjavaで組まれています。
ほかにも日本人が開発したオブジェクト指向のスクリプト言語のRubyや、iOSアプリを開発するためのswift、objective-cや、人工知能の開発などが得意なオランダうまれのインタプリタ言語pythonなどが有名です。pythonはpepper(ペッパー)のアプリ開発にも使います。

プログラミング入門

プログラミング入門におすすめな言語とは

C、C++、C#、java、Ruby、swift、objective-c、python、php、javascript・・・様々なプログラミング言語がありますが、プログラミング入門の際、はじめて学ぶプログラミング言語としては一体どれがいいのでしょうか。
Cやjavaは書籍やネットでの情報も多く、歴史ある言語なので、開発環境さえ整えてしまえば勉強はしやすいでしょう。構文も基礎を固めるプログラミング入門にふさわしいといえるでしょう。
他におすすめな言語はPHPです。様々なWEBサービスがPHPで作られています。サーバーサイドのスクリプト言語で書き方も細かくなく、プログラミングを楽しみながら始めてみたいひとにおすすめです。
加えて見た目の部分を構築する、HTMLやcss、jQueryやjavascriptを学習しながら、自分でホームページやWEBサービスをつくってみるといいです。弊社プログラミングスクールWISHのWEBプログラミングコースでも48時間の学習後16時間を使い、実際にWEBサービスを実装してもらいます。学んだ成果が目に見えるプログラミングって本当に楽しいですよね!

プログラミングスクール

絶賛オープンキャンペーン中!入会料無料&受講料20%オフ!

プログラミングスクール

ウェブサイトの仕組みを知る! html編 其の3

[ウェブサイトの仕組みを知る!]
html編
其の1 : ウェブサイトの仕組みを知る! html編 其の1
其の2 : ウェブサイトの仕組みを知る! html編 其の2

css編
其の1 : ウェブサイトの仕組みを知る! css編 其の1


ページを構成するもの

前回htmlの文法についてお話しさせていただいたように、htmlを記述するためのルールというものが存在します。
web上には無数のホームページ、webサイトが存在しています。
様々なジャンルの、様々な形式のwebサイトがあり、それぞれデザインも機能も目的も異なっていて、一つとして全く同じwebサイトというものはありません。正に千差万別です。

しかし、どんなにジャンルやデザインが違っていても、それぞれのwebサイトを構成している根本的な要素はほぼ同じなんです。
今回はその辺りの、html文書の構造についてお話ししていきたいと思います。

大きく2つにわかれる

まずは例のごとく、いつも見ているページのソースを見てみて下さい。
何ページか見ていると、このタグ毎回見るなー、というものがいくつかあると思います。
デザインによって視覚的に差異はあっても、それらの要素によってそれぞれのページは構成されているのです。

まずはhtml文書は大きく2つに分けることができます。
それはヘッド要素とボディ要素です。

<head><body>というタグは、どこのソースを見ても発見できたと思います。

ヘッド要素内には、そのページの情報や概要が記述されています。
そのページは何について書かれたページなのか、ページのキーワード、ページのタイトルなどです。
これらの情報をメタ情報とも呼びます。

ソースコード上部のヘッド要素のなかに
<meta>
というタグが多く含まれていると思います。

基本的にこれらの情報はページには表示されません。
しかし、Googleやyahooなどの検索エンジンはここの情報から、どのようなwebサイトなのか判断しています。
なので、SEO対策を行う際には、ヘッド要素の情報の編集がカギになってくると言えます。

ボディ要素内はページの内容です。目に見える部分を指定しています。
webサイトの核とも言える部分ですね。

<body>で囲まれている中に、よく探してみると
<h1><h2>
といったタグを確認できると思います。

これらは見出しです。大見出しや中見出しなど、レベルに応じて設定していきます。

より見やすいページを作成するためには、見出しの使い方が大切であると言えるでしょう。

段落や改行なども要素として処理されます。

例えば、改行には<br>というタグを指定します。
このように、ある程度html文書の構造は決まっているのです。