期間限定

キャンペーン中

体験授業申込

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

はじめに

今回は競合の解決について説明する。
前回までの記事はこちら
非エンジニアでも知らないとヤバイGit Part1
非エンジニアでも知らないとヤバイGit Part2

競合の発生

リモートリポジトリとローカルリポジトリで同じ箇所を変更していた場合に競合が発生する。
このような場合はどちらの変更を採用するかを自動的に判断することができないためにエラーが発生する。

競合を作る

同じリモートリポジトリを共有している2人のユーザー、User1とUser2を用意する。
まずはUser1でindex.phpにコードを追加する。

画像
Gitを簡単に使用できるGUI、SourceTreeでコミット・プッシュを行う。(コミットメッセージ:おはようございます。を追加)

画像
次に、User1が追加したものと異なるコードを、User2で同じ箇所に追加する。

画像
準備ができたのでターミナルからGitの操作をする。
まず、変更したファイルをステージングに追加する。
[sql]
git add (ファイル名)
git add index.php
[/sql]
次にコミットメッセージを入力してコミットする。
[sql]
git commit -m ‘コミットメッセージ’
git commit -m ‘Good Morning!を追加’
[/sql]
この状態でプッシュするとこのようなエラーが発生する。
[sql]git push[/sql]
[sql]
To https://bitbucket.org/username/test.git
! [rejected] master -> master (fetch first)
error: failed to push some refs to ‘https://username@bitbucket.org/username/test.git’
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., ‘git pull …’) before pushing again.
hint: See the ‘Note about fast-forwards’ in ‘git push –help’ for details.
[/sql]
これで競合が発生した。

競合の解決

他のユーザーがプッシュしたものがあると書かれているので、まずはプルする。
[sql]git pull[/sql]
[sql]
remote: Counting objects: 3, done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.
From https://bitbucket.org/username/test
4754cf1..f75253f master -> origin/master
Auto-merging index.php
CONFLICT (content): Merge conflict in index.php
Automatic merge failed; fix conflicts and then commit the result.
[/sql]
index.phpで競合が発生してると書かれている。
エディターで競合しているファイルを開くと競合箇所が表示されている。

画像
今回はUser2の変更内容で競合を解決する。
ピンク色のUse meボタンを押して、競合を解決し再び対象のファイルをステージングに追加し、コミットメッセージに競合解決したことがわかるようにメッセージを入力し、プッシュする。
[sql]
git add index.php
git commit -m ‘競合を解決’
git push
[/sql]
User1のSourceTreeでプルをして変更を確認。

画像
User1のローカルリポジトリのindex.php

画像

最後に

今回は競合について説明した。
次回はSourceTreeについて説明する。

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

はじめに

前回は、Gitの基本的な機能、リモートリポジトリ・ローカルリポジトリ、コミットについて説明した。
今回は、 Gitの機能の1つであるクローン、Push、Pullについて説明する。

クローンとは

共同で開発を進める際に作業を分担することがよくある。必ずしも同じタイミングで全員が作業に参加する訳ではないので、工程によって作業のスタートがずれることがある。
後から作業に参加する開発者は、どのような意図・状況で現在の状態になっているのか把握できなくなる。
しかし、このような問題はGitのクローン機能を使用すれば解決できる。
クローンは、すでに変更履歴が存在するリモートリポジトリ複製し、自分のマシンにローカルリポジトリを作成する操作。
リモートリポジトリの内容をまるごと自分の手元のマシンにダウンロードできる。
ただソースコードをダウンロードするのではなく、変更履歴も複製されるので、過去の履歴を参照して状況を把握しやすくなる。

Pushとは

前回も説明したが、Gitでは複数の開発者が共有しているリモートリポジトリを使って、各自のマシンにダウンロードされているローカルリポジトリの変更履歴を共有することでバージョン管理をしている。
Pushは各自のマシンのローカルリポジトリの変更履歴を、複数の開発者が共有しているリモートリポジトリにアップロードする操作のこと。
Pushを行うとPushしたローカルリポジトリとリモートリポジトリの変更履歴が同じ状態になる。

Pullとは

Pushを行っただけの段階では、Pushした開発者以外はリモートリポジトリと自分のマシンのローカルリポジトリは同じ状態ではない。
リモートリポジトリ自分のマシンのローカルリポジトリの状態を一致させるには、Pullという操作を行う。
Pullは、Pushの反対で変更履歴をダウンロードして自分のマシンのローカルリポジトリを、最新のリモートリポジトリの状態に更新する。
最後にPullした後に、他の開発者と同じファイルを作業していて他の開発者が先にPushして、その後自分がPushを行う場合は自分のPushは拒否される。
このように作業ファイルが衝突した場合は、他の履歴での変更を取り込む(マージ)までは自分のPushは拒否される。
これは、そのままPushできてしまうと先にPushした開発者の変更履歴が上書きされて消えてしまうからだ。

