タグ

sqlに関するtatsu1010のブックマーク (6)

  • SQLエスケープにおける「\」の取り扱い

    補足 この記事は旧徳丸浩の日記からの転載です。元URL、アーカイブはてなブックマーク1、はてなブックマーク2。 備忘のため転載いたしますが、この記事は2008年6月2日に公開されたもので、当時の徳丸の考えを示すものを、基的に内容を変更せずにそのまま転載するものです。 補足終わり 昨日のエントリ(徳丸浩の日記 - そろそろSQLエスケープに関して一言いっとくか - SQLのエスケープ再考)は思いがけず多くの方に読んでいただいた。ありがとうございます。その中で高木浩光氏からブクマコメントを頂戴した。 \がescape用文字のDBで\のescapeが必須になる理由が明確に書かれてない。\'が与えられたとき'だけescapeすると…。自作escapeは危うい。「安全な…作り方」3版で追加の「3.失敗例」ではDBで用意されたescape機能しか推奨していない このうち、まず「\」のエスケープが必

  • SQLServer Tips:パフォーマンス解析 - プログラマの落書き帳

    たかが1件処理するのに5分かかるストアドがある。 「ぜってぇーあやしいでごぜーますだー」(ドコの人?) と意気込んで調査に乗り込んだ... 結論から先に述べると 「WHERE句に設定する抽出条件の値は対象となる列の データ型と必ず一致させること」 という結果となった。 その経緯なのだが、プロファイラや実行プランによって 解析したところ、あるDELETE文が実行時間の約半分を 示していることが発覚した。 ぱっと見てもおかしなところがない。 前の経験から新たに適しているINDEXを作成したが 5%くらいしか向上していない。 で、よーく実行プランを見るとWHERE句に記載した 抽出条件が内部実行時にCONVERTによる暗黙変換が されていることが発覚した。 テーブル名:[TableAlpha] 列名:[ColumnA] 列型:VARCHAR(4) 用途:西暦が入っている このテーブルに対してのS

    SQLServer Tips:パフォーマンス解析 - プログラマの落書き帳
  • CAST および CONVERT (Transact-SQL) - SQL Server

    適用対象: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) Microsoft Fabric のSQL 分析エンドポイント Microsoft Fabric のウェアハウス これらの関数は、あるデータ型の式を別のデータ型に変換します。 構文 CAST 構文: CAST ( expression AS data_type [ ( length ) ] ) CONVERT 構文: CONVERT ( data_type [ ( length ) ] , expression [ , style ] ) Transact-SQL 構文表記規則 引数 式 (expression) 任意の有効な式。 data_type 対象

    CAST および CONVERT (Transact-SQL) - SQL Server
  • SQL インジェクション

    SQL インジェクションとは、後で SQL Server のインスタンスに渡され解析および実行が行われる文字列に、有害なコードを挿入するという攻撃です。SQL Server では、構文的に有効であれば受信したクエリがすべて実行されるため、SQL ステートメントを構成するすべてのプロシージャにおいて、インジェクションに対する脆弱性を検証する必要があります。高いスキルを持つ決然たる攻撃者は、パラメータ化されたデータであっても操作できるのです。 SQL インジェクションは主に、SQL コマンドと連結されて実行されるユーザー入力変数にコードを直接挿入することにより行われます。それほど直接的ではない攻撃では、悪意のあるコードが、テーブル内の記憶領域に格納される文字列に挿入されたり、メタデータとして挿入されたりします。格納された文字列が動的な SQL コマンドに後で連結された場合、悪意のあるコードが実

    SQL インジェクション
  • 特集:基礎から理解するデータベースのしくみ - 特集:基礎から理解するデータベースのしくみ:ITpro

    「データベースはブラックボックス。どんなSQL文を投げたらどんな結果が返ってくるかさえ知っていればよい」---そう思っている人も多いかもしれません。 しかし,物のソフトウエア・エンジニアを目指すのであれば,データベースが動く仕組みを学ぶことは避けて通れません。パフォーマンスなどに問題が生じたときどこから手を付けていいのか皆目見当がつかない,といった事態に陥りかねません。 市販のRDBMSの内部はかなり複雑ですが,基的な部分を理解するのはそれほど難しくありません。この特集でデータベースの動く仕組みを理解してください。 イントロ ●ブラックボックスのままでいいの? 基礎から理解するデータベースのしくみ(1) Part1 ●SQL文はどのように実行されるのか 基礎から理解するデータベースのしくみ(2) 基礎から理解するデータベースのしくみ(3) 基礎から理解するデータベースのしくみ(4) 基

    特集:基礎から理解するデータベースのしくみ - 特集:基礎から理解するデータベースのしくみ:ITpro
    tatsu1010
    tatsu1010 2007/11/25
    これはいい勉強になりそう。ちゃんと基礎押さえておかなきゃ。
  • SQL 表結合(join) - 単純結合、等価結合、非等価結合、外部結合、再帰結合 - SAK Streets

    SQL 表結合(join) - 単純結合、等価結合、非等価結合、外部結合、再帰結合 様々な連結テーブルが作成できるが、良く使うものはビュー(create view) に しておくと効率が良い。結合は、テーブルとテーブル、ビューとビュー、テーブ ルとビューなど複雑にできる。(テーブル連結) ■単純結合 ・現実的に単純結合を使う機会はないだろう。 次の例では、受注m の各レコードに 品番m の全レコードが結合される。 受注m のレコード数 x 品番m のレコード数の結果が問い合わされる。 select * from sak.受注m, sak.品番m ; ■等価結合 ・等価結合は、特定のキーで表を結合します。 条件のどちらかのデータが存在しない場合、結果セットには含まれません。 現実的には外部結合が一番使いやすいと思います。 select 受注番号, 受注m.品番 品番, 品番m.入庫数 入庫数

    tatsu1010
    tatsu1010 2007/11/15
    外部結合辺りを参考に。
  • 1