<?xml version="1.0" encoding="utf-8"?>
<!-- generator="FeedCreator 1.7.2-ppt DokuWiki" -->
<?xml-stylesheet href="https://tm.root-n.com/lib/exe/css.php?s=feed" type="text/css"?>
<rss version="2.0">
    <channel>
        <title>Tipsというかメモ database:mysql:etc</title>
        <description></description>
        <link>https://tm.root-n.com/</link>
        <lastBuildDate>Wed, 19 Nov 2025 01:24:20 +0900</lastBuildDate>
        <generator>FeedCreator 1.7.2-ppt DokuWiki</generator>
        <image>
            <url>https://tm.root-n.com/lib/images/favicon.ico</url>
            <title>Tipsというかメモ</title>
            <link>https://tm.root-n.com/</link>
        </image>
        <item>
            <title>MySQL :: バックアップ専用のユーザーを作る</title>
            <link>https://tm.root-n.com/database:mysql:etc:backup_user</link>
            <description>本エントリーでは以下について説明しています。


	*  バックアップに特化したユーザーを作る
	*  リモートサーバーからバックアップ（dump）を取得する
	*  バックアップ（dump）を復元する</description>
        <category>database:mysql:etc</category>
            <pubDate>Sun, 10 Jun 2018 15:06:05 +0900</pubDate>
        </item>
        <item>
            <title>MySQL :: カラム型のメモ</title>
            <link>https://tm.root-n.com/database:mysql:etc:column_type</link>
            <description>数値型
タイプ バイト 最小値 最大値  (Signed/Unsigned)(Signed/Unsigned)TINYINT  1  -128  127    0  255SMALLINT  2  -32768  32767    0  65535MEDIUMINT  3  -8388608  8388607    0  16777215INT  4  -2147483648  2147483647    0  4294967295BIGINT  8  -9223372036854775808  9223372036854775807    0  18446744073709551615
Signed: 負の値を許可する(デフォルト)

Unsigned: 負の値を許可しない</description>
        <category>database:mysql:etc</category>
            <pubDate>Sun, 16 Mar 2008 22:48:05 +0900</pubDate>
        </item>
        <item>
            <title>MySQL :: コマンドラインから使う場合に便利なオプション (-Ns)</title>
            <link>https://tm.root-n.com/database:mysql:etc:commandline</link>
            <description>Batch(バッチ)などで SQLの結果を使いたい場合、カラム名やセパレータが邪魔になる。





通常の出力はこうなる



% mysql cschema -e 'select * from CHAR_SETS where CHAR_SET_NAME like &quot;%jis%&quot;;'
+---------------+----------------------+--------------------+--------+
| CHAR_SET_NAME | DEFAULT_COLLATE_NAME | DESCRIPTION        | MAXLEN |
+---------------+----------------------+--------------------+--------+
| ujis          | ujis_japanese_ci     | EUC-JP Japanese    |      3 |
| sjis          | sjis_japanese_ci     | Shift-JIS Japanese |      2 |
+…</description>
        <category>database:mysql:etc</category>
            <pubDate>Sun, 16 Mar 2008 22:48:05 +0900</pubDate>
        </item>
        <item>
            <title>MySQL :: DB 内のすべてのテーブルを一括削除する</title>
            <link>https://tm.root-n.com/database:mysql:etc:drop_all_table</link>
            <description>コマンドラインで操作


% mysql -u&lt;DB_USER&gt; -p&lt;DB_PW&gt; -Ns -e 'show tables' | while read table; do mysql -u&lt;DB_USER&gt; -p&lt;DB_PW&gt; -e &quot;drop table $table&quot; &lt;DB_NAME&gt;; done


	*  テーブルの一覧を表示させ、パイプを介してループ処理にて drop table 構文にテーブル名を渡す</description>
        <category>database:mysql:etc</category>
            <pubDate>Thu, 31 Aug 2017 21:03:25 +0900</pubDate>
        </item>
        <item>
            <title>MySQL :: find_in_set() 関数</title>
            <link>https://tm.root-n.com/database:mysql:etc:find_in_set</link>
            <description>FIND_IN_SET(str,strlist)


N 個の部分文字列で構成されるリスト strlist に、文字列 str が含まれている場合は、1 から N までのいずれかの値を返す。

文字列のリストは、それぞれの間を カンマ‘,’文字で区切られた各部分文字列で構成される文字列である。

最初の引数が定数文字列で、2 番目の引数が SET  型のカラムの場合、FIND_IN_SET()  関数はビット演算を使用するよう最適化される。

str が strlist に含まれていない場合や、strlist が空の文字列の場合は、0 を返す。どちらの引数も NULL の場合は、NULL を返す。

最初の引数に カンマ‘,’ が含まれていると、この関数は正しく動作しない。…</description>
        <category>database:mysql:etc</category>
            <pubDate>Sat, 11 Jun 2011 10:03:57 +0900</pubDate>
        </item>
        <item>
            <title>MySQL :: カラムの型 int(10) の10の意味</title>
            <link>https://tm.root-n.com/database:mysql:etc:int10</link>
            <description>カラムの型を int(10) と指定した場合の 10 は、「ZEROFILL」オプション指定時の桁数を明示的に指示していることを意味する。



例えば以下のようなテーブルを作成して



