還暦過ぎたエンジニアの挑戦

いくつになっても好奇心だけは忘れないエンジニア Hikaruのブログ

MENU

これだけ知りたい-mysql

UPDATEは極力プライマリキーで

今日の教訓は 標題そのまんまです。 UPDATE テーブル名 SET カラム名=値 WHERE 条件式 WHERE条件式には、 特定できるなら極力プライマリキーを使う。 それがだめならせめてkeyを持つカラムで 対象を特定できる条件を作る。 keyの存在も確かめず(あるに違い…

検索結果と同時に件数も取得する

MySQLで検索結果と同時に件数も取得することはできないことだとずっと思っていました。。。でも

テーブルのカラム内容をGETするには

テーブルのカラム内容をGETするには'SHOW COLUMNS'

データベースのテーブル数を知るには

SELECT count(TABLE_NAME) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = {データベース名};

足枷でもある - mysql

データベースの設計をするときに、データの正規化、整合性を担保したいという気持ちはわからなくもない。 こっちのテーブルAにある値は別のテーブルBに存在するものじゃなきゃいけない。。。みたいなの 設計者の気持ちもわからなくはないが、でも、そういっ…

コメントぐらい修正しようよ その2 - mysql

以前に書いた記事 blog.yutenji.biz では、カラムのコメントの修正はカラムの再定義になる。。。 というところが、ちょっとだけリスクを感じるけど、 テーブルの説明文(COMMENT)は 「ただ書く」 だけなので、サボらないようにしようと思う。 今日初めて見…

INSERTしたオートインクリメントのIDを取得する - mysql

これもあまり普段は使わないので記憶もあいまいになる。 この関数ではAuto Increment のkeyしか掴めないんだけど。。。 って、そりゃそうだ - 自分で指定したkeyならわかってるに決まっている! なにが使われているかわからないから掴みたい。 INSERT INTO …

IF NOT EXISTSは必ず書くよ - mysql

CREATE TABLE IF NOT EXISTS テーブルネーム ちょっとまずいケースがあったので。 CREATE TABLEは基本的に一度実行すれば良いことなので、どっちでも良いかな。。。 ぐらいに考えていたら今日はちょっと失敗した。 書いておいて害はないので、転ばぬ先の杖。…

DDLこそエンジニアのセンス - mysql

DMLとDDL 大嫌いなアルファベット3文字語 しかも似てるし。 どうしてもっと日本語を大切にしないのかな。 って思う で、 DDL = Data Definition Language Definition - 定義 が問題だな。 舌噛みそうだし! 要するにデータ定義言語だそうです。 データベース…

コメントぐらい修正しようよ - mysql

ALTER TABLE (テーブル名) CHANGE COLUMN (コメント修正するカラム名) (コメント修正するカラム名)(属性) COMMENT '修正コメント'; ことある度に、 「やったほうがいいよな~」 と思うのに、つい通り過ぎてしまうエンジニアのあるあるかもしれない。 …

LIKEなんかじゃ物足りない - mysql

例えばemailが'hi'で始まって'com'で終わる人を検索する where email REGEXP '^hi.+com$' ちょっと複雑で、でも端的に絞りたい時はやはりこれしかない。 もちろん「=」で検索できればそれに越してことはないが、世の中そんなに甘くない。 で、正規表現で検索…

timestampで保存されてもね - mysql

困るんですよ。ピンとくる人なぞいないので SELECT FROM_UNIXTIME(1582473112); → '2020-02-24 00:51:52' SELECT UNIX_TIMESTAMP('2020-02-24 00:51:52'); → 1582473112