プログラミング

mysql入門

PHPとmysqlはセットだと聞きました。早速やってみましょう。今回も備忘録として殴り書きします。

mysqlとは

手順1、データを保存する場所を作る

手順2、データを入力する

手順3、データを見る(分析)

特徴としては、英語の文法を覚えるような感覚。

データ型を知ってテーブルを作る

create table `users`(
`id` int(11) not null auto_increment,
–数字です nullじゃだめ 自動で増やす という決まり文句

–今回は ユーザーのデータを保存するテーブル

`email` varchar(255) default null,
`password` varchar(255) default null,
–varchar(255)は 文字や数字

`created` datetime default null,
–createdを定義 現場では必須

primary key(id)
–idが優先ですよ という定番文句

);

show tables;

–nullとは、「何もない」こと

例:クラスメイトの名前と学籍番号を管理する

create table `classmates`(
`id` int(11) not null auto_increment,
`matename` varchar(255) default null,
`student_id` int(11) default null,
`created` datetime default null,
primary key(id)
);
desc classmates;

実行すると、意味不明な文字列が。だけどエラーではないようだ。

id int(11) NO PRI NULL auto_increment
matename varchar(255) YES NULL
student_id int(11) YES NULL
created datetime YES NULL

カラムの追加・変更・削除

一度作ったテーブルコードは書き換えNG

追加

”年齢”を追加したい場合、

まず、入れたい型情報をしっかりと決めることがポイント

`year` int(11) defa null, (←入れたい型情報)

そして、カラムを追加するためのコマンドが必要

alter table `classmates` add `year` int(11) default null;

mysql カラム追加 で検索しても出てくるけど、これぐらいは覚えておきたい。

alter を検索すると、ドイツ語で 「男」 という意味らしい。意味がわからない。

add を検索すると、英語で 「追加」 という意味らしい。これはわかる。

一番わからないのは「カラム」だ。「段組み」とは。うーむ

変更

add の部分を、modify(意:修正する) にすればOK

削除

add の部分を、drop(意:落とす) にする。後に続けるのは`カラム名`だけでOK

insert文でデータを入力する

データベースにデータを保存する方法

ここも文法なので、形で覚える

保存するためには「インサートイントゥー」という呪文

名前がまさる、学籍番号1の場合

insert into `classmates` (matename,student_id,created) values (“masaru”,1,now());

注意したいのは、“masaru” の部分だけダブルクォーテーション

now() も決まり文句なので覚える。「今だよ」ということなのかな。

select文でデータを表示させる

入れたデータをどうやって見るのか、という疑問が出てくる。

select文は、保存したデータを表示したり、分析するために使う。

現場でも使う頻度が高い。

結論これも文法なので覚えてしまうこと。

表示の呪文

データを表示させるには「せれくとあすたーふろむくらすめい」という呪文構文。これですべてのデータが表示される。もう呪文でいいや。

select * from classmates;

実行すると、

1	masaru	1	2020-03-22 08:41:09

やっと理解できるものが出力された。

もう一人(ペッパー)追加してみよう。

insert into `classmates` (matename,student_id,created) values (“masaru”,1,now());

insert into `classmates` (matename,student_id,created) values (“papper”,2,now());

select * from classmates;

1	masaru	1	2020-03-22 08:49:25
2	papper	2	2020-03-22 08:49:25

よし。順調だ。

特定のデータだけを表示させる追加呪文

「せれくとあすたーふろむくらすめい」という呪文に 「 うぇあーじょうけん」を追加で唱える。where は日本語で「どこ

select * from classmates;

ここを

select * from classmates where id = 1;

このようにする。

where matename = “masaru”でもいい。

1	masaru	1	2020-03-22 09:12:14

よし、良い感じだ。

select文でデータを分析する

「せれくとあすたーふろむくらすめい」が表示の呪文。分析したい場合には、「あすたー」の部分を変えることになる。

例えば数字を足したい場合、「せれくとさむふろむくらすめい」

select sum(足したい要素のカラム名) from クラス名;

例:食べ物屋さんで買った物の合計金額

create table `shops`(

`id` int(11) not null auto_increment,

`food` varchar(255) default null,

`price` int(11) default null,

`created` datetime default null,

primary key(id)

);

insert into `shops` (food,price,created) values (“karaage”,150,now());

insert into `shops` (food,price,created) values (“hamu”,30,now());

insert into `shops` (food,price,created) values (“donut”,80,now());

insert into `shops` (food,price,created) values (“hanpen”,20,now());

insert into `shops` (food,price,created) values (“nikuman”,200,now());

select sum(price) from shops;

ーーー実行するとーーー

480

できた。レジみたい。

よく使う追加呪文

「せれくとあすたーふろむくらすめい りみっと〇〇」

limit 限界

limitは文の最後に書く という鉄則を覚えておく。

「おーだーばい〇〇あすく」
「おーだーばい〇〇ですく」

order by 注文する

ASC 上昇
DESC 下降

select * from shops order by id desc limit 3;

これで、「最後から順に3つ並べる」という指示になる。

ーーー実行ーーー

5	nikuman	200	2020-03-22 10:19:31
4	hanpen	20	2020-03-22 10:19:31
3	donut	80	2020-03-22 10:19:31

うむ。苦しゅうない。たぶん忘れるのでまた見に来るよ。

よく使う小技

update 更新

update shops set price = 80 where id = 2;

これで2番の商品を80円に変えることができる。

delete 削除する

delete from shops where id = 2;

これで2番の商品を削除できる。

truncate とらんけーと 切り捨てる

truncate table shops;

これで商品すべてを削除できる。強めの削除。一括削除。

 

 

終わり。

mysqlをやってみて思ったのは、テーブルの作り方によってはけっこうえげつないことができそうってこと。

ようは、参照する対象を自動分析する仕組みを作るということなんだろう。

PHPは、例えるなら左脳のように内部計算を効率化する部位のようなイメージだったけど、mysqlは、例えるなら風景を映す網膜や温度を感知する掌のように外部環境から必要な情報を抜き取るための部位だと感じました。

あと、少ない容量でシンプルにデータベース化して、なおかつ整理整頓が上手にできそうなイメージです。反面、テーブル設定をミスると「勘違い」も少なからず起こりそうな印象も。

プログラミングはやはり、人間の「拡張機能」なんだなと。