CREATE TABLE tablename (
  field_int10 int(10) zerofill NOT NULL,
  field_int5 int(5) zerofill NOT NULL
);</description>
        <category>database:mysql:etc</category>
            <pubDate>Thu, 17 Sep 2009 14:41:11 +0900</pubDate>
        </item>
        <item>
            <title>MySQL :: ロック機構を用いたカウンターテーブル</title>
            <link>https://tm.root-n.com/database:mysql:etc:lock_counter</link>
            <description>2012.09.24 追記
明示的にロック、アンロックをせずとも、下記でこと足りるようです。



update counter set count = LAST_INSERT_ID(count + 1);
select LAST_INSERT_ID();


上記を踏まえた上で、以下をお読みください。</description>
        <category>database:mysql:etc</category>
            <pubDate>Thu, 26 Jun 2014 09:34:18 +0900</pubDate>
        </item>
        <item>
            <title>MySQL :: 最大値を持つレコードで distinct</title>
            <link>https://tm.root-n.com/database:mysql:etc:max_distinct</link>
            <description>table1
idnum101  1101  2102  5102  3102  1103  3103  7103  5




num の最大値を持つレコードを id 毎に distinct する。



SELECT 
    DISTINCT id, 
    MAX( num ) 
FROM 
    table1 
GROUP BY 
    id





結果
idnum101  2102  5103  7
mysql5.0.33 にて検証</description>
        <category>database:mysql:etc</category>
            <pubDate>Sun, 16 Mar 2008 22:48:05 +0900</pubDate>
        </item>
        <item>
            <title>MySQL :: auto increment(オートインクリメント)：次の値を取得する</title>
            <link>https://tm.root-n.com/database:mysql:etc:next_auto_increment</link>
            <description>あるテーブルにレコードをインサートする前に、どうしても「次の auto increment の値」を取得する必要があったのでメモ。

mysql 5.0.37 で検証

以下のクエリを実行します。



SHOW TABLE STATUS WHERE Name = 'テーブル名'</description>
        <category>database:mysql:etc</category>
            <pubDate>Sat, 21 Mar 2009 01:09:07 +0900</pubDate>
        </item>
        <item>
            <title>MySQL :: ログ出力とバイナリログのtail</title>
            <link>https://tm.root-n.com/database:mysql:etc:output_log_binlog_tail</link>
            <description>ログ出力の設定


% sudo vi /etc/my.cnf

[mysqld]
 :
log=/tmp/mysql.log
log-bin=/tmp/mysql-bin


	*  log: すべてのクエリのログを出力する
		*  出力先: /tmp/mysql.log


	*  log-bin: バイナリログ(更新系ログ)を出力する
		*  出力先: /tmp/mysql-bin.000001, /tmp/mysql-bin.index
		*  　⇒　.000001, .index のような拡張子が付与される</description>
        <category>database:mysql:etc</category>
            <pubDate>Mon, 16 Sep 2013 14:53:28 +0900</pubDate>
        </item>
        <item>
            <title>MySQL :: ページャで画面表示を見やすくする</title>
            <link>https://tm.root-n.com/database:mysql:etc:pager</link>
            <description>画面表示が崩れる

デフォルトのmysqlコンソールで作業をしていると、困ったことがある。それは、

	*  カラム数の多いテーブルの表示が崩れる(横に長いテーブル)
	*  任意の行(位置)で表示を止めることができない(縦に長いテーブル)</description>
        <category>database:mysql:etc</category>
            <pubDate>Sun, 16 Mar 2008 22:48:05 +0900</pubDate>
        </item>
        <item>
            <title>MySQL :: プロンプトのカスタマイズ</title>
            <link>https://tm.root-n.com/database:mysql:etc:prompt</link>
            <description>mysqlコマンドのデフォルトのプロンプトは「mysql&gt;」ですが、複数のデータベースを操作していると、現在操作している画面はどのデータベースなのか訳がわからなくなってきます。

そこで、データベース毎にプロンプトを変更して混乱を防ぐ方法です。</description>
        <category>database:mysql:etc</category>
            <pubDate>Sun, 16 Mar 2008 22:48:05 +0900</pubDate>
        </item>
        <item>
            <title>MySQL :: SQL_CALC_FOUND_ROWS オプション と FOUND_ROWS()</title>
            <link>https://tm.root-n.com/database:mysql:etc:sql_calc_found_rows</link>
            <description>mysql&gt; SELECT SQL_CALC_FOUND_ROWS * FROM tbl_name WHERE id &gt; 100 LIMIT 10;
mysql&gt; SELECT FOUND_ROWS();



2 番目の SELECT では、最初の SELECT を LIMIT 節なしで実行した場合に返されるレコード数を示す数が返る





mysql&gt; SELECT * FROM tbl_name WHERE id &gt; 100 LIMIT 10;
mysql&gt; SELECT FOUND_ROWS();</description>
        <category>database:mysql:etc</category>
            <pubDate>Sun, 16 Mar 2008 22:48:05 +0900</pubDate>
        </item>
        <item>
            <title>MySQL :: データベースを跨いでテーブルをコピーする</title>
            <link>https://tm.root-n.com/database:mysql:etc:table_copy_on_another_db</link>
            <description>DB間のテーブルコピー


	*  database1.table を database2.table にコピーします。
mysqldump -u &lt;username&gt; -p &lt;password&gt; &lt;database1&gt; &lt;table&gt; | mysql -u &lt;username&gt; -p &lt;password&gt; &lt;database2&gt;
	*  &lt;database2&gt; に同名のテーブルが存在する場合は、DROP されます。</description>
        <category>database:mysql:etc</category>
            <pubDate>Fri, 14 Oct 2011 16:06:03 +0900</pubDate>
        </item>
    </channel>
</rss>
