Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
My SQLと話そう!(実習 編) さて実習です Powered BY データーベースと お話しをしましょう My SQLというデータベースを皆さんの ラップトップにインストールしましょう My SQLとお話をしながら、必要な知識 を学びましょう ダウンロード&インストール なにはともあれ、ダウンロードとインス トールをしましょう 研究会ホームページに用意してあります →講義資料 →My SQLダウンロード (mysql-max-3.23.51-win) 解凍してください インストール開始! インストールを開始するには、Setup.exe をクリックしましょう 出てくるNextボタンを連打しましょう 設定は全てデフォルトにしましょう ファイルはCドライブの直下 (C:\mysql)にインストールされます path変数にC:\mysql\binを追加します これでMy SQLの 準備が整いました 最初にMy SQL(サーバー)の起動の仕方 を覚えましょう サーバーの起動 まずは…こんな状態に My SQL DBMS My SQL Database サーバーの起動コマンド DOSプロンプトから mysqld-max --standalone(win95&98) mysqld-max-nt --standalone(win 2000&xp) サーバーを停止するには mysqladmin –u root shutdown ※以上2つはバッチファイルを作っておく と便利ですね。 クライアントの利用 My SQL クライアント My SQL DBMS My SQL Database クライアントをつかって 話しかける クライアントから話しかけてお返事を表示す るには、 (DOSプロンプトより) mysql (リターン) >「話しかける内容」 (クライアントの停止はquit) と打ちます。では話しかける内容は どう書けばよいのでしょう? 話しかけるための言葉 データベースに話しかけるにはSQLとい う言葉を使います。 SQLとはなんぞや Structured Query Languageの略 Queryは“問い合わせ”の意味 RDBからデータを 出し入れする為の共通語 共通語? 各データベースはSQLを共 通のインターフェースとして 用意しています 話し手 SQL SQL SQL SQL Postgre DBMS My SQL DBMS Oracle DBMS DB2 DBMS Postgre My SQL Oracle DB2 今日話しかけて作りたいもの 友達の電話番号データベース myfriends←databaseですね phonedata←tableといいます id name phone 1 杉浦 学 090-????-???? 2 山下純一 090-????-???? 3 北川敦規 090-????-???? データベースを作ります mysql>create database myfriends; Query OK, 1 row affected (0.06 sec) myfriends まだ空ですね できたか確認しましょう mysql> show databases ; +-------------+ mysql |Database | +-------------+ |myfriends | myfiends mysql |mysql | |test | +-------------+ 3 rows in set (0.00 sec) test ちなみに削除は… mysql> drop database 削除するDB; Query OK, 0 rows affected (0.06 sec) データベースを選択します mysql> use myfriends database changed テーブルをつくりましょう 属性(フィールド)といいます レコードといいます phonedata id name phone 行(row) 1 杉浦 学 090-????-???? 行(row) 2 … … 列(column) 列(column) 書式:create文 create table テーブル名 (フィールド名1 データの型1 フィールド名2 データの型2 ……続く ); ※フィールド名に日本語は使えません データの型? データ型(+データ型のオプション)を 定義します データ型 int 32bitの符号付き整数 date 日付 (yyyy-mm-dd) time 時間 (hh:mm:ss) text 可変長のテキスト64Kまで blob 可変長のテキスト64Kまで(大・小文字を区別) データ型のオプション 詳しくは次週 ということは、、、 create table phonedata( id int , name text, phone text , ); 削除は? mysql> drop table 削除するテーブル名; Query OK, 0 rows affected (0.00 sec) データをいれましょう データの列方向の組を指してレコードと いいます。 データーを入れるフィールド名を指定し て使います。(他にフィールドがあった らnullになります) データが数値以外なら‘’(シングルクォー ト)で囲みましょう。 書式:insert文 insert into テーブル名(フィールド名1, フィールド名2…) values(データ1,データ2…); ※フィールド名は作成したフィールドと 同じ順番でレコードを入れる場合には省 略できます。 実際は mysql>insert into phonedata values(1,’杉浦 学’,‘090-????-????’); Query OK, 1 row affected (0.06 sec) この調子で3人分位 (友達が多い人はもっとでも良いです…) 入れてしまいましょう。 データを検索して取得したい select文を使います。 select * from テーブル名; 指定したテーブル全てのフィールドを取得 します フィールドを指定するには*だった部分 にフィールド名を入れます select name from phonedata; これで、全てのnameフィールドの値を取 得できます データを検索して取得したい 2 where文をselect文に付け加えると、「フィー ルド名=データ」を指定して検索ができます。 Select phone from phonedata where name=‘杉浦 学’ ; +---------------------+ | phone | +---------------------+ | 090-????-???? | +---------------------+ 1 row in set (0.11 sec) データの削除 Delete文を使います Delete from テーブル名 where文; Delete from phonedata where name=‘杉浦 学’; ※where文を書かないと全てのレコードが 削除されていまいます データの変更 update文を使います upadate テーブル名 set フィールド名1=変更するデータ1 … where文; updata phonedata set phone =‘ 090-1234-5678’ where id=2; 基本はマスターできました 他にも色々なSQL文があるので、自分で 勉強してみるのも良いでしょう。 「これをこうしたいけど、どうしたら良 いんだ?」って言う時が学び時です。 来週は… 来週は今まで使ってきたmysqlクライア ントを自分でJAVAを使って(JDBCを使っ て)書いちゃう予定です。 (まじっ?そんなこともできちゃいます) 来週もがんばっていきまっしょい! 今日はこれでおしまいです。 お疲れ様でした。