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の列 | ・・・ | ・・・ |
例
コラムあらかじめ予約された単語を、列名あるいはテーブル名に使うとエラーになります。
|