MySQLのおもなデータ型
数値型		INTEGER	32bit符号付き整数型
		BIGINT	64bit
		INTEGER UNSIGNED	符号なし整数型
		DOUBLE,FLOAT		それぞれ倍精度、単精度浮動小数点型
		DECIMAL(n,m)		小数点以下m桁合計n桁の数値で、浮動小数点型にパックされない

文字列型	CHAR(n)	長さn(1-255)の固定長文字列、余った分は空白文字
		VARCHAR(n)	最大nバイトの可変長文字列
		TEXT		最大64Kバイトの可変長文字列
		BLOB		最大64Kバイトの可変長文字列、バイナリデータをそのまま保存

日付と時間の型	DATE		'YYYY-HH-DD'
		TIME		'HH:MM:SS'
		DATETIME	'YYYY-MM-DD HH:MM:SS'


NOT NULL		何か値が入る(NULL以外)
PRIMARY KEY		NULL値を持つことが許されず、その値がすべてユニーク。
AUTO_INCREMENT	自動的にユニークな値を割り当てる。
UNIQUE		NULL値を許す、複数のUNIQUE制約が存在してもよい。
DEFAULT		値が指定されなかった場合のデフォルト値。


CREATE TABLE member(
  id	INTEGER *AUTO_INCREMENT PRIMARY KEY *
  ,name	VARCHAR(32) NOT NULL
  ,tel	VARCHAR(20)
  ,address	VARCHAR(64) DEFAULT '茨城県つくば市'
  ,age	INTEGER
  ,UNIQUE(tel)
)


WHERE句で使える演算子(一部)
種類		演算子		意味
比較演算子	=		等しい
		< > !=		等しくない
		> >=		より大きい、以上
		< <=		より小さい、以下
		<=>		等しい(NULL安全)
		IS NULL	NULL値である
		IS NOT NULL	NULL値でない
論理演算子	NOT !		論理否定
		OR ||		論理和
		AND &&	論理積


よく利用されるSQL関数
種別		関数			概要
文字列関数	LENGTH(str)		バイト長を返す
		CHAR_LENGTH(str)	マルチバイトの文字数カウント
		SUBSTRING(str,pos,n)	文字列strの先頭からpos文字を基点としてn文字を取り出す
		TRIM(str)			文字列の前後の空白文字を切り取る
数学関数	ABS(x)	ABSはxの絶対値を返す
		SIGN(x)	-1 0 1のいずれかでxの符号を返す
		MOD(n,m)	nをmで割ったときの余りを返す
		ROUND(x,D)	xを小数点以下D桁で四捨五入する、Dのデフォルトは0
		FLLOR(x)	xを越えない最大の整数を返す
		LOG(x)	自然対数
		LOG10(x)	常用対数
		EXP(x)	指数関数
日付時刻関数	YEAR(date)	dateの年の部分を取り出す
		MONTH(date)	dateの月の部分を取り出す
		DAYOFMONTH(date)	dateの日を取り出す(1-31)
		DAYOFYEAR(date)	dateが年間で何日目であるかを返す(1-366)
		WEEKDAY(date)	0:月曜日 1:火曜日 3:水曜日 4:木曜日 5:金曜日 6:土曜日 7:日曜日
		HOUR(time)		時を返す
		MINUTE(time)		分を返す
		SECOND(time)		秒を返す
		CURDATE()		YYYY-MM-DD形式(現在の日付)
		CURTIME()		HH:MM:SS形式(現在の時刻)
		NOW()			YYYY-MM-DD HH:MM:SS形式(現在の時刻)
その他		LAST_INSERT_ID()	AUTO_INCREMENT属性の最後のID値
集合関数	COUNT(*)		グループに含まれるタプルの数を返す
		AVG(col)		平均値を返す
		MIN(col)		最小値
		MAX(col)		最大値
		SUM(col)		総和
		STDDEV(col)		標準偏差


正規表現パターン
正規表現	意味
^		文字列の先頭
$		文字列の末尾
.		任意の一文字
[a-z]		任意の英文字1文字
[a-z0-9]	任意の英数字1文字
a*		0文字以上のaの連続
a+		1文字以上のaの連続
a{n,m)	n文字以上m文字以下のaの連続に一致
abc|de	文字列abcもしくはdeに一致
(abcd)*	文字列abcdの0回以上の繰り返しにマッチ、後ろに+や{n,m}をつけた場合も同様

--------------------------------------------------------------------
mysql -u root

show databases;

use mysql;

select Host,User from user;

delete from user where User='';

delete from user where Host='build';

set password for root=password('123456');


set password for root@localhost=old_password('123456');

quit

mysql -u root -p

create database lesson;

create database xoops;

show databases;

use lesson;

create table todofuken (kenmei char(50), kencho char(40), jinko int, menseki int);

show tables;

show fields from todofuken;

alter table todofuken change ken kenmei char(50);

