mieki256's diary



2014/07/18(金) [n年前の日記]

#2 [prog] MySQL勉強中

_MySQL入門 (全19回) - ドットインストール を眺めながら VirtualBox + Vagrant + Ubuntu 14.04 + 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                      ユニークキー

以上です。

過去ログ表示

Prev - 2014/07 - Next
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project