Mee's Engineer Blog

PHPエンジニアの技術ブログ

MySQL

LinuxでMySQLのテーブルをダンプする

MySQLのテーブルバックアップをLinuxでとりたい場合 mysqldump --extended-insert=True DB名 テーブル名 > ファイル名.sqlこれで可能となります。

ログインログからログイン数を集計するクエリ

会員制のシステムでは、大抵ログインログがあるかと思います。 そこからログイン数を集計するクエリはMySQLとSQL SERVERで若干違います。管理ID(id)とログイン時間(login_date)がフィールドに用意されているログインログテーブル(login_log)から アク…

charとvarcharとncharとnvarcharの違い

結構よく使うけれど、ついつい忘れがちなのが char、varchar、nchar、nvarcharの取り扱い方の違い。すごく簡単に説明すると char→文字数固定。全角非推奨。 varchar→最大文字数固定(未満でもOK)。全角非推奨。 nchar→文字数固定。全角半角関係なし。 nvarc…

テーブル数をカウントするクエリ

DBのテーブル情報を棚卸する際に、DBのテーブル数を確認したくなりました。 その際には以下の様なクエリを実行するといいです。MySQL SELECT * FROM sysobjects WHERE xtype = 'u'SQLServer SELECT COUNT(*) FROM `information_schema`.`tables` WHERE `tabl…

SQL ServerでLIMIT句を利用する

DBから指定の数だけレコードを引っ張ってくる際に、MySQLではLIMIT句を使えば簡単にできましたが SQL Serverはひと工夫が必要です。 /* テーブルAからname順に最初の10件のデータを取得する */ SELECT TOP 10 * FROM テーブルA ORDER BY name /* テーブルAか…

別テーブルのデータを引用コピーしたい場合

新しく作成したテーブルの特定のフィールドに、既に存在している別テーブルの特定フィールドのデータを引用コピーしたい、 そんな事がありました。そういう時にどんなUPDATE文を作ればいいのかというと、下記のようになります。UPDATEをかけたいテーブル → …

DB別ユーザーリスト表示クエリ

DBのアクセスユーザー情報を参照したい時に一覧を表示するためのクエリです。MySQL SELECT Host, User, Password FROM mysql.user; SQL Server Management Studio SELECT * FROM sys.server_principals WHERE TYPE IN ('S') AND name NOT LIKE '%##%' ORDER …