ラベル SQL の投稿を表示しています。 すべての投稿を表示
ラベル SQL の投稿を表示しています。 すべての投稿を表示

2016年3月22日火曜日

CASE式を使用して、主キーを入れ替える方法 SQL

こんにちは山田です。 気温もぐーんとあがり、 やっと春らしくなってきました。今日この頃。 さて、SQLの話題です。既存コードをリファクターできそうなものを見つけたので、その備忘録になります。 ■目的 「主キー」もしくは「ユニークキー」の値を入れ替えて、 並び替え機能をつくります。 ■テーブルの前提  1. ソートキーはユニークである  2. ソートキーが大きいものが上(降順)で並べる 表であらわすと↓こんな感じになります。 +-----+------------+--------+ | ID | Name | Sorter | +------------------+--------+ | 1 | ゼンサイ | 100 | | 2 | メインリョウリ | 10 | | 3 | スープ | 1 | +-----+------------+--------+ このソートキー「100」と「10」を入れ替えて登録して、並び替え機能をつくります          ↓ +-----+------------+--------+ |...

2016年3月14日月曜日

開発初心者がこれだけは知っておいた方が良いこと④

こんにちは!Sです。 今回はデータベースのロックについて書きたいと思います。 DBで行う主な操作としては ①新規登録 ②更新 ③削除 ④参照 だと思いますが、同じテーブルに対して複数の人が同時に様々な操作を行うとデータの整合性がとれません。 そんなことにならないようにDBにはロックという機能が存在します。 ロックの粒度(行に対してのロックなのか、テーブルに対してのロックなのかなど)やルールは 使っているDBによって多少違うようですが、ここからはわたしが使っているSQL Serverについて書きます♪ ◆ロックの種類 ロックには共有ロック、排他ロック、更新ロック、インテントロックなどがありますが、 難しいので詳細の説明は省きます。 初心者の方にまず覚えて頂きたいのは ①データの参照中は共有ロックがかかり、その間他の人が更新などできない ②削除などデータの書き換え中は排他ロックがかかり、他の人が何もできない ということです。 (詳しく知りたい人はこちらやこちらを!) バッチのスケジュールを組む際にはこれらのことを考慮しないといけないですね。 ちなみに排他ロックをどの粒度でかけるかは、SQL...

2015年12月7日月曜日

【SQLserver】DBテーブル内のカラムにコメントを登録する

こんにちわ、開発者のⅠです。 さて、今回はDB操作に関するお話です。 クエリ文を作成しそれをプログラム上で実行することで、新規テーブルの作成やカラム追加など、様々な操作が可能です。 その中で、今回はカラムにコメントを登録する方法を伝えします。 カラムの定義変更や追加には【ALTER TABLE】を利用することになりますが、新規にカラムを追加する場合はコメントには何もない状態です。 このコメント、カラム自身がなにを格納するものなのか、それを説明するのに結構重要なものです。コメント自体は手動で登録・編集が可能ですが、カラム作成と同時に登録できれば手間を省けますね。 それでは、早速書いてみたいと思います。 環境は、 ・管理プログラム:SQL Server Management Studio ・対象テーブル:日本の観光名所を登録している「dbo.tbl_attractions」 ・追加するカラム:設立した年を格納する『year』 とします。 /*...

2015年9月30日水曜日

datetimeの列でデータを抽出したい!

岡田です。 データを抽出するときってだいたい数値か文字列で検索を書けるのですが、今回あまりなじみのないdatetime型の列で抽出しなくてはいけない作業があったので、メモしておきます。 例えばその日時が2000年12月31日だった場合は、、、 select top 100 * from datatable where (DATEPART(yy, datecolmun) = 2000 AND    DATEPART(mm, datecolmun) = 12 AND    DATEPART(dd, datecolmun) = 31) という感じ。 あまり使わなさそうなので忘れちゃいそうです。 エクセルやブログなどで「カラム」と呼びますが、雑誌やサイトで連載されている「コラム」と同じ単語なんですね。 もともと「c...