alias登録をずっと登録しておく方法
aliasコマンドは日常よく使うコマンドを登録しておくと便利です。
ですがターミナル上で普通に実行しただけでは再起動した際には登録が失われてしまいます。
ずっと登録しておくには、ホーム(/homeというわけではなく、繋いでいる場所のホーム。つまり繋いだ最初の場所)にある
.bashrcに登録しておく必要があります。
例えばMySQLの接続をさぼるやり方としては
alias mysql='mysql -h ホスト名 -u ユーザー名 -pパスワード' (-pの後に半角スペースを空けてはいけない)
のような登録になります。
ログインログからログイン数を集計するクエリ
会員制のシステムでは、大抵ログインログがあるかと思います。
そこからログイン数を集計するクエリはMySQLとSQL SERVERで若干違います。
管理ID(id)とログイン時間(login_date)がフィールドに用意されているログインログテーブル(login_log)から
アクセス数を集計するクエリは
SELECT SUBSTRING(login_date,1,10) AS '日付', COUNT(id) AS 'アクセス数' FROM login_log GROUP BY SUBSTRING(login_date,1,10) ORDER BY '日付' DESC
SELECT CONVERT(DATE , login_date) AS '日付', COUNT(id) AS 'アクセス数' FROM login_log GROUP BY CONVERT(DATE , login_date) ORDER BY '日付' DESC
charとvarcharとncharとnvarcharの違い
結構よく使うけれど、ついつい忘れがちなのが
char、varchar、nchar、nvarcharの取り扱い方の違い。
すごく簡単に説明すると
- char→文字数固定。全角非推奨。
- varchar→最大文字数固定(未満でもOK)。全角非推奨。
- nchar→文字数固定。全角半角関係なし。
- nvarchar→最大文字数固定(未満でもOK)。全角半角関係なし。
超大雑把な説明でした。
SQL ServerでLIMIT句を利用する
DBから指定の数だけレコードを引っ張ってくる際に、MySQLではLIMIT句を使えば簡単にできましたが
SQL Serverはひと工夫が必要です。
/* テーブルAからname順に最初の10件のデータを取得する */ SELECT TOP 10 * FROM テーブルA ORDER BY name /* テーブルAからname順に11件目~20件目のデータを取得する */ SELECT * FROM (SELECT name,ROW_NUMBER() OVER (ORDER BY name) AS record_num FROM テーブルA) AS t WHERE record_num BETWEEN 11 AND 20 ORDER BY record_num
頭から表示させるのは難しくないのですが、途中から表示させるのが難しいですね。