alter table todofuken modify kencho char(40);

alter table todofuken add menseki int;

drop table todofuken;

grant all on lesson.* to guest identified by '123456';

-------------------------------------------------------------------
insert into todofuken values ('Tokyo', 'Tokyo',1222,2102);

select * from todofuken;

insert into todofuken (kenmei,jinko) values ('Osaka',882);

-------------------------------------------------------------------
select * from todofuken;

select kenmei,jinko from todofuken;

select kenmei from todofuken;

select * from todofuken where kenmei = 'Tokyo';

select * from todofuken where jinko = 882;

select * from todofuken where jinko < 870;

select * from todofuken where kenmei <> kencho;

	< , <= , > , >= , <>

select * from todofuken where kenmei like '%a';

select * from todofuken where kenmei like '%a' and jinko >= 800;

select * from todofuken where kenmei like '%a' or jinko >= 800;

	a% , %a% , %a
-------------------------------------------------------------------
update todofuken set kencho='Tokyo' where kenmei='Tokyo';

update todofuken set jinko = 500;

update todofuken set jinko=menseki;

update todofuken set jinko = jinko + 500;

-------------------------------------------------------------------
delete from todofuken where kenmei = 'Tokyo';

delete from todofuken;

-------------------------------------------------------------------
load data infile "c:/aaa/todofuken.txt" into table todofuken;

-------------------------------------------------------------------
select * from todofuken order by kenmei;

select * from todofuken order by kenmei desc;

select * from todofuken order by menseki;

select * from todofuken order by jinko desc;

select * from todofuken order by menseki desc limit 10;

select * from todofuken order by jinko limit 10;

select * from todofuken order by jinko/menseki limit 10;

select kenmei,jinko,menseki,jinko/menseki from todofuken order by jinko/menseki desc limit 10;

***************************************************************

alter table todofuken add renban int;

alter table todofuken add index ind1(renban);

alter table todofuken modify renban int auto_increment;

insert into todofuken values('Nantoka', 'Kantoka', 100,100, 0);

***************************************************************

create table jushoroku (renban int, tourokubi date, simei char(40), yubin1 char(3), yubin2 char(4), jusho1 char(100), jusho2 char(100), denwa char(20), fax char(20), keitai char(20), meruado char(30), biko text);

alter table jushoroku add index ind1(renban);

alter table jushoroku modify renban int auto_increment;

***************************************************************

mysql -u root -p

create database lesson;

use lesson;

create table basic (namae char(50), denwa char(20), jyusyo char(50), kisyu char(30), kiban char(20), kounyu char(20), azukari char(20), kanryo char(20), ryokin char(20), naiyou char(50), tantou char(20), sonota char(70));

# alter table basic modify namae char(50);

load data infile "/home/data/data123.txt" into table basic;

alter table basic add renban int;

alter table basic add index ind1(renban);

alter table basic modify renban int auto_increment;

***************************************************************

// bazet1 no sakusei //

create table bazet1 (name2 char(60), ken2 char(60), betu2 char(24), kane2 int, kano2 char(10), siten2 char(20), tanto2 char(20), nen2 char(4), tuki2 char(2), hi2 char(2), kan2 char(10), kane4 int, text2 char(160), date2 char(10), date4 int, yobi2 char(20), yobi4 int, renban int);

alter table bazet1 add index ind1(renban);

alter table bazet1 modify renban int auto_increment;

grant all on lesson.* to guest identified by '123456';

-------------------------------------------------------------------

create table nandemo (naiyou1 char(64), naiyou2 char(64), naiyou3 char(64), naiyou4 char(64));

alter table nandemo add renban int;

alter table nandemo add index ind1(renban);

alter table nandemo modify renban int auto_increment;

-------------------------------------------------------------------

use lesson;

create table nandemo2 (id int, tourokubi date, title char(128), honbun text, keyword char(128));

alter table nandemo2 add index ind1(id);

alter table nandemo2 modify id int auto_increment;

show fields from nandemo2;

------------------------------------------------------------------
mysql -u root -p

use lesson;

create table yotei1 (renban int, yoteibi date, hyoudai char(50), honbun char(255));

show fields from yotei1;

alter table yotei1 add index ind1(renban);

alter table yotei1 modify renban int auto_increment;
------------------------------------------------------------------
# 郵便番号の保守

mysql -u root -p

show databases;

use lesson;

show tables;

# create table yubinbango (bango char(7), ken char(8), shi char(50), machi char(50));

show fields from yubinbango;

select * from yubinbango;

delete from yubinbango;

# alter table yubinbango change ken kenmei char(7);

alter table yubinbango modify bango char(7);
alter table yubinbango modify ken char(8);
alter table yubinbango modify shi char(50);
alter table yubinbango modify machi char(50);

select * from yubinbango;

load data infile '/mnt/dos/ken123.txt' into table yubinbango;

select * from yubinbango where bango = "9492103";

quit