「MySQL」の版間の差分

提供: sha.ngri.la
移動先: 案内検索
(バイナリファイルを登録する)
(文字化け対策)
9行目: 9行目:
 
skip-character-set-client-handshake
 
skip-character-set-client-handshake
 
</pre>
 
</pre>
 +
 +
==mysqlの起動、終了、再起動(CentOS)==
 +
*[http://kaworu.jpn.org/kaworu/2008-08-27-1.php CentOS MySQLの起動、停止、再起動]
 +
 
==カラムのデータ型を変更する==
 
==カラムのデータ型を変更する==
 
<pre>
 
<pre>

2014年8月28日 (木) 03:15時点における版

文字化け対策

/etc/my.cnfに次のとおり追加

[client]
default-character-set=utf8

[mysqld]
default-character-set=utf8
skip-character-set-client-handshake

mysqlの起動、終了、再起動(CentOS)

カラムのデータ型を変更する

mysql> alter table [tablename] modify [データ型];

AUTO_INCREMENTをリセットする

mysql> ALTER TABLE `table_name` AUTO_INCREMENT = 0

UNIQUEを追加する

mysql> ALTER TABLE `table_name` ADD UNIQUE(コラム名)

text,mediumtext,longtextの容量

Data Type記憶容量の上限値
BLOB,TEXT21665,536バイト
MEDIUMBLOB,MEDIUMTEXT22416,777,216バイト
LONGBLOB,LONGTEXT2324,294,967,296バイト

SELECT文

重複した行を除外して表示する。

mysql> SELECT DISTINCT col_name, ... FROM tbl_name;

where節でselect文を使う

mysql> SELECT * FROM テーブルA where カラム1 in (SELECT カラム3 FROM テーブルB where カラム2='aaa')

IN

col_nameの値がカッコ内のvalue1,value2,value3のいずれかに一致したらTRUEを返す。

mysql> SELECT * FROM table1 WHERE col_name IN (value1,value2,value3)

逆(いずれにも一致しない場合にTRUEを返す)こともできます。

mysql> SELECT * FROM table1 WHERE col_name NOT IN (value1,value2,value3)

ORを使うのと同じ

mysql> SELECT * FROM table1 WHERE col_name=value1 OR col_name=value2 OR col_name=value3

バイナリファイルを登録する

LOAD_FILE('ファイルのフルパス')を使って登録する。

max_allowed_packetの上限を超えた容量のファイルや完全にアクセスできないファイル、例えば/users/shangrila/file/path/a.jpgに利用する場合、a.jpgのパーミッションが644でも、fileディレクトリのパーミションが600なら、アップロードできない。

mysql> update images set photo=LOAD_FILE('/volumes/full/path') where id=123;

Link