最後に

今回は、クローン、Push、Pullについて説明した。
次回は、マージについて詳しく説明する。
画像

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

そもそもGitとは

Gitは分散型のバージョン管理システム。
分散型とは、リポジトリと言われる開発過程が保存されているデータベースが自分やチームのマシン(パソコン)に入っているタイプ。
バージョン管理システムは、コードなどの開発過程を記録しながら開発を行うためのシステム。

リポジトリとは

Gitではリポジトリを使ってソースコードなどの変更の履歴を管理する。
リポジトリは、ソースコードなどの変更の履歴を記録するデータベース。

ローカルリポジトリとリモートリポジトリ

Gitでは、自分のコンピュータ内にあるリポジトリをローカルリポジトリ、自分のコンピュータ外にあり、複数人で共有することが可能なリモートリポジトリがある。
ローカルリポジトリがあることで、開発者はそれぞれオフラインの環境でも作業が可能になる。

Gitの基本的な機能

リモートリポジトリでの開発環境の共有は3段階で行われる。
1.ワークツリーというバージョン管理の対象になっているファイルやフォルダ(ディレクトリ)の中で変更があったものを、ステージングエリア(変更があるファイルやフォルダのリスト)に追加する(ステージング)
2.ステージングエリアの変更があったファイルやフォルダをローカルリポジトリに登録(コミット)
3.ローカルリポジトリに登録された情報をリモートリポジトリに追加(プッシュ)

ステージング、コミット、プッシュの3つの工程でバージョン管理を行う。

変更の記録を行うコミット

コミットを行うとリポジトリ内で、前回コミットした時の状態と現在の状態の差分を記録したコミット(リビジョン)と呼ばれるものが作成される。
ここでできたコミット(リビジョン)は、時系列順につながった状態でリポジトリに格納される。
コミットをたどることで、過去の変更履歴・内容を知ることが出来る。

コミットメッセージ

コミットを行う際には必ずコミットメッセージを要求される。
コミットメッセージには、その時の変更内容・理由を記入する。
内容の違う複数のファイルを一度にコミットするとのちにコミットをたどり変更した箇所を探す際に見つかりづらく確認しづらいので、内容ごとに項目を分けてコミットする。

最後に

今回はGitの概要とコミットまで紹介した。
次回はプッシュについて紹介する。
画像

デスクワークで腰を痛めないためにすべきこと3選

いつの時代もデスクワーカーにとって腰痛・肩こりは大きな課題ではないでしょうか?

同じ姿勢を長時間続けて身体が痛くなったという経験をしたことがある方は多いと思います。
身体を痛めずに仕事をすることができたらいいですよね。生産性の向上にもつながると思います。

ここでは座りながら仕事をするときに身体を痛めない方法をまとめてみました。

良くない姿勢

もともと、人間の身体は長時間デスクワークできるようにはなっていません。
腰への負担は立っているときよりも40%も多いと言われてます。
まずは、多くのデスクワーカーがやってしまいがちな悪い姿勢の例を紹介します。

椅子に浅く座る


姿勢が不安定になってしまうのでバランスが悪く、腰に負担が大きくなってしまいます。

背筋を曲げて座る


この姿勢に思い当たりのある人もいるのではないでしょうか?
パソコンを覗き込んでいると、目線が下向きになり背中も丸くなってしまいがちです。
そして背中が丸まると骨盤が後ろに行き、座る姿勢がつらくなってきます。

足を組む


足を組む癖がある人は腰のゆがみがある可能性があります。身体のバランスを取ろうとして足を組んだときに気持ちよく感じるのだそうです。
背骨や骨盤がゆがんでしまうのでやめた方がいいです。

するべきこと

1.背筋を正す


よく「背筋を正しなさい」と言われると、胸を張って背筋をピンと張った状態にする子がいますが、これは逆効果で反り腰になり背筋がピンと張ってしまいます。

正しい猫背の伸ばし方の感覚をつかむにはひざ立ちをしてみてください。猫背の人なら背筋が伸びて息をするのが楽になるのがわかると思います。これは腿の骨が骨盤に安定して乗り、無条件に背筋が伸びるためです。

ひざ立ちで感覚をつかむと正しい猫背が出来、正しい姿勢に近づけるはずです。

