MySQLの基礎
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
* MySQLの基礎 [#t338d3b1]
#contents
** 開発環境の準備 [#r6f32e30]
「mysql」へのログイン (パスワード未設定時)
mysql -u root
「mysql」へのログイン (パスワード設定時)
mysql -u root -p
パスワード「hoge」の設定方法
mysql> SET PASSWORD FOR root@localhost=PASSWORD('hoge');
「help」の表示
mysql> help;
ログアウト
\q
exit;
** 用語を理解する [#d2bdef52]
- データベース:excelにおけるbook
-- テーブル:excelにおけるsheet
--- フィールド:excelにおける列
--- レコード:excelにおける行
** データベースを操作する [#i856d890]
データベースを表示する
mysql> show databases;
データベース「blog_app」を作成する ※データベース名は大文...
mysql> create database blog_app;
データベース「blog_app」を削除する
mysql> drop database blog_app;
** 一般ユーザーを作る [#o82f2864]
「blog_app」の全ての操作権限を持つ一般ユーザー「dbuser001...
mysql> grant all on blog_app. * to dbuser001@localhost i...
** テーブルを表示する [#vcfda37b]
一般ユーザー「dbusr001」でログイン
mysql -u dbusr001;
データベース「blog_app」を使用する
mysql> use blog_app;
テーブルを見る
mysql> show tables;
** テーブルを作成する [#v0a22b88]
テーブル「users」を作成。フィールド(名)を追加しそのデータ...
mysql> create table users (id int, name varchar(50), ema...
テーブル「users」の中身を確認する
mysql> desc users;
** テーブルを削除する [#qdc0b7cf]
テーブル「users」を削除する
mysql> drop table users;
** レコードを挿入する [#s68e2b5e]
mysql> insert into users (id, name, email, password) val...
mysql> insert into users (id, name, email, password) val...
mysql> insert into users (id, name, email, password) val...
|id|name|email|password|
|1|kimura|kimura@foo.com|xxxxx|
|1|tanaka|tanaka@foo.com|xxxxx|
|1|yoshida|yoshida@foo.com|xxxxx|
レコードを確認する (「*」は全てのユーザー)
mysql> select * from users;
** レコードを更新する [#laf98814]
「name」フィールドが「tanaka」の「id」フィールドを「2」に...
「name」フィールドが「yoshida」の「id」フィールドを「3」...
mysql> update users set id = 2 where name = 'tanaka';
mysql> update users set id = 3 where name = 'yoshida';
|id|name|email|password|
|1|kimura|kimura@foo.com|xxxxx|
|2|tanaka|tanaka@foo.com|xxxxx|
|3|yoshida|yoshida@foo.com|xxxxx|
** レコードを削除する [#q54b9ed6]
「id」フィールドが「3」のレコードを削除する
mysql> delete from users where id = 3;
|id|name|email|password|
|1|kimura|kimura@foo.com|xxxxx|
|2|tanaka|tanaka@foo.com|xxxxx|
** レコードを扱えるデータ型について [#w5930746]
create table users (
id int, # 整数型
weight floot, # 小数点(doubleも可)
code char(10), # 固定長文字列
name varchar(50), # 可変長文字列
name text, # 可変長文字列 (最大値大)
email varchar(255),
password varchar(16),
created datetime, # 日付型
sex enum('male', 'female') # 列挙型
);
** テーブル作成時のオプション (create table文) [#occ8f47b]
create table文のオプション
create table users (
id int NOT NULL, # NULLではない
created datetime DEFAULT '2011-11-11 10:00:00', #...
);
** インデックスとは? (create table文) [#gdf8b89a]
インデックスをフィールドに設定すると検索が高速化する
create table users (
id int NOT NULL primary key, # idにふる
email varchar(255) unique, # ユニークなフィールド...
KEY code (code) # KEY インデックス名 (検索キーワ...
/* 検索を高速化させたい対象にふる */
);
** IDを自動でふる (create table文) [#obc6e2b4]
create table users (
id int NOT NULL primary key auto_increment, # 自...
);
「id」フィールドに「null」を入れても自動的に「id」が連番...
insert into users (id, ...) values (null, ...);
insert into users (weight, ...) values (55.5, ...);
*/
** 表示するフィールドを指定する (select文) [#m4f65756]
フィールドを指定して表示させる (表示させる順番は変えるこ...
mysql> select id, name from users;
フィールドを縦に表示させる (フィールドが多い場合に使用する)
mysql> select id, name from users\G;
** 表示する条件を指定する (select文) [#m9b7b4f2]
where句を活用する
mysql> select * from users where id = 1;
mysql> select * from users where id != 1;
mysql> select * from users where id > 1;
mysql> select * from users where name = 'yoshida';
mysql> select * from users where name like = 'yoshi%'; #...
** 表示する順番を指定する (select文) [#j21b92a3]
名前順にソート(昇順)
mysql> select * from users order by name;
名前順にソート(降順)
mysql> select * from users order by name DESC;
「wehre句」と「order by」を組み合わせる
mysql> select * from users where id > 1 order by name DE...
** 表示する件数を指定する (select文) [#oc640bea]
表示件数を2件に指定する
mysql> select * from users limit 2;
「limit」と「order by」を組み合わせて「id」でソートした上...
mysql> select * from users order by id limit 2;
** フィールドを追加、削除する (alter table文) [#j7f92087]
フィールド「created」を追加
mysql> alter table users add created datetime;
フィールド「created」を追加
mysql> alter table users drop created;
** フィールドを変更する (alter table文) [#n38019c8]
現在のデータ型を確認する
mysql> desc users;
「email」フィールドの名前・データ型を変更する
mysql> alter table users change email email varchar(100);
** テーブル名を変更する (alter table文) [#x2e8a6f3]
テーブル名を「users」から「blog_users」へ変更
mysql> alter table users rename blog_users;
** length関数を使う [#d5b9fbc0]
** replace関数を使う [#x0fa8d46]
** substring関数を使う [#f85cebdc]
** 数学関数を使う [#s30f164f]
** randを使う [#jde00856]
** 日付関数を使う [#jc657d71]
** 外部ファイルにSQLを記述する [#u2d6014b]
** 外部ファイルからSQLを実行する [#b4f9d8cd]
** 外部ファイルからデータを取り込む [#e56dafd7]
** 取り込んだデータを確認する [#g4829b8f]
** 複数のテーブルを準備する [#z01bb4ba]
** 複数のテーブルからselectする [#t4977236]
** 条件を組み合わせてselectする [#h4b331cb]
** group byを使う [#d9d0481e]
終了行:
* MySQLの基礎 [#t338d3b1]
#contents
** 開発環境の準備 [#r6f32e30]
「mysql」へのログイン (パスワード未設定時)
mysql -u root
「mysql」へのログイン (パスワード設定時)
mysql -u root -p
パスワード「hoge」の設定方法
mysql> SET PASSWORD FOR root@localhost=PASSWORD('hoge');
「help」の表示
mysql> help;
ログアウト
\q
exit;
** 用語を理解する [#d2bdef52]
- データベース:excelにおけるbook
-- テーブル:excelにおけるsheet
--- フィールド:excelにおける列
--- レコード:excelにおける行
** データベースを操作する [#i856d890]
データベースを表示する
mysql> show databases;
データベース「blog_app」を作成する ※データベース名は大文...
mysql> create database blog_app;
データベース「blog_app」を削除する
mysql> drop database blog_app;
** 一般ユーザーを作る [#o82f2864]
「blog_app」の全ての操作権限を持つ一般ユーザー「dbuser001...
mysql> grant all on blog_app. * to dbuser001@localhost i...
** テーブルを表示する [#vcfda37b]
一般ユーザー「dbusr001」でログイン
mysql -u dbusr001;
データベース「blog_app」を使用する
mysql> use blog_app;
テーブルを見る
mysql> show tables;
** テーブルを作成する [#v0a22b88]
テーブル「users」を作成。フィールド(名)を追加しそのデータ...
mysql> create table users (id int, name varchar(50), ema...
テーブル「users」の中身を確認する
mysql> desc users;
** テーブルを削除する [#qdc0b7cf]
テーブル「users」を削除する
mysql> drop table users;
** レコードを挿入する [#s68e2b5e]
mysql> insert into users (id, name, email, password) val...
mysql> insert into users (id, name, email, password) val...
mysql> insert into users (id, name, email, password) val...
|id|name|email|password|
|1|kimura|kimura@foo.com|xxxxx|
|1|tanaka|tanaka@foo.com|xxxxx|
|1|yoshida|yoshida@foo.com|xxxxx|
レコードを確認する (「*」は全てのユーザー)
mysql> select * from users;
** レコードを更新する [#laf98814]
「name」フィールドが「tanaka」の「id」フィールドを「2」に...
「name」フィールドが「yoshida」の「id」フィールドを「3」...
mysql> update users set id = 2 where name = 'tanaka';
mysql> update users set id = 3 where name = 'yoshida';
|id|name|email|password|
|1|kimura|kimura@foo.com|xxxxx|
|2|tanaka|tanaka@foo.com|xxxxx|
|3|yoshida|yoshida@foo.com|xxxxx|
** レコードを削除する [#q54b9ed6]
「id」フィールドが「3」のレコードを削除する
mysql> delete from users where id = 3;
|id|name|email|password|
|1|kimura|kimura@foo.com|xxxxx|
|2|tanaka|tanaka@foo.com|xxxxx|
** レコードを扱えるデータ型について [#w5930746]
create table users (
id int, # 整数型
weight floot, # 小数点(doubleも可)
code char(10), # 固定長文字列
name varchar(50), # 可変長文字列
name text, # 可変長文字列 (最大値大)
email varchar(255),
password varchar(16),
created datetime, # 日付型
sex enum('male', 'female') # 列挙型
);
** テーブル作成時のオプション (create table文) [#occ8f47b]
create table文のオプション
create table users (
id int NOT NULL, # NULLではない
created datetime DEFAULT '2011-11-11 10:00:00', #...
);
** インデックスとは? (create table文) [#gdf8b89a]
インデックスをフィールドに設定すると検索が高速化する
create table users (
id int NOT NULL primary key, # idにふる
email varchar(255) unique, # ユニークなフィールド...
KEY code (code) # KEY インデックス名 (検索キーワ...
/* 検索を高速化させたい対象にふる */
);
** IDを自動でふる (create table文) [#obc6e2b4]
create table users (
id int NOT NULL primary key auto_increment, # 自...
);
「id」フィールドに「null」を入れても自動的に「id」が連番...
insert into users (id, ...) values (null, ...);
insert into users (weight, ...) values (55.5, ...);
*/
** 表示するフィールドを指定する (select文) [#m4f65756]
フィールドを指定して表示させる (表示させる順番は変えるこ...
mysql> select id, name from users;
フィールドを縦に表示させる (フィールドが多い場合に使用する)
mysql> select id, name from users\G;
** 表示する条件を指定する (select文) [#m9b7b4f2]
where句を活用する
mysql> select * from users where id = 1;
mysql> select * from users where id != 1;
mysql> select * from users where id > 1;
mysql> select * from users where name = 'yoshida';
mysql> select * from users where name like = 'yoshi%'; #...
** 表示する順番を指定する (select文) [#j21b92a3]
名前順にソート(昇順)
mysql> select * from users order by name;
名前順にソート(降順)
mysql> select * from users order by name DESC;
「wehre句」と「order by」を組み合わせる
mysql> select * from users where id > 1 order by name DE...
** 表示する件数を指定する (select文) [#oc640bea]
表示件数を2件に指定する
mysql> select * from users limit 2;
「limit」と「order by」を組み合わせて「id」でソートした上...
mysql> select * from users order by id limit 2;
** フィールドを追加、削除する (alter table文) [#j7f92087]
フィールド「created」を追加
mysql> alter table users add created datetime;
フィールド「created」を追加
mysql> alter table users drop created;
** フィールドを変更する (alter table文) [#n38019c8]
現在のデータ型を確認する
mysql> desc users;
「email」フィールドの名前・データ型を変更する
mysql> alter table users change email email varchar(100);
** テーブル名を変更する (alter table文) [#x2e8a6f3]
テーブル名を「users」から「blog_users」へ変更
mysql> alter table users rename blog_users;
** length関数を使う [#d5b9fbc0]
** replace関数を使う [#x0fa8d46]
** substring関数を使う [#f85cebdc]
** 数学関数を使う [#s30f164f]
** randを使う [#jde00856]
** 日付関数を使う [#jc657d71]
** 外部ファイルにSQLを記述する [#u2d6014b]
** 外部ファイルからSQLを実行する [#b4f9d8cd]
** 外部ファイルからデータを取り込む [#e56dafd7]
** 取り込んだデータを確認する [#g4829b8f]
** 複数のテーブルを準備する [#z01bb4ba]
** 複数のテーブルからselectする [#t4977236]
** 条件を組み合わせてselectする [#h4b331cb]
** group byを使う [#d9d0481e]
ページ名: