忍者ブログ

からすまる日誌 mySQL

授業ノートのまとめ

序章(4) ダンプを取る

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

序章(4) ダンプを取る

毎週このダンプを取るように設定するとかもできるらしい
 
<インポート>
データベース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文の知識が必須
 
PR

コメント

ただいまコメントを受けつけておりません。

プロフィール

HN:
karasumaru
性別:
非公開

P R