転ぶ前に読め-mysql
日付だけでよいのにと思ったら 文字列を日付っぽくして、0埋めしてフォーマット 文字列を日付っぽくして、0埋めしてフォーマット(その2) 日付だけでよいのにと思ったら select now(); select date_format(now(), '%Y-%m-%d'); 結果 2021-04-09 21:59:05 2…
今日の教訓は 標題そのまんまです。 UPDATE テーブル名 SET カラム名=値 WHERE 条件式 WHERE条件式には、 特定できるなら極力プライマリキーを使う。 それがだめならせめてkeyを持つカラムで 対象を特定できる条件を作る。 keyの存在も確かめず(あるに違い…
MySQLで検索結果と同時に件数も取得することはできないことだとずっと思っていました。。。でも
テーブルのカラム内容をGETするには'SHOW COLUMNS'
SELECT count(TABLE_NAME) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = {データベース名};
データベースの設計をするときに、データの正規化、整合性を担保したいという気持ちはわからなくもない。 こっちのテーブルAにある値は別のテーブルBに存在するものじゃなきゃいけない。。。みたいなの 設計者の気持ちもわからなくはないが、でも、そういっ…
以前に書いた記事 blog.yutenji.biz では、カラムのコメントの修正はカラムの再定義になる。。。 というところが、ちょっとだけリスクを感じるけど、 テーブルの説明文(COMMENT)は 「ただ書く」 だけなので、サボらないようにしようと思う。 今日初めて見…
これもあまり普段は使わないので記憶もあいまいになる。 この関数ではAuto Increment のkeyしか掴めないんだけど。。。 って、そりゃそうだ - 自分で指定したkeyならわかってるに決まっている! なにが使われているかわからないから掴みたい。 INSERT INTO …
CREATE TABLE IF NOT EXISTS テーブルネーム ちょっとまずいケースがあったので。 CREATE TABLEは基本的に一度実行すれば良いことなので、どっちでも良いかな。。。 ぐらいに考えていたら今日はちょっと失敗した。 書いておいて害はないので、転ばぬ先の杖。…
DMLとDDL 大嫌いなアルファベット3文字語 しかも似てるし。 どうしてもっと日本語を大切にしないのかな。 って思う で、 DDL = Data Definition Language Definition - 定義 が問題だな。 舌噛みそうだし! 要するにデータ定義言語だそうです。 データベース…
ALTER TABLE (テーブル名) CHANGE COLUMN (コメント修正するカラム名) (コメント修正するカラム名)(属性) COMMENT '修正コメント'; ことある度に、 「やったほうがいいよな~」 と思うのに、つい通り過ぎてしまうエンジニアのあるあるかもしれない。 …
例えばemailが'hi'で始まって'com'で終わる人を検索する where email REGEXP '^hi.+com$' ちょっと複雑で、でも端的に絞りたい時はやはりこれしかない。 もちろん「=」で検索できればそれに越してことはないが、世の中そんなに甘くない。 で、正規表現で検索…
困るんですよ。ピンとくる人なぞいないので SELECT FROM_UNIXTIME(1582473112); → '2020-02-24 00:51:52' SELECT UNIX_TIMESTAMP('2020-02-24 00:51:52'); → 1582473112