2014/07/18(金) [n年前の日記]
#2 [prog] MySQL勉強中
_MySQL入門 (全19回) - ドットインストール
を眺めながら VirtualBox + Vagrant + Ubuntu 14.04 + MySQL で試してるところ。ようやく半分まで視聴。忘れそうなので、試した内容をメモ。
このメモだけを見ても何が何だか分からないので、ドットインストールの動画を最初から眺めたほうがいいです。
rootでログイン。
データベースを作成。rootでログインしないと作れない。
データベース一覧を表示。
データベースを削除。
データベースを切替。
作業ユーザを作成。
作業ユーザでログイン。
テーブルを作成。
テーブル作成の一例。users というテーブル名で作っている。
テーブル一覧を表示。
テーブルを削除。
テーブルが既に存在していた場合だけ削除。
既にあるテーブルと同じ構造のテーブルを新規作成。
索引(インデックス)を一覧で見る。
テーブル構造を確認。
レコードを挿入。
データの中身を確認。
データの中身を縦方向描画で確認。
指定フィールドの中身を確認。
条件を指定してデータの中身を確認。
並び替えをして確認。
件数を制限して確認。
集計。総数を確認。
集計。ユニークな値を確認。
集計。最大値を確認。
集計。平均値を確認。
集計。合計値を確認。
集計。グループごとの平均値を確認。
乱数を得る。
ランダムに抽選で1人だけ得る。
MySQLのデータ型について。
フィールドのオプション。
索引(インデックス)指定種類。
このメモだけを見ても何が何だか分からないので、ドットインストールの動画を最初から眺めたほうがいいです。
rootでログイン。
mysql -u root -p
データベースを作成。rootでログインしないと作れない。
create database データベース名;
データベース一覧を表示。
show databases;
データベースを削除。
drop database データベース名;
データベースを切替。
use データベース名;
作業ユーザを作成。
grant all on データベース名.* to ユーザ名@localhost identified by 'パスワード文字列';
作業ユーザでログイン。
mysql -u 作業ユーザ名 -p データーベース名
テーブルを作成。
create table テーブル名 ( フィールド名 データの型, フィールド名 データの型, ... フィールド名 データの型 );
テーブル作成の一例。users というテーブル名で作っている。
create table users ( id int not null auto_increment primary key, name varchar(255), email varchar(255) unique, password char(32), score double, sex enum('male', 'female') default 'male', memo text, created datetime, key score (score) );
テーブル一覧を表示。
show tables;
テーブルを削除。
drop table テーブル名;
テーブルが既に存在していた場合だけ削除。
drop table if exists テーブル名;
既にあるテーブルと同じ構造のテーブルを新規作成。
create table 新テーブル名 like 既存テーブル名;
索引(インデックス)を一覧で見る。
show indexes from テーブル名;
テーブル構造を確認。
desc テーブル名;
レコードを挿入。
insert into テーブル名 (フィールドの一覧) values (値の一覧);
データの中身を確認。
select * from テーブル名;
データの中身を縦方向描画で確認。
select * from テーブル名 \G
指定フィールドの中身を確認。
select フィールド名一覧 from テーブル名;
条件を指定してデータの中身を確認。
select * from テーブル名 where フィールド名 比較演算子 値;以下はサンプル。
select * from users where score >= 5.0; select * from users where score = 5.5; select * from users where score != 5.5; select * from users where score <> 5.5; select * from users where team != 'red'; select * from users where created > '2014-07-19 02:00:00'; select * from users where email like '%@gmail.com'; select * from users where score between 5.0 and 8.0; select * from users where team in ('red', 'yellow'); select * from users where score >= 4.0 and team = 'blue'; select * from users where score >= 4.0 or team = 'blue';
並び替えをして確認。
select * from users order by score; select * from users order by score desc; select * from users order by name desc;
件数を制限して確認。
select * from users limit 3; select * from users limit 2,2; select * from users order by score desc limit 3;
集計。総数を確認。
select count(*) from users;
集計。ユニークな値を確認。
select distinct フィールド名 from テーブル名;
集計。最大値を確認。
select max(フィールド名) from テーブル名;
集計。平均値を確認。
select avg(フィールド名) from テーブル名;
集計。合計値を確認。
select sum(フィールド名) from テーブル名;
集計。グループごとの平均値を確認。
select avg(フィールド名) from テーブル名 group by フィールド名;
乱数を得る。
select rand();
ランダムに抽選で1人だけ得る。
select * from users order by rand() limit 1;
MySQLのデータ型について。
int 整数 double 実数 char 文字列 varchar 文字列 text 最大文字数不明の文字列 enum 列挙型 date 日付 datetime 時間
フィールドのオプション。
not null 入力必須であることを示す default '値' デフォルト値 auto_increment 自動連番。この指定をしたフィールドは必ずインデックスをつけること。
索引(インデックス)指定種類。
primary key 主キー key キー名 (フィールド名) キー unique ユニークキー
[ ツッコむ ]
以上です。