毎週このダンプを取るように設定するとかもできるらしい
<インポート>
データベースlunchが選ばれた状態で(パンくずリストに書いてある状態ですよ)
→インポート(画像はまちがってエクスに赤線ひいてしまったが)
→ファイルを選択
→実行
じゃあ中身を見てみましょう
構造→テーブルfoods→よしよし入っている
攻撃を受けたり災害があったりするから
バックアップは企業では毎日とる
phpアドミンは公開領域にはおかないこと
非公開領域におく
世界中から攻撃がきますよ
プロバイダによってバージョンが違うので、
画面のデザインや位置でこれらの操作を覚えようとしないこと
メニューを見るようにしましょう
特にプロバイダは低めのバージョンで設置することが多いらしい
ダンプをとるのはphpアドミンからしかできないというわけではない
でもこれがつかえればOKらしい
企業のイントラシステムだと直接シェルスクリプトで取るらしいが
insert文でデータをつくりだす
select文で列または行または両方を選択する
列の選択のことを「射影」(しゃえい)という
VALUE("おにぎり",140,"和食");
SELECT menu, price
FROM foods;
↑取り出したい列名を記述、FROM句を使ってテーブルの名前を指定
SELECT *
FROM foods
WHERE price < 600;
特に行・列を指定しないときは*(アスタリスク)を記述
テーブルを指定する句と
条件を指定する句と記述する
複数の条件がある場合ももちろんあり
その場合はandかorでつなぐ
WHERE price < 600 AND price >= 200;
条件は何個でも接続できる。英単語で書く(&&とかじゃない)
SQLでこれらを記述する
ここ
では
麺類 600円以上
全列から
だと?
SELECT * FROM foods
WHERE cat = "麺類" AND price >= 600;
マイエスキューでは=は1つ。条件一致は==とは記述しない
SQLには「代入」がないので
select文が山らしい
構文をしっかり覚えるのが大事らしい
最終的にはこれをPHPから実行させるという仕組みにもっていく
じゃ「麺類以外で600円以上」なら?
SELECT * FROM foods
WHERE cat = "和食" OR cat = "洋食" AND price >= 600;
↑この記述の結果はよろしくない。なぜでしょう
andとorではandの方が優先順位が高い!
つまり
WHERE cat = "和食" OR ("洋食" AND price >= 600);
の意味になってしまっている
SELECT * FROM foods
WHERE (cat = "和食" OR cat = "洋食") AND price >= 600;
↑こうすれば思う結果が出力される
しかしこれでは不正確。これからデータが増えたらおかしくなるかも
正しいのはこちら
SELECT * FROM foods
WHERE cat <> "麺類" AND price >= 600;
これが「等しくない」という記述
SQLでは<>と綴る
(!=でも結果は出てしまうがこれは「方言」らしい)
セレクト文だけはさっとかけるようにしましょう
インサート文とかはマニュアルみてでもいいですが
基本情報ではSQL文の知識が必須