2012/5/15 久米
問合せ種類 | 説明 | よく使う |
CREATE | DBやテーブル(表)を作成する |
|
INSERT | テーブル(表)にデータ(行)を挿入する | ○ |
SELECT | データ(行)を取り出す | ◎ |
UPDATE | データ(行)を更新する | ○ |
DELETE | データ(行)を削除する | |
ALTER | テーブル(表)を変更する | |
DROP | DBやテーブル(表)を削除する |
では、コマンドラインツールを使って試してみましょう。
MySQLコマンド起動コマンドプロンプトを立ち上げ、下記のように打ち込む(太字部分) C:\Documents and Settings\kume>cd C:\xampp\mysql\bin C:\xampp\mysql\bin>mysql -u root -p Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql>
|
下記のように青文字のところを打ち込んでみる。
現在のデータベースをリストアップするshow databases;を実行。
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 web2 collate utf8_general_ci; mysql> use web2; mysql> set names sjis; 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 web2; mysql> set names sjis; 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='Suraimu' |
不一致 | WHERE name<>'Suraimu' | |
部分一致 | 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 |
形式 | 意味 | |
計算式の読み出し | SELECT (a+b+c) FROM honyarara_table; | 列aと列bと列cの値の合計を表示 |
長い列名の置き換え | SELECT (a+b+c) t FROM honyarara_table; SELECT (a+b+c) as t FROM honyarara_table; |
a+b+cという列名は長いのでtに置き換えて表示 |
合計順 | SELECT *, (a+b+c) as t FROM honyarara_table ORDER BY (a+b+c) DESC; |
a+b+cの合計の大きい順に表示 |
下記表をCreateし、データを挿入し、のち問いに答えよ。
id | name | sugaku | kokugo | eigo |
1 | 大島 | 55 | 65 | 75 |
2 | 前田 | 50 | 80 | 55 |
3 | 篠田 | 70 | 55 | 45 |
4 | 板野 | 55 | 40 | 100 |
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の列 | ・・・ | ・・・ |
例
コラムあらかじめ予約された単語を、列名あるいはテーブル名に使うとエラーになります。
|