また、肩が上がりがちな人は肩をあげないようにすることも心がけてください。
肩があがってしまうと背中の筋肉が丸まり正しい背筋をキープしにくくなります。キーボードの高さも調整するといいです。私もこの方法を実際に試したら楽に感じました。

2.椅子に正しく座る


普段、椅子に座るときどんな姿勢をしてますか?
身体を丸める姿勢は背中・肩・腰への負担が大きく、いい姿勢とは言えません。
浅く座ってダラーンとした姿勢は体が伸びて一時的には楽に感じるかもしれません。ですが、この姿勢は腰に負担がかかり、長期的に座り続けるのはおススメできません。

いい姿勢とは、骨盤を立てて椅子に深く腰をかけ、約5度ほど前傾になりまっすぐに座る姿勢です。
深く座り骨盤を立てて軽く前傾してあげることで背中のカーブが自然な形になり、負担のない姿勢になります。

3.モニター・キーボードの位置を変えてみる

最後は、環境の改善です。座ってる姿勢が正しくてもデスク周りのものの位置が悪いと身体の負担になります。
以下がデスク周りの正しい画像です。

出典:FUJITSU

この画像を見ながら
・モニターの角度は適切か?
・椅子は自分にあってるか?
・キーボードの高さは適切か?

等を確認してみてください。

また、少しお金が張るかもしれませんが、正しい姿勢にしてくれるアーロンチェアやモニターの位置を変えてくれるアームの導入も手の一つです。実際、これらを導入して社員の生産性がアップした企業もあるそうです。
しかし、周りのものを揃えたからと言って正しい姿勢をしなくては効果はありません。意識して正しい姿勢にしましょう。

まとめ

いかがでしたでしょうか?
同じ姿勢をずっと続けるデスクワーカーにとっては身体の痛みは永遠の課題とも言えると思います。
生産性をあげるためにも有用だと思うのでぜひ3点を実践して身につけてみてください。

日本にプログラミング教育って本当に必要?

日本にプログラミング教育って本当に必要?

2020年から日本の公立小学校ではプログラミングが必修化されることが明示されました。
そこでプログラミング教育って本当に必要なのかについて一緒に考えてみませんか?

そもそもプログラミング教育って?


プログラミング教育と聞くと、子供たちがPCに向かって難しいプログラミング言語を延々と書くイメージと勘違いされがちです。
文部科学省によると、小学校段階でのプログラミング教育とは、
“コンピュータに意図した処理を行うよう指示することができるということを体験させながら、将来どのような職業に就くとしても、時代を超えて普遍的に求められる力としての「プログラミング的思考」などを育むこと”
だそうです。
海外のプログラミング教育について気になる方は、海外のプログラミング教育はどうなってる?をご覧ください。

プログラミング未経験者の声


プログラミング未経験者からするとプログラミングってどんなイメージでしょうか?またこれから勉強したいですか?
“難しそう”  “理系がすること”
など勉強したい人が少数であるのが現状です。
では別の質問です。
将来の子供にプログラミング教育は必要ですか?
この質問には8割以上の方がイエスと回答しました。
“出来るに越したことない” ”これからの社会に必要”
という回答が多数でした。プログラミングがこれからの社会に必要であることが分かってきましたか?

プログラミング経験者の声

経験者の方はコードを書くことについて楽しいと感じているという意見が多数でした。
なぜなのでしょうか?
“パズル感覚” ”書いた通り動いてくれるから”
という意見でした。
また、将来のプログラミング教育については、
“今後プログラミングの需要はどんどん増える” ”これからパソコンが使えると便利”
と、未経験者と同様に必要という声が多数でした。

国の狙い

日本においてプログラミング教育を行う目的は一体何なのでしょうか?
文部科学省によると、
将来の予測が困難な時代の中で、これからの子供たちに求められるのは、これまでにないような全く新しい力ということではなく、従来からも重視されてきている読解力や論理的・創造的思考力、問題解決能力、人間性等について、加速度的に変化する社会の文脈の中での意義を改めて捉え直し、しっかりと発揮できるようにすること
となっています。
ここから分かるように、プログラミングの達人になることが目的ではありません。変化の速い情報化社会の中で生き残っていく人材の育成が最大の目的です。

まとめ


結論から言うと、プログラミング教育は必要です。主な理由は2つあります。
情報通信技術を手段に出来るようになるため
現在の情報技術の発展は目まぐるしく発展しています。そこに対して理解がないとこれからの社会に置いていかれる可能性があるからです。
グローバル社会に柔軟に対応出来るようになるため
現在は皆さんの思う以上に世界との距離が近いです。どこの国でも働くにはITに関する知識が必要です。

