MySQL」カテゴリーアーカイブ

MySQL(その11 テーブルの結合,正規化,主キー,外部キー,リレーションシップ))

その10から続きます。

1:テーブルの正規化とは?

テーブルを分けて情報の重複をなくしていく作業のこと。

データの管理が容易になること、データ容量の削減ができることなどの

メリットが有るため、特別な意図がなければテーブルは正規化する。

2:テーブルの結合とは?

テーブル同士をある条件で結合することにより正規化なしの状態を作り出すこと

基本は正規化だが、パフォーマンスの問題が解消できない

またはできなくなりそうな場合はあえて非正規化することもある。

実務で見かける可能性もあるらしい。

3:主キー(Primary Key,PK)とは?

一つの行を特定できる列のこと

↑のusersテーブルのidが主キー

続きを読む

MySQL(その10 order by,算術演算子,concat)

その9.5から続きます。

データの並べ替える方法(order by)

構文:order by 列名や式 並び順

並び順について

asc・・・昇順(ascending)※デフォルト並び順を指定しない場合昇順。

desc・・・降順(descending)

例1:商品一覧を価格が低い順に並べて作成したい!

select *from products order by price asc;

ascはなくても良い。取得するレコードの並び順が重要な場合はorder byを使って明示的に並び順を指定すること。

例2:商品一覧を価格が高い順に並べて作成したい!

select *from products order by price desc;

続きを読む

MySQL9(count,group by,having)

その8から続きます。

1:対象行の行数を数えるcount集約関数

例:ECサイト(架空)のユーザーが何人いるか調べたい!

select count(*) from users;

※ポイント

count(*)とするとテーブルの行数をすべて取得できる。

女性ユーザーが何人いるのか知りたい!

select count(*) from users where users.gender = 2;

2:応用)2017年1月にアクセスした ユニークユーザー数(ec サイト登録ユーザのみ)を調べたい!

そもそもユニークアクセスユーザーとは?(ヒント)

1:決まった集計期間内にアクセスしたユーザーの数を表す数値

2:あるユーザーA が決まった期間内に10アクセスしたとしても1と数える。where句と集約関数 count (distinct expr)を組み合わせて使う。

3:count (distinct expr)の形で、count関数は重複を排除した形で個数を取得できる

続きを読む

MySQL(その8 集約関数(sum,avg,min,max))

その7からつづきます。

1:集約関数とは?

SQLでテーブルの値を集計するために使う。

関数(function)とは、様々な計算をパッケージ化したもの

2:合計値を求めるsum集約関数

例:2017年1月の合計金額を調べたい!ER図よりordersテーブルから探す

続きを読む

MySQL(その7 データを表計算ソフトに取り込む)

その6から続きます。

select文により取得したデータの利用方法

1:コンピュータープログラムから利用する。

RailsPHPなど

2:CSVファイルに書き出し、表計算ソフトに取り込む、

エクセルやGoogle スプレッドシートなど。

CSVとは?

Comma-Separated Valuesの略

区切り文字であるコンマで区切ったテキストデータ

TSVというものもある

Tab-Separated Valuesの略のTSV

区切り文字であるタブで区切ったテキストデータ

続きを読む

MySQL(その6 like句,ワイルドカード,limit)

その5から続きます。

1:パターンマッチングによる絞り込み(like)

例:漢字の中から始まる苗字のユーザー一覧を取得したい!

select * from users where last_name like ‘中%’;

中を含むユーザー一覧がほしい

select * from users where last_name like '%中%'

子で終わる名前のユーザー一覧がほしい

select * from users where first_name like '%子';

子で終わる3文字の名前のユーザー一覧がほしい。

select * from users where first_name like '__子';

続きを読む

MySQL(その5 列に別名をつける、条件を指定してデータを取得する(as,where,演算子))

その4から続きます

1:列に別名をつける

例)商品一覧のname,priceをそれぞれ日本語で「名前」と「価格」に修正したい!

答え(asは省略できる)

select name as 名前,price as 価格 from products;

select name 名前,price 価格 from products;

2:列の値に対して演算を行う

例:商品一覧に税込価格を追加したい!

続きを読む

MySQL(その4データを取得)select * from テーブル名

3から続きます

実際に使って理解を深める(なるべく実務を想定する感じで)

1:ECサイトのユーザー一覧を表示したい!

※ポイント

構文:select 列1,列2・・・ from テーブル名;

すべての列を取得したい時

select * from テーブル名;

2:ECサイトの商品一覧を表示したい!

select * from products;

3:SQLのよくあるエラーについて

続きを読む

MySQL(その3学習環境構築)

その2から続きます

1:学習環境構築

homebrewをターミナルからインストールする。以下をターミナルでコマンド

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
brew –versionでバージョンが確認できる(インストールできているかわかる)
MySQLをインストール

brew install mysql

2:日本語化設定と暗号化プラグインの設定

設定ファイルを開く

vim /usr/local/etc/my.cnf
設定ファイルに以下を記述

character-set-server=utf8 default_authentication_plugin=mysql_native_password
MySQL起動

mysql.server start
セキュリティーの初期設定をする

mysql_secure_installation
パスワードを設定する
パスワードを使ってルートユーザーでログイン

mysql -u root -p
再起動して設定を反映する

mysql.server restart
MySQLを使わないときは停止する

mysql.server stop
MySQLを使う時(ログインしたときなど)

mysql.server start
MySQL Workbenchをインストール
こちらのサイト様を参考にインストール
MySQL Workbenchを起動し「Database」タブの「Connect to Database」
から設定を確認し、OKボタンを押す

続きを読む

MySQL(その2データ型について)

1から続きます

1:データ型とは?

データベースでは、テーブルを作成するときに、それぞれの列に指定した形式のデータしか、
入力できないように設定する。

この時指定するデータの形式のことをデータ型という

2:データ型の種類(数値型)

int型:整数(-2147483648~-2147483647)

int unsigned:符号無しとすることができる。つまり正の整数だけを扱うことで、扱える値の範囲が増える

tinyint型:とても小さな整数(-128~127)

tinyint(1):真偽値true/falseを扱うことができる

内部的にはtrueは数字の1、falseは数字の0で管理されている。

MySQLでは0とnullがfalseで、空文字を含むそれ以外の値はすべてtrueとなる。

null:データが存在しないことを表す値

float型:小さい浮動小数点数 (-3.402823466E+38〜-1.175494351E-38,0,および、1.175494351E-38〜-3.402823466E+38)Eは10nなので1.175494351E-38は1.175494351×1038

double型:浮動小数点数(-1.7976931348623157E+308~2.2250738585072014E-308,0および、2.2250738585072014E-308~1.7976931348623157E+308)

実務上整数型はint、整数の中でも、真偽値を扱いたいときや、127以下の数字を扱うときはtinyint、小数を扱うときは、doubleを使うことが多いらしい。

floatは、あまり使われないようです。

続きを読む