😸

DB(laravel)

2021/07/02に公開

DB設計STEP 1.システムの概要を把握する(システムの要件と機能一覧を明確にする)
   2.エンティティの抽出 物理的なものでなくていい。 テーブル単位の格納
  3.エンティティの定義 レコードの名前を決めていく
4.正規化
5.ER図作成

4.正規化
正規化1回目 繰り返しになっている部分をテーブルからみつける(横)
       例レコードに、商品名というカテゴリが2つある場合。一つなくして縦に表 示でできるように

正規化2回目 縦に繰り返しをなくす。繰り返してないものだけを、別のテーブルにうつす。
       1対Nの関係にする必要がある。

正規化のPOINT 横方向の繰り返し→縦にならべる
           縦方向の繰り返し→1:nのテーブルに切り出す。

DB

演算 + - * / nullは全部nullになる ()から優先
nullを選択は、is null そうではない、is not null
not は否定 
andはまじわる orは、どちらか

比較 = <> > >= <= <  =等しい 、<>等しくない、 >より大きい、 >= 以上 、 <=以下、
            <より小さい

データベース作成
          create database データベース名;
データの型 データ型 integer(整数、数字).char(文字、固定長文字列)
      .varchar(可変長文字列)date(日付)
制約    nullは何もない notnull(データ入力必須) 
primarykey (主キー)一つ行を特定できる
テーブル削除
drop table テーブル名;
テーブルの変更
Alter table(オルター)テーブル名;
追加 Alter table(オルター)テーブル名 add 列名
削除 Alter table(オルター)テーブル名 drop column 列名

テーブル名変更   Rename table テーブル名 to テーブル名

テーブルへ登録 insert into テーブル名 values ('入れたいデータ','入れたいデー          タ');

検索        select レコード名 ,レコード名 form テーブル名;
 
         select 'レコードの内容' as レコード名 from テーブル名;

          特定のカラムからレコードの内容とかかれたものだけ、表示させる
	  レコード名だけをすべて表示したいとき使う(縦)
	  
	  select * from テーブル where 条件('服');
	  レコードからみつけてくる(横)

集約関数 count,sum ,avg,max.min 
       他にも200位ある

重複削除  discount
分ける group by  更に細かくhaving haveingを使う際は,group byもセットで

並び変え  order by asc(昇順)desc(降順)
ほかのテーブルからデータを移動が可能
テーブルを消す delete from テーブル名;
where可能

データ更新 apdate テーブル名 set テーブル名;
where可能

トランザクション 更新をまとめてやる処理 transtion commit(更新完了) ,rollback(取り消し)

サブクエリ    サブクエリとgroup byは切り取り

結合Join inner join onは必須 テーブル結合
         Outer join left rightでメインを決める

MySQLリファレンスデータの型
https://dev.mysql.com/doc/refman/5.6/ja/data-types.html

bigint 整数 int 整数 bogintより小さい UNSIGNEDを指定すると整数のみ
varchar 文字列(初期値を設定可能) varchar(255)
text 指定できない
Auto_increment 連番を自動で

Discussion