SlideShare a Scribd company logo
T-SQL 振り返り
     SQL Saturday #181 TOKYO 2012
     SQLWorld お だ
自己紹介
織田 信亮(おだ しんすけ)
大阪で開発者しています
SQLWorld の代表です

http://d.hatena.ne.jp/odashinsuke/
Twitter:@shinsukeoda
SQLWorld とは
http://sqlworld.org/
Twitter:@SQLWorld_JP
次のような情報を発信しているコミュニ
ティです
  MS の RDBMS である「SQL Server」
  もちろん他の DB の話しも!
  正規化/モデリング
  SQL/NoSQL
World と名乗っていますが、


   Worldwide

では無いです!
関西限定!
大阪で勉強会を
開催しています
このセッションの対象者
SQL は知ってる/書ける
  開発者の方
SQL Server の使用経験が…
  使ったことない!
  昔のなら使ったことある
  新しいのなら使ったことある
T-SQL のお話しの前に…
開発者の方がよく使う Edition の紹介
Developer Edition
   開発用 (※運用では使っちゃダメ!)
   Enterprise Edition と同等の機能
   有償(Amazon で 5,000 位)
   無償だと Evaluation Edition (評価版) がある
Express Edition
   機能制限版
  http://msdn.microsoft.com/ja-jp/library/cc645993.aspx

   無償
インストール
インストール
Express with Tools をダウンロード
 http://www.microsoft.com/ja-jp/download/details.aspx?id=29062

     JPNx86SQLEXPRWT_x86_JPN.exe
ダブルクリックで実行
特に設定を変えずに、次へ次へでOK!
     設定を変える必要があるケース
       FILESTREAM を使いたい場合
       SQL Server への接続に Windows のユーザー認証
       を使いたくない場合
使ってみる
SQL Server Management Studio
 SSMS は、構成・管理・開発に使用出来る
 統合開発環境
    何でも出来ます
    GUI での操作
    クエリの入力補完(インテリセンス)も効く
    SQL のテンプレートも豊富
    Access ライクなクエリの作成も可能
使ってみる
SQL Server に接続する
Database の作成
Table の作成
クエリの実行 (INSERT/SELECT)
T sql 振り返り
T sql 振り返り
T sql 振り返り
T sql 振り返り
T-SQL の進化
各バージョンで使える機能
SQL   Server   2005
SQL   Server   2008
SQL   Server   2008R2
SQL   Server   2012
SQL Server 2005 で使える機能
http://msdn.microsoft.com/ja-
jp/library/ms189465(SQL.90).aspx
 データ型
 SQL CLR
 T-SQL
データ型
追加
  XML
  varchar(max)
  nvarchar(max)
  varbinary(max)
削除予定
  text => varchar(max)
  ntext => nvarchar(max)
  image => varbinary(max)
