・XAMPP起動
・データベース作成
・プロンプトで
cd c:\pleiades\xampp\mysql\bin
mysql -u root
でコマンドラインでMySQL実行常態にする
・create database study;
データベース名studyでデータベース作成。
show databases;で作成確認。
・grant all on *.* to『ユーザー名』 @"localhost" identified by "パスワード";
でログイン用ユーザー名とパスワード作成
・flush privileges;
設定
・cd c:\pleiades\xampp\mysql\bin
mysql -u root ユーザー名 -p
パスワード要求出るので入力。
・show databases;で作成確認。
・statusでステ確認。
・create table member (id int not null auto_increment,name text,age int,primary kty (id));
テーブルにmemberって名前をつけて、
カラムはid(null無し、数値型)とname(文字列型)とage(数値型)にして、
idに主キーをつけるよ、と。
☆データベース操作一覧
・MySQLの実行(フォルダに移行してから)
mysql -u ユーザー名 -p
とパスワード入力。
・MySQLの終了
quit;かexit;
・データベース一覧表示
show databases; ←sがつくよ。
こんなの。
+--------------------+
| Database |
+--------------------+
| information_schema |
| cdcol |
| mysql |
| phpmyadmin |
| study |
| test |
+--------------------+
・データベース選択
use データベース名
・テーブル一覧表示
show tables; ←ここもs。
★データ入力
・カラムnameとageに自分の名前を入れてみるよ。
insert into member (name,age) values ('yamazaki','33');
テーブルmemberにカラムnameとageに入れるよ。
Query OKと出れば成功。
★セレクト
select name,age from member;
select 取得したいカラム from テーブル名; で名前と年齢がコマンドラインに出るよ。
こんな感じ
+----------+------+
| name | age |
+----------+------+
| yamazaki | 33 |
+----------+------+
1 row in set (0.00 sec)
★テーブル内全表示
select * from member;
ワイルドカードなのか~。
★更新
既存データ更新
update member set age =40
だと全員なっちゃう
※rollback; で戻る。
・条件付け更新。条件はwhereをつける。
update member set age = 20 where id = 5
・条件付け選択
select * from member where id = 1 or id = 2; 1番と2番
select * from member where id = 1 or || = 2; 1番と2番
select * from member where id <= 2; 2番目以降
select * from member where id >=2 2番目まで
・idが1番でyamazakiの条件に合うものを出す。
select * from member where id = 1 and name = 'yamazaki';
・何番目~何番目まで表示
select * from member where id >=4 and id < 9;
★空文字を入れてみるよ。
insert into member (age) values('');
・NULLを入れてみるよ
insert into member (age) values(null);
◆空文字とNULLは別物だよ。
上記の空文字だと文字列はNULL数字の場合はゼロ。
※ただしnullと入れればnullとして扱える
※※not null を作成時に指定した場合を除く
select * from member where name is null;
+----+------+------+
| id | name | age |
+----+------+------+
| 15 | NULL | 0 |
+----+------+------+
1 row in set (0.00 sec)
・NULL以外を表示してみるよ
select * from member where name is not null;
★ソート
・ID昇順ソート
select * from member order by id asc;
・ID降順ソート
select * from member order by id desc;
・あわせてソート
select * from member order by name asc, id desc;
★パターン検索
・前方一致
aaa%
select * from member where name like 'yama%';
+----+----------+------+
| id | name | age |
+----+----------+------+
| 1 | yamazaki | 33 |
+----+----------+------+
1 row in set (0.16 sec)
・後方一致
%aaa
select * from member where name like '%a';
+----+---------+------+
| id | name | age |
+----+---------+------+
| 3 | chihaya | 15 |
| 4 | haruka | 16 |
| 10 | azusa | 20 |
+----+---------+------+
3 rows in set (0.00 sec)
・すべて
%aaa%
select * from member where name like '%a%';
+----+----------+------+
| id | name | age |
+----+----------+------+
| 1 | yamazaki | 33 |
| 2 | ai | 15 |
| 3 | chihaya | 15 |
| 4 | haruka | 16 |
| 6 | makoto | 16 |
| 8 | yayoi | 14 |
| 10 | azusa | 20 |
| 13 | ami | 12 |
| 14 | mami | 12 |
+----+----------+------+
9 rows in set (0.00 sec)
★行数だけ取得
select count(*) from member;
★ID指定で修正。カラム変えればおk。
update member set age = 20 where id =10;
・NULLの名前を修正
update member set name = 'takagi' where name is null;
・空文字の名前を修正
update member set name = 'takagi' where name = '';
・テーブル追加
alter table member add address text;
alter table テーブル名 add 追加したいカラム名 種別;
☆練習 アドレス帳
1.create文を作成。コピペ禁止
その場で作成→エラー→一旦memberのテーブルから出て作成→エラー→単純にスペース不足;
create table memberz (id int not null auto_increment,name text,
address text,tel text,up int,primary key ( id ));
zだけ追加w
2.各カラムのデータ型を考える
id int not null auto_increment,name text,address text,tel text,up int,
upを更新日にしたかったが、日付はまた別のタイプだとすっかり忘れ;
alter table memberz modify up data;
modifyでカラムタイプ変更。
Ex.カラムの後にカラムを追加し型指定。参考ここ
ALTER TABLE テーブル名 ADD 追加するカラム名 型 AFTER カラム名;
◆運用中のカラムに追加するのは大トラブルの元!◆
◆なので練習できるうちにたくさん失敗しておこう◆
3.insratでデータを自分で考える
mysql> insert into memberz (name,address,tel,up) values('haruka','yamanote','03-
1111-1111','2010/12/20');
んでこんなのできた。
+----+---------+-----------+--------------+------------+
| id | name | address | tel | up |
+----+---------+-----------+--------------+------------+
| 1 | haruka | akasaka | 03-1111-1111 | 2010-12-22 |
| 2 | thihaya | yamanote | 03-7777-2222 | 2010-12-22 |
| 3 | rituko | odaiba | 03-1515-4545 | 2010-12-22 |
| 4 | ryo | akihabara | 03-2525-4545 | 2010-12-22 |
+----+---------+-----------+--------------+------------+
4 rows in set (0.00 sec)
今日はなんかすんなりできた……。
関数がネックだというのがよ~~~~くわかりました;
1~100までのテストで後一歩まちがえたあああああああああ
丸暗記したと思ってたのに><
あああああ明日が怖ぇえええええええ
・・・・・・・・・・・・でも息抜きじゃねえっすYO;
0 件のコメント:
コメントを投稿