●メニューへ ●単福へ ●自動車の維持費をシミュレーション ●InDesign JavaScript ノート

create/2つの項目の組み合わせをプライマリキーにする


→NAME,TELの2つの項目の組み合わせをプライマリキーにする。
create table TEST05(
NAME char(10) not nul,
TEL char(12) not null,
primary key(NAME,TEL)
);


TOPへ


create/Key


■Key
index検索速度向上
unique検索速度向上+同じデータが入らない。
primary key=検索速度向上+同じデータが入らない+NULL不可1tableに1つのみ。


TOPへ


create/database


create database ADDRESS_D;


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/降順に並べ替え


select * from TEST_T order by ID_C desc;


TOPへ


select/重複を省く。


重複を省く。
select distinct ADD_C from TEST_T;


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/databases


show databases;


TOPへ


show/fields


show fields from ADDRESS_D.TEST_T;
show fields from TEST_T;


TOPへ


show/tables


show tables from ADDRESS_D;

show tables;


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へ


use/use


use TEST_D;


TOPへ


where/between


between
select * from TEST_T where ID_C between 5 and 8;あまり使わない。


TOPへ


where/in(2,5,8)


in(2,5,8)
IDが2と5と8を取り出す。
select * from TEST_T where ID_C in(2,5,8);


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へ


テーブルの構造を変更/デフォルトを設定してフィールド作成。


■デフォルトを設定してフィールド作成。
create table TEST01(ID int,NAME varchar(20) default "不明");


TOPへ


テーブルの構造を変更/フィールドの削除


フィールドの削除
alter table TEST_T drop AGE_C01;


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へ


外部ファイル/バックアップから復帰


復帰する。
NEWというデータベースを作っておいてコマンドプロンプト上から実行。
mysql -u root -p NEW < 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へ


管理/■mysqlのdatabaseの中の設定の見方。


■mysqlのdatabaseの中の設定の見方。
userテーブル。→全般の権限
dbテーブル。→データベースの権限
hostテーブル→


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へ


変数の型/tinyint


intは4バイト
tinyintは2バイト-127-128
tinyint unsignedで0-255(符号なし)


TOPへ


変数の型/unsigned


unsigned=正の整数。


TOPへ