MySQL

テーブルにカラムを追加する

ALTER TABLE table名 ADD カラム名 varchar(255)

auto_incrementの初期値をあとから設定する

テストデータとして、auto_incrementの設定してあるカラムへ 大きい値のデータを手動で入力したら、自動で振られる番号がその 続きからになってしまいました。auto_incrementの初期値は show table status from [データベース名] like '[テーブル名]'から確…

現在日時の入力

insert into [テーブル] set [カラム] = now(); 更新情報などにデータ型は date でも datetimeでも

文字コードを指定してデータベースを作成する

それでもだめならデータベースを作成するときにunicodeを指定します。 mysql> create database hogedb character set utf8;あとphpのスクリプトの中に $ccd = mysql_query("SET NAMES utf8",$con);とかいれます。

my.cnfを設定する

設定の確認↓ mysql> status -------------- mysql Ver 14.7 Distrib 4.1.22, for redhat-linux-gnu (x86_64) using readline 4.3 | | | Server characterset: latin1 Db characterset: latin1 Client characterset: latin1 Conn. characterset: latin1 | | |…

テーブルへフィールドを追加

alter table [テーブル名] add [フィールド名] [データ型]

いまさらですがSQLインジェクションについてお勉強したこと

http://internet.watch.impress.co.jp/cda/news/2008/04/18/19279.htmlhttp://thinkit.co.jp/free/article/0801/5/2/http://www.atmarkit.co.jp/fsecurity/column/ueno/42.htmlhttp://thinkit.co.jp/article/847/1?page=0,1http://www.computerworld.jp/topi…

文字コードを指定してデータベースを作成する

それでもだめならデータベースを作成するときにunicodeを指定します。 mysql> create database hogedb character set utf8;あとphpのスクリプトの中に $ccd = mysql_query("SET NAMES utf8",$con);とかいれます。

my.cnfを設定する

設定の確認↓ mysql> status -------------- mysql Ver 14.7 Distrib 4.1.22, for redhat-linux-gnu (x86_64) using readline 4.3 | | | Server characterset: latin1 Db characterset: latin1 Client characterset: latin1 Conn. characterset: latin1 | | |…

ユーザーにパスワードを設定する

set password for hogeuser@hogehost = password('hogepassword');サーバーがトんだらしいので作り直してます。。。

phpとcronで日毎のlog.datをデータベースへ格納する

truncateでテーブルのレコードの全削除とauto_increment設定してあるカラムのリセット

delete from tbl_hogehoge ではauto_incrementのidが継承され削除されたレコードの次の番号から となってしまいます。 なので truncate table tbl_hogehoge参考URL http://www.mirrorservice.org/sites/ftp.mysql.com/doc/refman/5.1-olh/ja/truncate.html h…

基本操作

show databases; データベースの一覧 use [database]; データベースの選択 show tables; テーブルの一覧alter table [テーブル名] add [カラム名] [属性] カラムの追加 update [テーブル名] set [カラム名1]="[値1]" where [カラム名2]=[値2];久しぶり。…

逆を指定すると大変なことに。。。

update table名 set 列(コピー先) = 列(コピー元);

全部のレコードに今日の日付を入れる。

update set カラム名> = current_date

MySQLでエスケープするときは...

\cを使う

ユーザーの追加

・追加するときに権限を指定する。 grant [権限] on [データベース].[テーブル] to [ユーザー名]@"[サーバー名]" identified by "[パスワード]" ・権限は select とか、all にすると全部 ・データベースとテーブルにはワイルドカード(*のこと)使用可?

char と varchar の違い

char 固定長 varchar 可変長つまり char (4) と varchar(4) だと ・char のカラムはどんな値が入っても4バイト使う ・varcharは値の分とカラムの長さの情報分1バイトを使う なので、 'ab'を格納すると char は4バイト使って varcharは3バイトしか使わない。 …

テーブルの文字セットの変更

..::テーブルの文字コードの変更::..alter table TABLE default character set utf8;でもすでに作ってるテーブルに使ってもダメでした。 ..::テーブルの削除::..drop table TABLE;

MySQLへcsvデータのインポート/ユーザ変数

基本は↓ LOAD DATA INFILE '/tmp/data.csv' INTO TABLE table01デフォルトでは \t (タブ)がフィールドの区切り \n が改行 csvファイルを読み込むときは FIELDS TERMINATED BY ',' でカンマをフィールドの区切りに指定する。 行の区切りはテキストエディタに…

MySQL からの csv 形式のデータ へ テーブル の エクスポート

SELECT * FROM table_name INTO OUTFILE 'dump.csv' fields terminated by ','; デフォルトでは \t (タブ)がフィールドの区切り \n が改行 なので fields terminated by ',' をつける。あと FIELDS OPTIONALLY ENCLOSED BY '"' とすると 1,"a string",100.20…

..:::insert文:::..┌----------------------------------------┐ │id │int │ auto_increment │ │CAL01 │varchar(10) │ │ │CAL02 │varchar(20) │ │ └----------------------------------------┘insert into TABLE values(NULL'data01','data2'); ..:::alter文…

折り返しをやめる 「その他」→「ファイルタイプ別の設定」→「体裁」→"ワープロ的"に

CREATE TABLE new_table AS SELECT * FROM old_table;SELECT COUNT(*) FROM テーブル名

char と varchar の違い

char 固定長 varchar 可変長

:::::最後から 3 件のレコードを抽出:::::

select * from table order by key1 desc limit 0, 3 :::先頭から3件のレコードの場合は::::: select * from table order by key1 limit 0, 3 :::csvファイルをインポート::::: mysql> set names utf8 mysql> load data infile "/tmp/dump.csv" into table i…