SQL

[Node.js] SequelizeでMySQLを利用する - その5「ToDoアプリ作成編」

Node.jsの代表的なO/RMであるSequelizeの第五弾。 これまで以下のような内容を取り上げてきました。 第1回 インストールから基本的な利用方法 第2回 SELECT文の使い方 第3回 トランザクション 第4回 マイグレーション 今回はここまでの情報の整理も兼ねて、…

[Node.js] SequelizeでMySQLを利用する - その4「マイグレーション編」

Node.jsの代表的なO/RMであるSequelizeの第四弾。 第1回ではインストールから基本的な利用方法、第2回ではSELECT文の使い方、第3回ではトランザクションを取り上げました。 今回は「マイグレーション」のお話です。 Sequelizeから提供されているCLIツールを…

[Node.js] SequelizeでMySQLを利用する - その3「トランザクション編」

Node.jsの代表的なO/RMであるSequelizeの第三弾。 第1回ではインストールから基本的な利用方法、第2回ではSELECT文の使い方を取り上げました。今回はINSERTやUPDATEなど更新系の処理に欠かせない「トランザクション」です。

[Node.js] SequelizeでMySQLを利用する - その2「SELECT文編」

Node.jsの代表的なO/RMであるSequelizeの第二弾。 前回はインストールから基本的な利用方法までを取り上げました。今回はSELECT文にまつわるトピックスを取り上げていきます。 Sequelizeに限った話ではないですが、WHERE句の条件が複雑になってくると「これS…

[Node.js] SequelizeでMySQLを利用する - その1「チュートリアル編」

Node.jsでO/RMと言えば「Sequelize」です。 PostgreSQL, MySQL, MariaDB, SQLite, Microsoft SQL Serverなど主要なRDBに対応しており、AWS上での利用報告もありますのでRDSなどでももちろん使えます。また現在たどれる最古のバージョンv1.1.2は2011年にリリ…

[PHP] MySQLをPDOで操作する – 入門編 その3「モデル編」

※この記事は専門学校の講義用に作成されたものです PDOはデータベースへのアクセスを抽象化してくれる非常に便利なライブラリですが、ある程度の規模のシステムになってくるとメンテナンス性を向上したくなりもう一段階、抽象化したくなる物です。最近人気の…

[PHP] MySQLをPDOで操作する – 入門編 その2 「トランザクション」

※この記事は専門学校の講義用に作成されたものです 前回に引き続きPHPからMySQLを操作します。今回のテーマは「トランザクション」への対応です。トランザクションをマスターすれば、2つ以上のSQLを実行した際にいずれかの実行が失敗した場合でも、そのすべ…

[PHP] MySQLをPDOで操作する - 入門編 その1

※この記事は専門学校の講義用に作成されたものです 今回はPHPからMySQLへ接続しデータの取得と追加の練習を行います。 データベースとのやり取りには様々な罠が待ち構えており、ちょっと書き損じた(設定を忘れた)だけでサービスが崩壊することもよくあります…

[MySQL] 権限を付与する - GRANT

作成済みのユーザーに権限を付与するにはGRANT文を利用します。実行にはGRANTを利用できる権限が必要です。 GRANT ALL On db1.* To katsube@localhost; 上記はdb1という名前のデータベース内にあるすべてのテーブルに全権限を付与しています。

[MySQL] テーブル名を変更する

MySQLでテーブル名を変更するには、通常RENAME TABLEを利用します。 RENAME TABLE old_table TO new_table; テーブル名の変更はSQLの標準規格には存在しません。そのため各DBが独自の実装をしているのが現状です。これもMySQLでの利用方法ですので、他のDBを…

[MySQL] AUTO_INCREMENTの値を設定/確認する

MySQLのAUTO_INCREMENTの値を確認したり設定します。 値を設定する ALTER TABLE tbl AUTO_INCREMENT = 100; 値を確認する SELECT AUTO_INCREMENT FROM information_schema.tables WHERE TABLE_SCHEMA = 'test' /* testデータベース */ AND TABLE_NAME = 'foo…

[MySQL] テーブルをコピーする

MySQLでテーブルをコピーします。 以下の2つのパターンのそれぞれの特徴についてメモします。 パターン1 CREATE TABLE newtable LIKE oldtable; INSERT INTO newtable SELECT * FROM oldtable; パターン2 CREATE TABLE newtable SELECT * FROM oldtable;

MySQLのテーブルにPartitionを追加/削除/確認する

2013年に作成した個人的なWebサービスがいつの間にか動かくなってる…?と思って調べて見るとPHP経由で動かしているMySQLが以下のようなエラーを吐いていました。 PHP Fatal error: Uncaught Exception: [_runsql] HY000 1526 Table has no partition for val…

MySQLでよく使用するコマンドまとめ - 2018年版

この記事は作成中です。随時更新されます 歳のせいかど忘れすることが増えたためMySQLの操作方法をまとめてメモ。MySQL5.6〜5.7あたりでの利用を想定しています。

[SQL] 複数レコードを1回のINSERTでまとめて挿入する

構文 VALUESをカンマ(,)で区切って指定するだけです。 INSERT INTO `テーブル名` (id, name) VALUES (1, 'foo') , (2, 'bar') , (3, 'hoge'); 通常のINSERTと同様に、すべての列に順番通りデータを追加する場合はカラム名の記述は不要です。 INSERT INTO `テ…

[SQL] レコードがなければINSERT、あればUPDATEする

ここではMySQLでの実行方法を取り上げます。 構文 INSERT句で、ON duplicate key updateを利用することで実現できます。 INSERT INTO `テーブル名` (id, name) VALUES (1, 'りんご') ON duplicate key update id = 1 , name = 'ぱんだ'; ここでは次のような…