期間限定

キャンペーン中

体験授業申込

非エンジニアでも知らないとヤバイSQL Part6 〜似て非なるTRUNCATEとDROP〜

非エンジニアでも知らないとヤバイSQL Part6 〜似て非なるTRUNCATEとDROP〜

前回はテーブルのデータの更新と削除を行うための「UPDATE」と「DELETE」について学びました。
今回、学んでいくのは削除を行うための「TRUNCATE」と「DROP」です。

Part1からの内容が気になる方は非エンジニアでも知らないとヤバイSQL Part1をご覧ください。

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

前回のおさらい

まずは前回学んだ「UPDATE」と「DELETE」についての軽いおさらいをしていきましょう。

UPDATE
[sql]UPDATE t_employee SET name=’鮎川’AND age=’20’ WHERE no=5;[/sql]

DELETE
[sql]DELETE FROM t_employee WHERE no=5;[/sql]

このようにして書くのが「UPDATE」と「DELETE」です。こちらから前回の復習ができます→前回の記事

今回の内容

今回学ぶのは「TRUNCATE」と「DROP」という削除に関する構文です。
「えっ?削除はDELETEを使うんじゃないの?何が違うの?」と思われる方もいるかもしれません。
削除をするという点では三つとも同じですが実はまったく違うものなんです。

しっかり把握せずに使って顧客のデータを全て消してしまった…なんてことにならないようここでしっかり押さえておきましょう。

「TRUNCATE」って?

TRUNCATEを使うとテーブルを削除することができます。
下のようにして使っていきます。

[sql]TRUNCATE TABLE (テーブル名);[/sql]

このように書くことでテーブルのデータを一括で消すことができます。また、テーブルの構造は消さずに残しておいてくれます。

DELETE文でもテーブルを一括で消すことができますが、TRUNCATEの方が高速で処理を行ってくれます。
テーブルの全部の行を一括で消すものの、WHERE句での指定はできないというところもDELETEとの違いになります。
※DBMSによって異なりますが、MySQLではロールバック(復元)が出来ません。

実際に試してみます。

これがもとの「t_employee」テーブルです

下のように書き込むと
[sql]TRUNCATE TABLE t_employee;[/sql]

構造だけ残して全部のデータが消えます。

データが空っぽです、と表示されます。

したがって、
・テーブルのデータを一括で早く消したい
・テーブルの構造は消さずに残しておきたい
という時に使えます。

DROPって?

DROPは同じくデータを一括で消してくれる文です。
下のように書きます。
[sql]DROP TABLE (テーブル名);[/sql]

TRUNCATEと同じくテーブルのデータを一挙に消してくれます。
TRUNCATEと違うところはテーブルの構造自体も残してくれないというところです。
※これもDBMSによって異なりますが、MySQLではロールバック(復元)が出来ません。

これも試してみます。

もう一度このテーブルを用います。

下のように書くと
[sql]DROP TABLE t_employee;[/sql]

構造ごとデータが消えます。

「t_employee」というテーブルそのものがありませんという風に表示されます。

したがって、
・テーブルの構造ごと一括で消したい
という時に使えます。

まとめ

いかがでしたでしょうか?
・TRUNCATEとDROPはテーブルのデータを一挙に消すことができる。
・違いは構造を残してくれるかどうか
・どちらもMySQLではロールバックができない

ということがわかりました。

次回はテーブルとテーブルを結合させる「JOIN」について学んでいきましょう。

非エンジニアでも知らないとヤバイSQL Part5 〜UPDATEとDELETEでデータを編集〜

非エンジニアでも知らないとヤバイSQL Part5 ~UPDATEとDELETEでデータを編集~

前回はテーブルにデータを追加するためのINSERT文について学びました。

SQLについてから気になる方は非エンジニアでも知らないとヤバイSQL Part1をご覧ください。

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

前回のおさらい

前回学んだINSERT文はテーブルにデータを追加するためのSQL文でしたね。

[sql]INSERT INTO t_employee VALUES(9,’山本’,23,’女’);[/sql]
こういうのです。忘れてしまった方はこちらから→非エンジニアでも知らないとヤバイSQL Part4 〜INSERT句でデータを追加〜

今回のテーマ

さて、今回勉強するのは「UPDATE」「DELETE」です。
「UPDATE」はデータを更新するためのSQL文で、
「DELETE」はテーブルからデータを一行ずつ削除していくSQL文です。
※「DELETE」以外に「TRUNCATE」と「DROP」という削除のSQL文がありますが、それぞれ別のものです。それについてはまた今度学んでいきましょう。

「UPDATE」文って?

では「UPDATE」からですね。「UPDATE」はデータを更新したい場合に使うSQL文で、このように書きます。

[sql]UPDATE (テーブル名) SET (列名)=(データ);[/sql]

例えば、このテーブルのデータを変えたいときは

こんな風に書き換えます。
[sql]UPDATE t_employee SET name=’鮎川’AND age=’20’ WHERE no=5;[/sql]

UPDATEの後にテーブルを選択肢、どこの列にどんなデータを入れなおしたいかをSETで指定すればいいんですね。

「DELETE」って?

「DELETE」文はデータを削除したいときに使う文です。
SQL文はこのように書きます。

[sql]DELETE FROM (テーブル名);[/sql]

これでテーブルからデータを削除できます。
実際にやってみますね。

[sql]DELETE FROM t_employee;[/sql]

はい、これで全部のデータを消すことができました。
しかし、DELETE文は全部のデータを消すだけではなく、WHERE句で場所を指定することもできます。

こんな風に書くことで
[sql]DELETE FROM t_employee WHERE no=5;[/sql]

データの一部を消すことができます。

まとめ

UPDATE文とDELETE文はデータを更新し、削除するものです。データベースを更新、削除することは頻繁にあります。この文の使い方を覚えておくと非常に便利になるでしょう。
次回は今回やったDELETE文と似ていてまぎらわしい「TRUNCATE」と「DROP」文について学びましょう。

非エンジニアでも知らないとヤバイ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等で文字を入力する機会が多い場合なんかは月に数回ほど使ったりしますが、
基本的には忘れてしまってよいボタンと言えそうです。

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

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