その10から続きます。
1:テーブルの正規化とは?
テーブルを分けて情報の重複をなくしていく作業のこと。
データの管理が容易になること、データ容量の削減ができることなどの
メリットが有るため、特別な意図がなければテーブルは正規化する。
2:テーブルの結合とは?
テーブル同士をある条件で結合することにより正規化なしの状態を作り出すこと
基本は正規化だが、パフォーマンスの問題が解消できない
またはできなくなりそうな場合はあえて非正規化することもある。
テーブルを分けて情報の重複をなくしていく作業のこと。
データの管理が容易になること、データ容量の削減ができることなどの
メリットが有るため、特別な意図がなければテーブルは正規化する。
テーブル同士をある条件で結合することにより正規化なしの状態を作り出すこと
基本は正規化だが、パフォーマンスの問題が解消できない
またはできなくなりそうな場合はあえて非正規化することもある。
構文:order by 列名や式 並び順
並び順について
asc・・・昇順(ascending)※デフォルト並び順を指定しない場合昇順。
desc・・・降順(descending)
select *from products order by price asc;
ascはなくても良い。取得するレコードの並び順が重要な場合はorder byを使って明示的に並び順を指定すること。
select *from products order by price desc;
select count(*) from users;
count(*)とするとテーブルの行数をすべて取得できる。
女性ユーザーが何人いるのか知りたい!
select count(*) from users where users.gender = 2;
そもそもユニークアクセスユーザーとは?(ヒント)
1:決まった集計期間内にアクセスしたユーザーの数を表す数値
2:あるユーザーA が決まった期間内に10アクセスしたとしても1と数える。where句と集約関数 count (distinct expr)を組み合わせて使う。
3:count (distinct expr)の形で、count関数は重複を排除した形で個数を取得できる
SQLでテーブルの値を集計するために使う。
関数(function)とは、様々な計算をパッケージ化したもの
1:コンピュータープログラムから利用する。
RailsやPHPなど
2:CSVファイルに書き出し、表計算ソフトに取り込む、
エクセルやGoogle スプレッドシートなど。
Comma-Separated Valuesの略
区切り文字であるコンマで区切ったテキストデータ
TSVというものもある
Tab-Separated Valuesの略のTSV
区切り文字であるタブで区切ったテキストデータ
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 '__子';
homebrewをターミナルからインストールする。以下をターミナルでコマンド
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
brew install mysql
vim /usr/local/etc/my.cnf
character-set-server=utf8 default_authentication_plugin=mysql_native_password
データベースでは、テーブルを作成するときに、それぞれの列に指定した形式のデータしか、
入力できないように設定する。
この時指定するデータの形式のことをデータ型という
・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は、あまり使われないようです。