この2点よりまずは、情報技術アレルギーにならない為にもプログラミング教育が必要です。
プログラミング教育の必要性を分かっていただけましたでしょうか?

最後に

プログラミングを独学で行うと挫折することがしばしばあります。プログラミングを学んでみたい方、子供も大人も学べる!新宿四ツ谷のプログラミング教室Knocknote Educationへお気軽にお問い合わせください。只今春のキャンペーン中につき、入会金無料です!
また社会人等でお時間があまりない方は、短期間でプログラミングを身に付けれる64時間で”なりたい”を叶えるプログラミングスクール「WISH」にお気軽にお問い合わせください。現在無料カウンセリングや、入会金無料キャンペーン、さらに受講料20%オフのキャンペーンを開催しております。
プログラミング教室 新宿 大人

湯桶読みと重箱読み

湯桶読みと重箱読み

プログラミングではよく「引数」という単語が出てきます。
引数がどういった役割を持つかはさて置いて、「引数」は”いんすう”とも読めますが一般的には”ひきすう”と読みます。

「因数(いんすう)」と混同してしまう事態を避けるために、あえて”ひきすう”と読む事が慣用化した結果なのだそうです。

この「引数」のように音読みと訓読みが混じり合った単語の読み方は「湯桶読み(ゆとうよみ)」もしくは「重箱読み(じゅうばこよみ)」と言われます。

●湯桶読み = 訓読み + 音読み の組み合わせ
●重箱読み = 音読み + 訓読み の組み合わせ

その前に、訓読みと音読みの例

春:訓読み – はる | 音読み – シュン
夏:訓読み – なつ | 音読み – カ
秋:訓読み – あき | 音読み – シュウ
冬:音読み – ふゆ | 音読み – トウ

馴染み深い?浅い?

湯桶読み、重箱読みは時に違和感を覚えることがあります。

苗字だと例えば
佐藤 → 湯桶読み:すけトウ 重箱読み:サふじ
鈴木 → 湯桶読み:すずモク 重箱読み:リンき
高橋 → 湯桶読み:たかキョウ 重箱読み:コウはし

一瞬で聞き覚えのない苗字になってしまいました。

湯桶読みの例

  • 合図(あいズ)
  • 赤点(あかテン)
  • 内税(うちゼイ)
  • 株式(かぶシキ)
  • 釣銭(つりセン)
  • 豚肉(ぶたニク)
  • 店番(みせバン)

重箱読みの例

  • 駅前(エキまえ)
  • 王様(オウさま)
  • 客間(キャクま)
  • 牛丼(ギュウどん)
  • 毒茸(ドクきのこ)
  • 曜日(ヨウび)

普段は意識しないけれども

普通に生活している分にも良く耳にする単語も多いです。
苗字の湯桶読み、重箱読みは違和感がありましたが、やはり聴き慣れているかいないかの違いもあるのかもしれません。

意外だったのが「肉」が音読みだった事です。
てっきり訓読みだと思い込んでいたのですが、音読みが「ニク」で訓読みだと「しし」と読むそうです。

漢字ってむずかしいですね〜!

海外のプログラミング教育はどうなってる?

海外のプログラミング教育はどうなってる?

2020年からプログラミング教育が必修化されるのはご存知ですか?

去年3月に発表された新学習要項では2020年からプログラミングが必修化されることが明示されました。
しかし、具体的にプログラミングの授業とは一体どんなことをするのでしょう?
女性が子供達に教えている画像

そもそもプログラミング教育とは?

実はプログラミング教育とはC++やJavaなどのいわゆるプログラミング言語を学ばせて、プログラマーを育てることが目的ではありません。
無理やり小学生に英語で複雑なコードを書かせるような授業をしてはむしろ子供達にプログラミングは難しい、との先入観を持たせてしまうかもしれませんし、教師にだって負担が大きすぎます。

プログラミング教育とは何か?
ずばり、プログラミング的思考を身につかせる、身の回りのもののあらゆるものがプログラミングによって動いていることを実感することを目的とした教育です。


もう少し具体的にいうと「どうしてこういう動作をしているのか?」「どうして思った通りの動作をせずエラーが出てくるのか?」「この繰り返しの動きはプログラミングで自動化できるのではないか?」といったことを学ぶ、ということです。

海外のプログラミング教育は?

では現在行われているプログラミング教育はどういうものなのか海外を例にあげて見ていきましょう。
国旗の画像

  • イギリス

  • 小学校のプログラミングの授業ではScratchやBee-bot(知育玩具)を使って授業がされています。
    中学校になるとScratchだけでなく、※Pythonと呼ばれるプログラミング言語を用いて教えているところもあるようです。
    イギリスではすでに2014年から「computing」が授業として組み込まれているようで内容もレベルが高いですね。
    生徒と先生

      指導内容

    • アルゴリズムとは何かを理解する。
    • 簡単なプログラムを作成する。
    • コンピューターネットワークを理解する。
    • など

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

  • アメリカ(カリフォルニア州)

  • 指導者不足や予算不足のため必修化はされていなく、学校によって授業は委ねられています。
    授業を行なっているところだと初等教育ではScratch、中等教育ではJava,C/C++が使われているそうです。

    英字新聞

      指導内容

    • 学校の裁量によって決められている
    • プログラミムの実行、デバッグ
    • 基本アルゴリズム(データ構造、探索、ソート

     
     

    カリフォルニア州では必修化はされてないんですね。指導者不足の問題は日本も人ごとではないかもしれません。
    現在は社会人向けの「プログラミングブートキャンプ」が盛んであったり、「Code.org」と呼ばれるNPO団体が無料でプログラミング教材を公開するなどプログラミング教育にかなり力を入れているようです。

     

    Knocknoteでも忙しい社会人向けの短期プログラミングスクールを開催しています。プログラミングに興味があるけど時間が無い方、プログラミングをしっかり学びたい方はぜひご参加ください。
    64時間で”なりたい”を叶えるプログラミングスクール「WISH」

     
     
     

  • 韓国

  • 韓国ではかなり早くからプログラミング教育に力を入れているようで2007年頃から本格的にプログラミング教育が始まっていて、
    小学生では「情報リテラシー教育(注:情報を適切に扱う力を養う)」を中心に、中学校からは「Scratch」「Python」を使ったプログラミング教育が行われていて
    幼い頃から学ぶことで問題解決法を身につけたり、産業界への人材供給も目標にされています。
    韓国語

      指導内容

    • コンピューター思考を学ぶ
    • 問題解決方法を学ぶ
    • プログラミングの基礎を学ぶ
    • など

    まとめ

    いかがでしたでしょうか?
    海外の初等教育ではスクラッチを使っているところも多く、プログラミング的思考を学んだり、プログラミング基礎を学ぶことが目標にされています。
    スクラッチは視覚的にわかりやすく、難しい構文を書く必要がないため海外でも人気のようです。
    日本も海外を参考にしたプログラミング教育を導入する可能性は大いにありえますね。

    スクラッチについての記事→スクラッチがすごい

[PHP] isset、empty、is_null関数の挙動まとめ

[PHP] isset、empty、is_null関数の挙動まとめ

phpで存在するか否かを調べる関数にisset, empty, is_nullがあります。
どれがどのように判定されるのか、迷うことが多いので一覧にしてみます。

isset empty is_null
$var FALSE TRUE TRUE
$var = “” TRUE TRUE FALSE
$var = “hoge” TRUE FALSE FALSE
$var = 0 TRUE TRUE FALSE
$var = 1 TRUE FALSE FALSE
$var = 0.0 TRUE TRUE FALSE
$var = 0.1 TRUE FALSE FALSE
$var = “0” TRUE TRUE FALSE
$var = “1” TRUE FALSE FALSE
$var = “0.0” TRUE FALSE FALSE
$var = “0.1” TRUE FALSE FALSE
$var = TRUE TRUE FALSE FALSE
$var = FALSE TRUE TRUE FALSE
$var = NULL FALSE TRUE TRUE
$var = array() TRUE TRUE FALSE
$var = array(1,2) TRUE FALSE FALSE

で、論理演算子の否定「!」を付与すると当然ながら正反対の結果となります。

!isset !empty !is_null
$var TRUE FALSE FALSE
$var = “” FALSE FALSE TRUE
$var = “hoge” FALSE TRUE TRUE
$var = 0 FALSE FALSE TRUE
$var = 1 FALSE TRUE TRUE
$var = 0.0 FALSE FALSE TRUE
$var = 0.1 FALSE TRUE TRUE
$var = “0” FALSE FALSE TRUE
$var = “1” FALSE TRUE TRUE
$var = “0.0” FALSE TRUE TRUE
$var = “0.1” FALSE TRUE TRUE
$var = TRUE FALSE TRUE TRUE
$var = FALSE FALSE FALSE TRUE
$var = NULL TRUE FALSE FALSE
$var = array() FALSE FALSE TRUE
$var = array(1,2) FALSE TRUE TRUE

なかなかややこしいですね!

非エンジニアでも知らないとヤバイ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」文について学びましょう。