MySQL メモ7 レコードを抽出する
データを抽出していくセレクト文を見ていく。
データがたくさんあったほうがいいので、新しくいろいろ作った。
create table users (
id int not null primary key auto_increment,
name varchar(255),
email varchar(255),
team enum('blue','red','yellow'),
score double,
created datetime
);
insert into users (name,email,team,score,created) values
('taguchi','taguchi@dotinstall.com','blue',5.5,'2012-05-11 11:00:00'),
('fkoji','fkoji@dotinstall.com','yellow',8.2,'2012-06-21 12:00:00'),
('dotinstall','dotinstall@dotinstall.com','red',2.3,'2012-06-21 13:00:00'),
('sasaki','sasaki@dotinstall.jp','blue',4.5,'2012-06-25 14:00:00'),
('kimura','','yellow',7.4,'2012-06-28 15:00:00'),
('tanaka','tanaka@dotinstall.jp','blue',4.2,'2012-06-29 16:00:00');
複数のデータを一気に挿入したいときは、値のセットを , カンマで区切っていく。
まずテーブルを作る。
これを挿入。
create table users (
id int not null primary key auto_increment,
name varchar(255),
email varchar(255),
team enum('blue','red','yellow'),
score double,
created datetime
);
オッケーが出る。
次にレコードを入れる。
レコードはこの部分。
insert into users (name,email,team,score,created) values
('taguchi','taguchi@dotinstall.com','blue',5.5,'2012-05-11 11:00:00'),
('fkoji','fkoji@dotinstall.com','yellow',8.2,'2012-06-21 12:00:00'),
('dotinstall','dotinstall@dotinstall.com','red',2.3,'2012-06-21 13:00:00'),
('sasaki','sasaki@dotinstall.jp','blue',4.5,'2012-06-25 14:00:00'),
('kimura','','yellow',7.4,'2012-06-28 15:00:00'),
('tanaka','tanaka@dotinstall.jp','blue',4.2,'2012-06-29 16:00:00');
オッケー六個のレコードが入ったよと言われます。
全てを見るときは、
select * from users;
をうってあげる。
出てきたのがわかります。
なにをやっているのかというと
select * from users;
のselectは抽出しなさいという意味で、
* アスタリスクは全てのフィールドを引っ張って来なさいという意味です。
どこから?というのが
from users;です。
ここでは、フィールドを指定することができて、
名前とemaiだけ岳引っ張りたいときは
select name, email from users;
とします。
すると
name emailを引っ張ってきてくれる。
この場合ならまだましだが、
フィールドが多くなりすぎて、長くなりすぎてわからないな、というときに便利なコマンドがあって、それが、
select * from users \G
これを使うといい感じに表示してくれる。
横長だったのを縦長に表示してくれる。
select * from users \G この場合は ; セミコロンがいらない。
フィールドが多すぎる場合に使えます。
select文はとても奥が深い。