テックエキスパート体験レポートDAY12日目。
テックエキスパートの評判などを調べていると「メンターが現役エンジニアじゃないからダメ」みたいなことを言っている人がいますが、実情は少々違うようなのでお伝えできればと思います。
まずテックエキスパートの学習は、入ってから最初の2週間が基礎学習といってRubyやRailsなどの基礎を学ぶ期間です。
この間は教室に常駐しているメンターにいつでもなんでも質問することができます。で、このメンターの人はテックエキスパートの卒業生でそのままメンターやっているパターンが多いようです。
一方で基礎が終わると応用というコースに入ります。そうすると質問などを含め教えていただくのは今までのメンターとは異なる人たちになります。
この方々の素性は今のところ分からないのですが、恐らく専門的な知識を持っているエンジニアには違いないと思います。
というのも応用カリキュラムからは質問などは全てオンラインで行うことになっているからです。
本当に現役の方かどうかはまだ分かりませんが、少なくとも素人に毛が生えたような人が教えている訳ではないように思いますので、そこのところは安心して良いかな?と思っています。
アプリケーション開発の手順
WEBアプリケーションを作っていく手順は「企画▶︎設計▶︎開発▶︎公開」の大まかな手順。この中の作業を分業でやる場合もあるし、一気通貫で行う場合もある、その辺は規模感にもよる。
で、実際にコーディングをするのは「開発」の部分となり、「フロントエンド」と「バックエンド」の開発が進む。
具体的なプロセス
もう少し具体的なプロセスに落とすと下記のように分かれる。
・機能の洗い出し
・ワイヤーフレーム
・DBの設計
・雛形作成
・大きな機能から実装
・テスト
・調整
・デプロイ
SQLでの指示
SQLで指示を出すには出し方がある。SQL で出来る事は大きくDDLとDMLに分けられる。
DDLの命令はCREATEやDROPなど。 DMLはINSERTやSELECTなど。
DDLというのはData Definition Languageの事で、簡単に言えばデータを定義する事。DMLはData Manipulationの略で、既存のデータを触るイメージ。
データベースに接続
mysql -u root
—u ユーザーを指定
—root rootで接続
データベースを一覧で表示
show databases;
セミコロン忘れがちなので注意。
データベースを作成
create databese user;
userはデータベース名なので任意でOK.
カラムを指定したい場合は以下のように記述する
create table user(name:int);
mysqlでカラムの型はintなどを使う
参考記事;【MySQL】データ型一覧
テーブル構造の確認
SHOW COLUMNS FROM テーブル名;
これで現在テーブルがどうなっているかを確認することができる。
ALTERを使ってテーブルの修正や変更
ALTER TABLE¥を使うと、カラムの追加や削除、制約の追加など様々な変更をテーブルに加えることができる。
alter table user add name int;
userはテーブル名、nameはカラム名、intはカラムの型。
カラムの修正はこん感じ
alter table user change name new_name int;
ここでは古いnameというカラムを新しいnew_nameに変更するという処理の意。
データの登録はinsert
全てのカラムに値を入れる場合は下記
insert into user values("a", "b", "c");
特定のカラムに入れたい場合は下記
insert into user(name, time) values("a", "b");
データ更新はupdete
データの更新はupdeteとsetで行う
update user set name="b" where id =1;
この場合はuserテーブルのID1のnameをbに更新するという処理をしている。
データの削除はdeleteで
テーブルのデータを削除する際にはdeleteを使う。
delete from user where id = 1;
※seletで取得するカラムを指定、whereで特定のカラムを指定
betweenで範囲を指定できる
例えば以下のように指定することで、範囲を指定することができる。
delete from fruits where price between 100 and 500;
参考記事:https://qiita.com/tatsuya4150/items/69c2c9d318e5b93e6ccd
inで指定の値が含まれる時、抽出する
select from user
where name in("a","b")
concatで文字列を連結させて抽出
例えば以下のようにすることで、指定の文字列を連結した状態で抽出することが可能。
select concat( "苗字", "名前")
from user
参考;https://www.sasukepg.jp/post-864/
selectでデータを取得する時にasを使うとカラムに名前つけられる
select concat(family, name)as “名前” from user
みたいな感じでasを付けることで抜いたカラムに名前を付けることができる。asは省略もできるので注意。
参考;https://www.dbonline.jp/mysql/select/index3.html
DISTINCT, GROUOPで重複を排除して取得
重複を排除してデータを取得したい場合は、distinctかgroupを使う。表面上の効果はどちらも同じだが、grouopはそこの中に含まれる要素は持った状態で持ってくるため、配列で数を取得できたりする。
select distinct カラム名
select group by カラム名
joinで一緒の値をとってきて結合できる
指定したそれぞれのテーブルのカラムの値が一致するデータを結合することが可能。わかりづらいので例文を参照。
参考:SQL素人でも分かるテーブル結合(inner joinとouter join)