SQL CLR
 T-SQL ではなく、CLR(C# や VB.NET) で
 ストアドや関数、トリガーなどを実装出
 来る仕組み
 SQL Server のプロセス内で実行されるの
 で高速
 C# や VB.NET で実装出来るので、開発効
 率が良い/機能が豊富
T-SQL (1)
 OUTPUT 句
    INSERT/UPDATE/DELETE で影響を受ける行の
    情報を返す
 WITH (CTE)
    共通テーブル式
    再帰クエリ
 .WRITE 句
    varchar/nvarchar/varbinary(max) の部分
    更新
OUTPUT
 追加/更新/削除された行の情報を取得
    INSERT/UPDATE/DELETE/MERGE(2008 以降)
 新しく追加/更新された後のデータ
    INSERTED.カラム名
 更新/削除される前のデータ
    DELETED.カラム名
WITH (CTE)
 CTE = Common Table Query
    一時的な結果セットに名前を付けたもの
 WITH を使ってクエリに名前を付ける
 同じクエリ内で複数回参照可能
 UNION ALL で自己参照 (再帰CTE)
T-SQL (2)
 FOR
       SELECT の結果を XML 形式に変換
 TOP
       式も書けるようになった!
 PIVOT/UNPIVOT
       行列変換/列行変換
 APPLY
       JOIN の感覚で使って、行毎にテーブル値関
       数を呼び出す
TOP
 2000 でもあったが構文が変わった!
      TOP <integer> => TOP (<expression>)
 式が書けるようになったので、変数やサ
 ブクエリなんかも書けるようになった
 旧構文は SELECT でのみ互換性のために
 残してある
T-SQL (3)
 OVER 句
    ウィンドウ関数(順位付け、集計) で使用
 TRY…CATCH
    T-SQL でも
OVER
 ウィンドウ 関数 が使えるように!
 順位付け関数
       RANK, ROW_NUMBER, …
 集計関数 に partition by が使えるよう
 に
       SUM, MAX, MIN, COUNT, …
クエリ通知
ADO.NET とセットで利用
SELECT / EXECUTE に対して設定可能
対象のデータが変更されると、結果が
SQL Server から PUSH される
SQL Server 2008 で使える機能
http://technet.microsoft.com/ja-
jp/library/bb500435(SQL.100).aspx
 データ/データ型
 T-SQL
 データの変更監視
データ/データ型
FILESTREAM
   非構造化データをファイルシステムに保存
スパース列
   NULL が多い列の最適化
日付/時刻型
Spatial 型
hierarchyid
   階層構造を表す
日付/時刻 データ型
date
   日付だけ
time
   時刻だけ
datetime2
   datetime より扱える範囲/精度が良い
datetimeoffset
   タイムゾーン持ちの日付時刻 データ型
Spatial データ型
空間型 座標を表すデータ型
 gemmetry
    平面空間データ型 平面座標系のデータ
 Geography
    地理空間データ型 球体地球座標系のデータ
T-SQL (1)
 DECLARE 時の代入
    変数宣言時に代入可能
     declare @hoge int = 5
 複合演算子
    +=, -=, *=. /=, %=, ^=, |=
 INSERT の VALUES 複数対応
    “,” 区切りで複数書ける
     insert into <table> (~) values (~), (~),..
T-SQL (2)
 MERGE
 GROUPING の強化
    GROUP BY での指定方法が強化
 テーブル値パラメータ
    ストアドやファンクションに 一時テーブル
    を使わずにパラメータを渡せる
MERGE
 更新対象テーブルと元となるテーブルの
 結合結果に対して、更新処理を行う。
    MATHCED
        結合結果でデータが存在していた
         DELETE or UPDATE(主に UPDATE)
    NOT MATCHED (BY TARGET)
        更新対象にデータがなかった
         INSERT
    NOT MATCHED BY SOURCE
        元となるテーブルにデータがなかった
         DELETE or UPDATE(主に DELETE)
GROUPING の強化
 GROUPING SETS
    カラムの組み合わせを自由に指定
    複数列を単一のセットと見なせる
 ROLLUP
    説明しづらいので例を
   GROUP BY ROLLUP (year, month, day)
        year, month, day | year, month | year | ()
        の4パターン

 CUBE
    組み合わせ(表)
データの変更監視
変更データキャプチャ (CDC)
  Express/Standard Edition では使えない
  変更されたデータも保持
変更の追跡 (Change Tracking)
  Express Edition でも使える!
  変更された事だけを保持
   データは保持しないので、任意のタイミングのス
   ナップショットと比較
SQL Server 2008 R2 で使える機能
http://technet.microsoft.com/ja-
jp/library/bb510411(SQL.105).aspx
 データ層アプリケーション(DAC)
 Unicode 圧縮
     nchar(n)/nvarchar(n) の Unicode データ
     が圧縮
 Express の DBサイズが 10GB に増量
2012 の新機能
T-SQL に絞って紹介
 ORDER BY での OFFSET FETCH
   ページング処理も楽々
 THROW ステートメント
   TRY-CATCH で
 OVER 句の強化
   分析関数も使用可能に!
OFFSET FECTH
 結果セットから一部のデータだけを
 フェッチするオプション
    ORDER BY は必須
    TOP と同時使用はNG
    OFFSET:開始位置
    FETCH:取得件数
OVER
 分析関数も使えるようになった
       LAG
       LEAD
       FIRST_VALUE
       LAST_VALUE
       CUME_DIST
       PERCENTILE_CONT
       PERCENTILE_DISC
       PERCENT_RANK
T-SQL に絞って紹介
 RESULT SETS オプション
   ストアド呼び出し時に、結果セットの型を
   指定 (異なる場合は実行時エラー)
    名前と型を変更可能
 追加された関数
追加された関数
PARSE
   文字列 => 日付/時刻 or 数値型
   .NET に依存 (culture 指定可)
TRY_PARSE/TRY_CONVERT
   PARSE/CONVERT の変換失敗で null 返す
FORMAT
   書式指定文字列を返す
   .NET に依存 (culture 指定可)
追加された関数
CHOOSE
      値の一覧から index にある項目を返す
      CHOOSE(index, val1, val2, …)
IIF
      CASE の簡略化
CONCAT
      2つ以上文字列結合で null は空文字扱い。
EOMONTH
      月の最終日を返す
さいごに
T-SQL を振り返って…
2005 から使いやすくなった
2008 は型が追加された
2012 ではさらに便利な物が増えた
Express Edition は無償で使えるので、
是非お試しを!

More Related Content

PPTX
PostgreSQLの連携!クラウド移行!負荷分散!バックアップ!DBMotoで一挙解決!
PDF
Oracle Database 11g,12cからのアップグレード対策とクラウド移行 (Oracle Cloudウェビナーシリーズ: 2021年7...
PDF
Oracle Database Enterprise Edition で解決する データベースシステムの課題 (12c対応版)
PDF
新機能によるデータベースシステムの改善ポイント
PDF
Oracle Database 12c R1 主要新機能のご紹介
PDF
Oracle Cloud Infrastructure:2021年3月度サービス・アップデート
PDF
コンテナ環境でJavaイメージを小さくする方法!
PDF
Oracle Database Applianceのご紹介(詳細)
PostgreSQLの連携!クラウド移行!負荷分散!バックアップ!DBMotoで一挙解決!
Oracle Database 11g,12cからのアップグレード対策とクラウド移行 (Oracle Cloudウェビナーシリーズ: 2021年7...
Oracle Database Enterprise Edition で解決する データベースシステムの課題 (12c対応版)
新機能によるデータベースシステムの改善ポイント
Oracle Database 12c R1 主要新機能のご紹介
Oracle Cloud Infrastructure:2021年3月度サービス・アップデート
コンテナ環境でJavaイメージを小さくする方法!
Oracle Database Applianceのご紹介(詳細)

What's hot (20)

PPTX
私はここでつまづいた! Oracle database 11g から 12cへのアップグレードと Oracle Database 12c の新機能@201...
PDF
Oracle Cloud Infrastructure:2021年6月度サービス・アップデート
PDF
Oracle Database Appliance 2.9 アップデート及びパッチ管理について
PDF
Oracle Database Appliance 12.1.2.3.0 アップデート及びパッチ管理について
PDF
Oracle Database 11g Release 2 PSR 11.2.0.4 のご紹介
PDF
Oracle Database Appliance 12.1.2.2.0 アップデート及びパッチ管理について
PDF
Oracle Cloud Infrastructure:2021年10月度サービス・アップデート
PDF
【旧版】Oracle Database Cloud Service:サービス概要のご紹介 [2021年7月版]
PDF
Oracle Database 12c Release 1 PSR 12.1.0.2 のご紹介
PDF
【ことはじめ】 運用管理はリモート化できるのか?IT運用高度化、ことはじめ (Oracle Cloudウェビナーシリーズ: 2021年2月10日)
PDF
【より深く知ろう】活用最先端!データベースとアプリケーション開発をシンプルに、高速化するテクニック
PDF
しばちょう先生による特別講義! RMANバックアップの運用と高速化チューニング
PDF
Oracle Cloud Infrastructure:2021年9月度サービス・アップデート
PPTX
Oracle Cloud Infrastructure:2021年4月度サービス・アップデート
PDF
Oracle Database Appliance 2.8 アップデート及びパッチ管理について
PDF
Oracle Database: リリースモデルとアップグレード・パッチ計画 (2021年2月版)
PDF
オラクルの運用管理ソリューションご紹介(2021/02 版)
PDF
Oracle Database Appliance 12.1.2.1.0 アップデート及びパッチ管理について
PDF
Oracle Database Appliance X5-2 アップデート内容のご紹介
PDF
Zero Data Loss Recovery Applianceのご紹介
私はここでつまづいた! Oracle database 11g から 12cへのアップグレードと Oracle Database 12c の新機能@201...
Oracle Cloud Infrastructure:2021年6月度サービス・アップデート
Oracle Database Appliance 2.9 アップデート及びパッチ管理について
Oracle Database Appliance 12.1.2.3.0 アップデート及びパッチ管理について
Oracle Database 11g Release 2 PSR 11.2.0.4 のご紹介
Oracle Database Appliance 12.1.2.2.0 アップデート及びパッチ管理について
Oracle Cloud Infrastructure:2021年10月度サービス・アップデート
【旧版】Oracle Database Cloud Service:サービス概要のご紹介 [2021年7月版]
Oracle Database 12c Release 1 PSR 12.1.0.2 のご紹介
【ことはじめ】 運用管理はリモート化できるのか?IT運用高度化、ことはじめ (Oracle Cloudウェビナーシリーズ: 2021年2月10日)
【より深く知ろう】活用最先端!データベースとアプリケーション開発をシンプルに、高速化するテクニック
しばちょう先生による特別講義! RMANバックアップの運用と高速化チューニング
Oracle Cloud Infrastructure:2021年9月度サービス・アップデート
Oracle Cloud Infrastructure:2021年4月度サービス・アップデート
Oracle Database Appliance 2.8 アップデート及びパッチ管理について
Oracle Database: リリースモデルとアップグレード・パッチ計画 (2021年2月版)
オラクルの運用管理ソリューションご紹介(2021/02 版)
Oracle Database Appliance 12.1.2.1.0 アップデート及びパッチ管理について
Oracle Database Appliance X5-2 アップデート内容のご紹介
Zero Data Loss Recovery Applianceのご紹介
Ad

Viewers also liked (10)

PPTX
本当にあった怖い話し Db編
PDF
Webで役立つRDBの使い方
PDF
中国地方Db勉強会
PPTX
MySQLメインの人がPostgreSQLのベンチマークをしてみた話
PDF
Chugokudb18_2
PDF
地方エンジニアがPostgreSQLを通じて成長した話
PPTX
2016年を振り返って
PDF
PostgreSQLアンチパターン
PDF
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
PDF
[AWSマイスターシリーズ] AWS CLI / AWS Tools for Windows PowerShell
本当にあった怖い話し Db編
Webで役立つRDBの使い方
中国地方Db勉強会
MySQLメインの人がPostgreSQLのベンチマークをしてみた話
Chugokudb18_2
地方エンジニアがPostgreSQLを通じて成長した話
2016年を振り返って
PostgreSQLアンチパターン
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
[AWSマイスターシリーズ] AWS CLI / AWS Tools for Windows PowerShell
Ad

Similar to T sql 振り返り (20)

PDF
PostgreSQL10徹底解説
PPTX
開発者の方向けの Sql server(db) t sql 振り返り
PDF
Linux 対応だけじゃない!! sql server 2017 こんな機能が追加されています。
PDF
Dbts2015 tokyo vector_in_hadoop_vortex
PDF
Seas で語られたこととは?
PDF
PostgreSQL 12の話
PDF
PostgreSQL Conference Japan 2021 B2 Citus 10
PPTX
Sql world を支える技術
PDF
Let s database_testing
PDF
PostgreSQL 9.5 新機能紹介
PPTX
T sql の parse と generator
PDF
とあるDBAの黒い画面(ターミナル)
PDF
Chugoku db 17th-postgresql-9.6
PPT
Online schema change in mysql casual #1(2010/12/11)
PPT
Online schema change in mysql casual #1(2010/12/11)
PPTX
再帰Cte を使って遊ぼう
PDF
Standard Edition 2でも使えるOracle Database 12c Release 2オススメ新機能
PPTX
進化したのはサーバだけじゃない!〜DBA の毎日をもっと豊かにするユーティリティのすすめ〜
PPT
20080617 05 Mysql
PDF
20160202_Live Demo!! ビッグデータ/クラウドにレプリケーション技術でマルチロケーションデータ連携 by 株式会社インサイトテクノロジー...
PostgreSQL10徹底解説
開発者の方向けの Sql server(db) t sql 振り返り
Linux 対応だけじゃない!! sql server 2017 こんな機能が追加されています。
Dbts2015 tokyo vector_in_hadoop_vortex
Seas で語られたこととは?
PostgreSQL 12の話
PostgreSQL Conference Japan 2021 B2 Citus 10
Sql world を支える技術
Let s database_testing
PostgreSQL 9.5 新機能紹介
T sql の parse と generator
とあるDBAの黒い画面(ターミナル)
Chugoku db 17th-postgresql-9.6
Online schema change in mysql casual #1(2010/12/11)
Online schema change in mysql casual #1(2010/12/11)
再帰Cte を使って遊ぼう
Standard Edition 2でも使えるOracle Database 12c Release 2オススメ新機能
進化したのはサーバだけじゃない!〜DBA の毎日をもっと豊かにするユーティリティのすすめ〜
20080617 05 Mysql
20160202_Live Demo!! ビッグデータ/クラウドにレプリケーション技術でマルチロケーションデータ連携 by 株式会社インサイトテクノロジー...

More from Oda Shinsuke (20)

PDF
SQL Server2022_PSPoptimization_pub.pdf
PDF
What's hyperscale
PDF
Dot net+sql server tips
PDF
Sql server 2019 ざっくり紹介
PDF
Spark on sql server?
PPTX
SQL Server のロック概要
PDF
Blazor 触ってみた
PDF
Linux + PHP でも SQL Server
PPTX
グラフデータベースの話し
PPTX
Sql server 2017 新機能のご紹介
PPTX
Sql server 2017 からはじめる graph データベース
PPTX
Transaction scopeまだダメ
PPTX
Sql serverと他dbの違いを押さえよう!
PPTX
Sql world とは
PPTX
Sql world とは
PPTX
Ms build 触ってみよう
PPTX
Sql server2014復習とsqlserver2016の紹介
PPTX
Sql server sql database 最新機能紹介
PPTX
Selenium 触ってみよう
PPTX
Sql database のご紹介
SQL Server2022_PSPoptimization_pub.pdf
What's hyperscale
Dot net+sql server tips
Sql server 2019 ざっくり紹介
Spark on sql server?
SQL Server のロック概要
Blazor 触ってみた
Linux + PHP でも SQL Server
グラフデータベースの話し
Sql server 2017 新機能のご紹介
Sql server 2017 からはじめる graph データベース
Transaction scopeまだダメ
Sql serverと他dbの違いを押さえよう!
Sql world とは
Sql world とは
Ms build 触ってみよう
Sql server2014復習とsqlserver2016の紹介
Sql server sql database 最新機能紹介
Selenium 触ってみよう
Sql database のご紹介

T sql 振り返り