DBを作る1

[初回]
mysql -u root
create database pan_db;
アクセスできるユーザを設定していく。
(全てのテーブルに対してdbuserがlocalhostからアクセスできるようにする。
そして、パスワードを設定する。)
grant all on pan_db.* to dbuser@localhost identified by 'pasword';

use pan_db
create table sampletdl(
id int not null auto_increment primary key,
name varchar(255),
komoku1 int,
komoku2 varchar(50),
komoku3 text);

このユーザでアクセスできるか試す。
\q 一度終える。
mysql -u dbuser -p pan_db;
パスワードを入力

show tables;
desc sampletdl;


[良く使うSQL]
mysql -u hoge00 -phoge00 (パスワードを連続して入力する場合)
show databases;
create database pan_db;


use pan_db
create table sampletdl(komoku1 int, komoku2 varchar(50), komoku3 text);
describe sampletdl;
select * from sampletdl;





Teratarmを使用してDBを作成してみる
※TeratarmはCtrl+Cを押すと抜けてしまうので注意
※ターミナルは2つ立ち上げて、同じようにログインしておき、片方でSQL
片方で結果などを見ると使い勝手が良い。


[Linuxコマンド]
pwd ・・・現在の作業ディレクトリを表示(print working directory)
php -v ・・・・phpのバージョン確認
mysql --version ・・・mysqlのバージョン確認
cd ・・・change dirrectory

[mysqlを使う]
■IDとパスワードを入力=-pの後ろは半角スペースあけない。
mysql -u hoge00 -phoge00

■Ver確認 SQL5以前とではぜんぜん違う。
select version();

■database作成
create database bookdata_db;

■databaseを確認する
show databases;

■databaseを使用する
use bookdata_db;

■データベースのテーブルを見る
show tables;

■テーブル作成 ※カンマの後にスペースが必要。
create table bookinfo(title varchar(50), press varchar(30), author varchar(30), contents text, price int);

■テーブル一覧を見る
show tables;

■テーブルの構造を表示する
describe bookinfo; 
または、 desc bookinfo;

                                                                              • -

■データの書き込み
insert into bookinfo (title, press, author, contents, price) values('エクセル+関数', '伊達出版', 'tada', '初心者にも分かり易い実例集付', 2500);

insert into bookinfo (title, press, author, contents, price) values('Java&Web', 'かとう出版', 'katho', '1週間でマスターできるJavaの基本が満載', 2800);

                                                                              • -

書き込まれたデータの確認
select * from bookinfo;
select title, price from bookinfo;
select * from bookinfo where price>=2500;

                                                                              • -

タイトルが~webで終わるデータを抽出。
select * from bookinfo where title like '%Web';
タイトルがjで始まるデータを抽出。
select title, price*2 from bookinfo where title='Java&Web';
select title as タイトル, price*2 as お支払額 from bookinfo where title='Java&Web';
select * from bookinfo where title like '%Web' and price<=2500;

                                                                              • -

■価格が高い順に(desc)そのうちの1件目だけ(limit)表示してください。
select price, title from bookinfo order by price desc limit 1;
■価格が高い順に(ASC)そのうちの1件目だけ(limit)表示してください。
select price, title from bookinfo order by price ASC limit 1;

                                                                              • -

■テーブルの上書き
update bookinfo set price=2700 where title='Java&Web';
■データの削除
delete from bookinfo where title='紅茶とJava';

                                                                              • -

■書き換え 金額と著者名を変更する。
update bookinfo set price=2100, author='saito.h' where title='PHP&Web';

項目名の追加(最初に追加する)
alter table sampletdl add komoku0 int first;

項目を1の後ろに追加する。
alter table sampletdl add komoku1_1 int after komoku1;

データの型を変える(本来ならあってはならない。)
alter table sampletdl modify komoku1 char(1);

項目削除(要注意)
alter table sampletdl drop komoku2;

項目名を変更する。
alter table sampletdl change komoku3 komoku3_1 text;

テーブルの名前を変更する。
alter table sampletdl rename sample_TBL;

テーブル名が変更されたのを確認する
show tables;

                                                                              • -

テーブルを削除
drop table sample_TBL;

データベースの削除
drop database sampledb;

接続を切る
quit;

テラタームを閉じる
exit;

                                                                              • -

■現在の日付
select now();

■締切日等 or 一月前
select now() -interval 1 month;

1カ月と三日前
select now() -interval 1 month -interval 3 day;
1カ月と三日先
select now() -interval -1 month -interval -3 day;

                                                                            • -