2008/6/3 久米
| 問合せ種類 | 説明 | よく使う | 
| CREATE | DBやテーブル(表)を作成する  | 
    |
| INSERT | テーブル(表)にデータ(行)を挿入する | ○ | 
| SELECT | データ(行)を取り出す | ◎ | 
| UPDATE | データ(行)を更新する | ○ | 
| DELETE | データ(行)を削除する | |
| ALTER | テーブル(表)を変更する | |
| DROP | DBやテーブル(表)を削除する | 
では、コマンドラインツールを使って試してみましょう。
  スタートメニュー>プログラム>MySQL>MySQL Server 5.0>MySQL Command Line Client
  を選択し下記のように青文字のところを打ち込む。念のためshow databases;を実行。
Enter password: **** ←rootと打ち込みEnterキー Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 3 to server version: 5.0.20-nt Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | test | +--------------------+ 3 rows in set (0.00 sec) mysql>  | 
  
| Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 60 to server version: 4.0.17-nt Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> create database kume; mysql> use kume; mysql>  | 
  
| Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 60 to server version: 4.0.17-nt Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> use kume; mysql>  | 
  
| 文法 | 例 | |
| テーブル作成 | CREATE TABLE テーブル名( 列名 データ型 [, ・・・]);  | 
    CREATE TABLE monster( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(32), level INT, ability VARCHAR(20), birthday DATE);  | 
  
mysql> describe テーブル名;
  あるいは
  mysql> desc テーブル名; 
列idを、整数型で主キーにして、かつ自動増加を設定する。
  検索や更新するときなどに、必ず役に立ちます。
CREATE TABLE テーブル名(
  id INT PRIMARY KEY AUTO_INCREMENT,
  ・・・
  ・・・
  );
CREATE TABLE テーブル名(
  ・・・
  level INT DEFAULT 0,
  ability VARCHAR(20) DEFAULT 'パンチ', 
  ・・・
  ・・・
  );
 コラム mysqlコマンドラインツールの使い方メモ
 
  | 
  
| 文法 | 例 | |
| データ挿入 | INSERT INTO テーブル名 (列名 [,・・・]) VALUES (値 [, ・・・]);  | 
    INSERT INTO monster (name, level, birthday) VALUES ('スライム', 3, '2004/5/10');  | 
  
| データ挿入 (CREATEした順番で 全列挿入なら 列名記入省略可)  | 
    INSERT INTO テーブル名 VALUES (値 [, ・・・]);  | 
    INSERT INTO monster VALUES (100, 'チョコボ', 2, '蹴り', '2004/5/10');  | 
  
| データ型 | 記述方法 | 例 | 
| 数値型 | そのまま数字 | 120 | 
| 文字列型 | ' 'で囲む | '富士太郎' | 
| 日時型 | 'YYYY/MM/DD HH:MM:SS' 'YY/MM/DD HH:MM:SS' 'YYYY/MM/DD' 'YY/MM/DD' など  | 
    '2004/05/05 15:30:00' '04/05/10 09:00:00' '2004/10/10' '04/12/31'  | 
  
値がない時は、どのデータ型でも、NULL というデータを挿入します。
| INSERT INTO monster VALUES (200, 'キングスライム', NULL, NULL, NULL);  | 
  
| 問い合わせ種類 | 文法 | 例 | 
| すべての行 | 
    SELECT * FROM テーブル名;  | 
    SELECT * FROM monster;  | 
  
| 列を指定 | 
    SELECT 列名 [, ...] FROM テーブル名;  | 
    SELECT name, ability FROM monster;  | 
  
| 条件にあったものだけ | SELECT * あるいは 列名 [, ...]  | 
    SELECT *   | 
  
| 並び替えて結果取得 | SELECT * あるいは 列名 [, ...] FROM テーブル名 WHERE 検索条件 ORDER BY 列名 [DESC];  | 
    SELECT *  FROM monster WHERE level>3 ORDER BY birthday;  | 
  
| データ型 | 条件 | 例 | 
| 文字列 | 一致 | WHERE name='スライム' | 
| 不一致 | WHERE name<>'スライム' | |
| 部分一致 | WHERE name LIKE '%スライム%' | |
| 数値 | 一致 | WHERE level=3 | 
| 不一致 | WHERE level<>3 | |
| 以上 | WHERE level>=3 | |
| 未満 | WHERE level<3 | |
| 日付 | 以前 | WHERE birthday<='2004/5/30' | 
| 形式 | 例 | |
| および | WHERE 条件1 AND 条件2 | WHERE name LIKE 'スライム%' AND level>=3 | 
| あるいは | WHERE 条件1 OR 条件2 | WHERE name LIKE 'スライム%' OR level>=3 | 
下記表をCreateし、データを挿入し、のち問いに答えよ。
| id | name | sugaku | kokugo | eigo | 
| 1 | 小泉 | 55 | 65 | 75 | 
| 2 | 小沢 | 50 | 80 | 55 | 
| 3 | 福田 | 70 | 55 | 45 | 
| 4 | 谷垣 | 80 | 40 | 50 | 
| 5 | 麻生 | 45 | 55 | 65 | 
| 6 | 大蔵 | 40 | 45 | 35 | 
| 7 | 小池 | 60 | 50 | 70 | 
| 8 | 伊吹 | 75 | 40 | 55 | 
| 9 | 野田 | 30 | 70 | 40 | 
| 10 | 町村 | 45 | 45 | 80 | 
問1 合計点の多い順に結果を表示せよ。同点であれば英語の高い方を上にせよ。
問2 数学、国語、英語の合計点が170以上の人を検索せよ。
問3 すべての科目が50以上という万能タイプを検索せよ。
問4 ひとつの科目だけ50以上それ以外は50未満という、スペシャリストタイプを検索せよ。(難問)
問5 英語が他の科目よりも得意であり、かつ万能タイプを検索せよ。(難問)
| id | VARCHARの列 | INTの列 | DATEの列 | ・・・ | ・・・ | 
例
コラムあらかじめ予約された単語を、列名あるいはテーブル名に使うとエラーになります。 
  |