create/Key
■Key
index検索速度向上
unique検索速度向上+同じデータが入らない。
primary key=検索速度向上+同じデータが入らない+NULL不可1tableに1つのみ。
TOPへ
create/indexをつける
→indexを付けてテーブルを宣言。
create table TEST02(
ID_C int,
NAME varchar(20) not null,
ADD_C varchar(32),
index ID_INDEX(ID_C)
);
ID_CにID_INDEXという名前のインデックスを付ける。するとID_Cの検索が早くなります。
show index from TEST03;
TOPへ
create/primary key
→primary key
create table TEST03
(ID_C int not null,
NAME_C varchar(20) not null,
ADD_C varchar(32),
primary key(ID_C)
);
insert into TEST03 values(1,'Sato','Tokyo');を入れたらもう同じIDは入らない。
TOPへ
create/table
create table FRIEND_T(ID_C int,NAME_C varchar(20),ADD_C varchar(40));
■デフォルトを設定してフィールド作成。
create table TEST01(ID int,NAME varchar(20) default "不明");
最後にENGINE=InnoDBをつけると
複数テーブルをいじってエラー時に元の状態に戻ってくれる
create table FRIEND_T(ID_C int,NAME_C varchar(20),ADD_C varchar(40)) ENGINE=InnoDB;
TOPへ
create/uniqueの設定
→uniqueの設定
create table TEST03(
ID_C int,
NAME varchar(20) not null,
ADD_C varchar(32),
unique ID_UNIQUE(ID_C)
);
ID_CにID_UNIQUEという名前のユニークインデックスを付ける。
TOPへ
create/zerofill IDを001,002とかにしたい場合。
→zerofill=IDを001,002とかにしたい場合。(ゼロで空きスペースを埋める)
unsigned=正の整数。
create table TEST07(
ID tinyint unsigned zerofill auto_increment not null primary key,
NAME char(10) not nul,
TEL char(12) not null
);
TOPへ
create/オートインクリメント
→オートインクリメントは自動で数を増やしてくれる。
create table TEST06(
ID tinyint auto_increment not null primary key,
NAME char(10) not nul,
TEL char(12) not null
);
TOPへ
delete/delete
■deleteコマンド
レコードを消去
delete from TEST_T#すべての内容を消去。設定は残る。
delete from TEST_T where ID_C=3 and NAME_C='TAKEUCHI';
delete from TEST_T where ADD_C='Osaka';
フィールドを消去
alter table TEST_T drop AGE_C01;
テーブルを消す
drop table TEST_T;
drop table if exists TEST_T,HOKA_T;エラーを出さずに複数削除
drop database ADDRESS_D;
TOPへ
insert/insert
標準方法
insert into TEST_T (ID_C,NAME_C,ADD_C) values (10,'TAKEUCHI','KYOTO');
省略
insert into TEST_T values(1.'TAKEUCHI','KYOTO');
insert into TEST_T values (8,'UNO','NAGASAKI');
順番バラバラで入力
insert into TEST_T (NAME_C,ADD_C,ID_C) values ('TAKEUCHI','KYOTO',9);
他の入力方法
insert into TEST_T set ID_C=4,NAME_C='TAKEUCHI',ADD_C='KYOTO';
一度にいれる方法
insert into TEST_T values (7,'TAKEUCHI','KYOTO'),(2,'UNO','NAGASAKI');
insert into TEST_T values (3,'HATA','OSAKA'),(6,'MATSUMOTO','SIGA');
TOPへ
select/select
select フィールド名 from テーブル名;
select * from TEST_T;
select NAME_C from TEST_T;
TOPへ
select/where NAME_C is null;
insert into TEST_T set ID_C=11;
IDだけ入れてあとはnullの文字NAME_C = nullではだめなので注意。
select * from TEST_T where NAME_C is null;
select * from TEST_T where NAME_C is not null;
TOPへ
select/昇順に並べ替え
昇順に並べ替え下記2つとも同じ
select * from TEST_T order by ID_C;
select * from TEST_T order by ID_C asc;
TOPへ
select/数を限定する
select * from TEST_T order by ID_C limit 3;
#0から3つ取り出す。DataBaseではレコードは0からスタート。
select * from TEST_T order by ID_C limit 0,3;
select * from TEST_T order by ID_C limit 3,3;
TOPへ
show/fields
show fields from ADDRESS_D.TEST_T;
show fields from TEST_T;
TOPへ
update/update
■updateコマンド
(データを更新する。変更。)
条件が揃うと複数でも更新するので注意。
where以降を省くとすべてにHIT
update TEST_T set NAME_C='TAKEUCHI',ADD_C='KYOTO' where ID_C=11;
update TEST_T set ADD_C='NAGASAKI' where ID_C=4;
update TEST_T set ID_C=ID_C+1;
TOPへ
where/where
where
select * from TEST_T where ID_C=1;
select * from TEST_T where ID_C>5 order by ID_C;
select * from TEST_T where ID_C>5 order by ID_C limit 0,3;
select * from TEST_T where ADD_C='KYOTO';
select * from TEST_T where ADD_C='KYOTO' and ID_C>=4;
select * from TEST_T where ADD_C='KYOTO' or ADD_C='Kyoto';
select * from TEST_T where not(ADD_C='KYOTO') order by ID_C;
select * from TEST_T where not(ADD_C='KYOTO' or ADD_C='NAGASAKI')order by ID_C;
TOPへ
where/あいまい検索
where
select * from TEST_T where ID_C=1;
select * from TEST_T where ID_C>5 order by ID_C;
select * from TEST_T likeと%と_の使い方。%は文字数不明 _は1文字にHIT
select * from TEST_T where ADD_C like 'Na%';Naで始まる住所
select * from TEST_T where NAME_C like '___';#3文字の名前を取り出す
TOPへ
インストール/MacOSX
http://www.mysql.com
からStandard版をダウンロード
MacOSXにはあらかじめデベロッパーツールをインストールしておく。
mysql-standard-4.0.17.pkg
MySQLStartupItem.pkg
両方インストール
/usr/local/mysqlにインストールされる
所有者変更
sudo chown -R mysql /usr/local/mysql/*
起動
sudo /Library/StartupItems/MySQL/MySQL start
起動(こっちか?)
cd /usr/local/mysql
sudo bin/safe_mysqld --user=mysql &
再起動する。
テスト
bin/mysql test
パスワードの変更
bin/mysqladmin -u root password '任意のパスワード'
始め方
cd /usr/local/mysql
bin/mysql -u root
PHPで使えるようにするには
/private/etc/
に移動して
hostconfigの最後に
MYSQLSERVER=-YES-
を付け加える
mysqlの削除は下記を捨てる
/usr/local/mysql
/usr/local/mysql-standard-4.0.13-apple-darwin6.4-powerpc
/tmp/mysql.sock
/Library/Receipts/mysql-standard-4.0.13.pkg
TOPへ
インストール/WIndows
http://www.mysql.com
からmysql-3.23.58-win.zipをダウンロード
解凍後SETUP.EXEを起動
NEXT>NEXT>NEXT
TypicalでNEXT
するとインストールが始まる。
最後にFinish
おわったら再起動。
c:\mysql\bin\mysql.exeが本体
★pathの設定
マイコンピュータ->プロパティ->
詳細の環境変数をクリック
Pathの最後にC:\mysql\bin;を付け加える。
XP proや2000の場合
mysqladmin -u root shutdown
で一度終了
mysqld --install
でサービスとしてインストール
コンパネのサービスでmysqlを起動する。
TOPへ
テーブルの構造を変更/alter table
■alter tableテーブルの構造を変更する。
フィールドの追加
alter table TEST_T add AGE_C int;
alter table TEST_T add AGE_C01 int first;
#最初のフィールドに追加する。
alter table TEST_T add AGE_C02 int after NAME_C;
#任意の位置に追加する。
フィールドの削除
alter table TEST_T drop AGE_C01;
フィールドの変更
alter table TEST_T change AGE_C02 AGE_C00 int;
alter table TEST_T change AGE_C00 AGE_C00 varchar(2);
alter table TEST_T modify AGE_C00 int;
型だけ変更できる。
alter table java modify ID int not null primary key;
テーブル名の変更。
alter table TEST_T rename as NEWFRIEND_T;
順番を変える
ORDER BY col
TOPへ
テーブルの構造を変更/フィールドの追加
■alter tableテーブルの構造を変更する。
フィールドの追加
alter table TEST_T add AGE_C int;
alter table TEST_T add AGE_C01 int first;
#最初のフィールドに追加する。
alter table TEST_T add AGE_C02 int after NAME_C;
#任意の位置に追加する。
TOPへ
外部ファイル/バックアップ
■バックアップについて
バックアップする。
MySQLDUMPを使う。SQLから抜けてコマンドプロンプトから行う・。
mysqldump -u root -p 123456 ADRESS_D > c:\backup.sql
するとCドライブにbackup.sqlができあがる。
UNIX版の場合は下記であとからパスワードを入れる。
mysqldump -u root -p ADRESS_D > c:\backup.sql
TOPへ
外部ファイル/バッヂ処理
mysql -u root --password=123456 < syain.txt
syain.txtにsqlコマンドを書き
上の1行をsyain.batで保存する
そのファイルをダブルクリックするだけ。
下記はsyain.txt
create database SYAIN;
use SYAIN;
#ここで社員マスターを作る。
create table SYAIN_MASTER(
S_ID smallint unsigned auto_increment primary key,
S_NAME varchar(20) not null,
KANA varchar(40) not null,
POST char(7) not null,
ADDR1 varchar(8) not null,
ADDR2 tinytext not null,
SEX char(4) not null,
BIRTH date not null,
TEL varchar(13) not null,
Y_ID char(2),
B_ID char(2),
MAIL tinytext,
ENTER date,
index ID_INDEX(S_ID)
);
#役職マスター
create table YAKUSHOKU(
Y_ID char(2) primary key,
Y_NAME tinytext not null
);
#部署マスター
create table BUSHO(
B_ID char(2) primary key,
B_NAME tinytext not null,
B_TEL varchar(13)
);
TOPへ
外部ファイル/外部ファイルから読み込む
■fileからデータを直接取り込む\はメタ文字。fields terminated byは区切り文字を指定。省略すればtab区切りになる。
load data infile 'ファイルのフルパス' into table テーブル名 terminated by ",";
load data infile 'c:\\import.csv' into table FRIEND01 fields terminated by ",";
ignore 1 lines;は1行目を無視して入力。\\は/でもかまわない。
load data infile 'c:/import2.csv' into table FRIEND02 fields terminated by "," ignore 1 lines;
■ENCLOSED BYを指定して”も区切り文字にする。
load data infile 'c:\\import.csv' into table FRIEND01 fields terminated by "," enclosed by '"';
TOPへ
外部ファイル/外部ファイルへ出力する
■fileへ出力する。
select * from FRIEND02 into outfile 'C:/output1.csv' fields terminated by ",";
■csv形式でfileへ出力する。
select * from FRIEND02 into outfile 'C:/output1.csv' fields terminated by "," optionally enclosed by '"' lines terminated by "\n";
optionally enclosed by '"'でvarcharに"をつける。
lines terminated by "\n"で改行コードを\nにする。
TOPへ
管理/■ユーザーの作成
■ユーザーの作成
grant (権限) on (DB名).(Table名) to (user名) identified by '(PASSSWORD)';
設定の再読み込み。(ユーザーを作成すると必ず実行)
flush privileges;
↓WAVEのすべてのテーブルに全ての権限を与える。
grant all on WAVE.* to wave@localhost identified by '123456';
flush privileges;
@localhostは自分のPCから入っているから。
TOPへ
管理/■ユーザー作成
ユーザー作成
grant all on mybbs.* to mybbs@localhost identified by '123456';
flush privileges;
TOPへ
変数の型/date
date型
now()で今日の日付を入れれる。
取り出しは
select myName from myTable where myDate='2004-04-27';
こんな感じで
myDateというdate型の変数と
'2004-04-27'という文字列でHIT
TOPへ