FC2ブログ

単一行関数

内容整理メモ

■単一行関数とは
 ・各行を操作し、行ごとに1つの結果を返す関数
 ・文字関数/数値関数/日付関数/変換関数/汎用関数がある

■文字関数
 ◇UPPER(列名|式)
  英字値を大文字に変換
 ◇LOWER(列名|式)
  英字値を小文字に変換
 ◇INITCAP(列名|式)
  英字値の各語の先頭文字を大文字に、残りを小文字に変換
 ◇SUBSTR(列名|式, m[, n])
  文字列のm文字列目からn文字文の文字を切り出す。
 ◇INSTR(列名|式, '文字列' [,m][,n])
  第2引数の文字列の第1引数での出現位置を返す。
 ◇LPAD(列名|式, n '文字列')
  文字値を右揃えにし、合計の文字列幅がnバイトになるまで左側を指定文字列で埋める
 ◇RPAD(列名|式, n '文字列')
  文字値を左揃えにし、合計の文字列幅がnバイトになるまで右側を指定文字列で埋める
 ◇CONCAT(列名1|式1, 列名2|式2)
  2つの文字列を連結する。
 ◇LENGTH(列名)
  文字列の文字数を返す。
 ◇TRIM( [LEADING|TRAILING|BOTH]
     ['切り捨てる文字列' FROM] '切り捨て対象の文字列' )
  文字列から先頭文字または末尾文字を切り捨てる。
 ◇REPLACE('置換対象の文字列', '置換前の文字列', ['置換後の文字列']
  文字列内を検索し、存在した時は指定文字に置換する。


■数値関数
 ◇TRUNC(列名|式[, n])
  列または式の値を少数第n位までに切り捨てる。
 ◇ROUND(列名|式[, n])
  列または式の値を少数第n位までに四捨五入する。
 ◇MOD(列名|式, n)
  列または式の値をnで割った余りを戻す。

■日付関数
 ◇SYSDATE
  Oracleサーバの現在日時を返す。
 ◇MONTHS_BETWEEN(日付1, 日付2)
  2つの日付の間の月数を求める。
 ◇ADD_MONTHS(日付データ,n)
  日付データにnヶ月加算する。
 ◇LAST_DAY(日付データ)
  日付データを含む月の月末の日付を返す。
 ◇NEXT_DAY(日付データ, '文字列')
  日付データより後の指定曜日の日付を返す。第2引数に曜日を表す数値または文字列を指定する。

■変換関数
 ◇TO_CHAR(日付データ|数値データ[, 表示書式])
  日付値または数値を文字列に変換する
 ◇TO_NUMBER(文字データ[, 表示書式])
  数字を表す文字列を数値に変換する。
 ◇TO_DATE(文字データ[, 表示書式])
  日付を表す文字列を日付値に変換する。

■汎用関数
 ◇NVL(列名|式, 値)
  列または式の値がNULL値の場合、第2引数の値を返す。NULL地で無い場合は列または式の値を返す。
 ◇NVL2(列名|式, 値1, 値2)
  列または式の値がNULL値でなかった場合、値1を返す。NULL値の場合、値2を返す。
 ◇COALESCE(列名1|式1, 列名2|式2, …)
  指定された引数を左から順に評価し、最初のNULLで無い値を返す。
 ◇NULLIF(列名1|式1, 列名2|式2)
  第1引数の値と第2引数の値を比較し、等しい場合NULL値を返す。等しくない場合、第1引数の値を返す。
 ◇DECODE(列名|式, 条件1, 戻り値1
      [, 条件2, 戻り値2] …
      [, デフォルト値])
  列または式の値と各条件の値を1つずつ比較し、等しい場合は対応する戻り値を返し、一致しない場合はデフォルト値を返す。
 ◇CASE 列名|式
   WHEN 条件1 THEN 戻り値1
   [WHEN 条件2 THEN 戻り値2] …
   [ELSE デフォルト値] END
  列または式の値と各条件の値を1つずつ比較し、等しい場合は対応する戻り値を返し、一致しない場合はデフォルト値を返す。
スポンサーサイト



データの制限およびソート

内容整理メモ

■SELECT文の条件指定
 条件を絞り込んでデータを検索する場合、WHERE句を使う。
 SELECT {* | 列名[, 列名, …]} FROM 表名 WHERE 条件式;
 
 ※条件指定時
  →文字列、日付などのリテラルを条件に指定する場合は一重引用符(')で囲む
  →数値はそのまま指定
  →日付は書式を区別する
  →文字検索は大文字、小文字を区別する

■比較演算子
 =        等しい
 >        より大きい
 >=        以上
 <        より小さい
 <=        以下
 <>, ^=, !=    等しくない
 BETWEEN a AND b a~bの間
 IN(値1,値2,…)  値リストのいずれかと同じ
 LIKE       ワイルドカード検索
 IS NULL     NULLの検索

 ◇BETWEEN演算子
  WHERE 列名 BETWEEN 下限 AND 上限   ---> 下限≦列名≦上限
  WHERE 列名 NOT BETWEEN 下限 AND 上限 ---> 下限<列名<上限
  
 ◇IN演算子
  WHERE 列名 IN(値リスト) ---> 指定した値リストと一致するデータがあった場合
  
 ◇LIKE演算子
  ワイルドカード検索を実現する
  □パターン文字
   %      0文字以上の任意の文字を表す
   _(アンスコ) 1文字の任意の文字を表す
  
 ◇IS NULL演算子
  WHERE 列名 IS NULL ---> 列がNULLの場合
  
■論理演算子
 AND  指定した両方の条件を満たす
 OR   指定したいずれかの条件を満たす
 NOT  条件を満たさない

■優先順位
 (*、/)(算術演算子) > (+、-)(算術演算子) > (||)連結演算子 > (=、>、>=、<、<=など)比較演算子 > NOT(論理演算子) > AND(論理演算子) >OR(論理演算子)

■ソート
 ORDER BY句でソートする
 
 □構文
  SELECT { * | [列名[,列名,…]]} FROM 表名 [WHERE 条件式]
  ORDER BY 列名[, 列名, …];
  ※ORDER BY句は複数列を指定可(指定順にソートする)
  
 □指定可能なオプション
  ASC     行を昇順に表示(デフォルト)
  DESC     行を降順に表示
  NULLS FIRST NULLが含まれる場合、NULLを最初に表示
  NULLS LAST  NULLが含まれる場合、NULLを最後に表示
  
■置換変数
 置換変数を使うと同じSQL文の条件や列などを一括して扱うことができる。
 変数目の前に&もしくは&&を指定する。
 文字や日時を指定する場所で置換変数を使用する場合は、一重引用符で囲む
 
 □置換変数
  &   対話式にさまざまな値を入力可
  &&  一度入力した値を再利用

 □置換変数を使用するためのコマンド
  DEFINE  置換変数に入力する値をあらかじめ指定
  UNDEFINE DEFINEで定義した値を解除
  ACCEPT  置換変数に入力する値をあらかじめ指定

 □置換変数が使用できる個所
  WHERE句   ex.. WHERE aa=&id;
  ORDER BY句 ex.. ORDER BY &name
  列の式   ex.. SELECT aa, &name, bb FROM …;
  表の名前  ex.. FROM &tbl

SQL Select文を使用したデータの取得

整理内容メモ

■SQL文の種類
 □データ操作言語(DML文)
  ・SELECT
  ・INSERT
  ・UPDATE
  ・DELETE
  ・MERGE
 □データ定義言語(DDL文)
  ・CREATE
  ・ALTER
  ・DROP
  ・RENAME
  ・TRUNCATE
  ・COMMENT
 □トランザクション制御文
  ・COMMIT
  ・ROLLBACK
  ・SAVEPOINT
 □データ制御言語(DCL文)
  ・GRANT
  ・REVOKE

■SELECT文の機能
 □射影(投影)
  表内の特定の列のデータを取り出す
 □選択
  表内の特定の行のデータを取り出す
 □結合
  別々の表に格納された同じ情報を持つ列を参照し、両方のデータを紐付けて取り出す

■SELECT文基本構文
 SELECT { * | 列名[, 列名, …] } FROM 表名;

■SQLで使用する算術式
 表に格納したデータに対して算術式を使える
 FROM句以外の句に指定可

 + : 加算
 - : 減算
 * : 乗算
 / : 除算

■算術演算子の優先順位
  高 → * /
  低 → + -
 ※同じ優先順位の演算子は左から順に評価
 ※演算子の評価順序を変えるには()で囲う。

■NULLの扱い
 値が何も格納されていない状態。0(ゼロ)や空白とは異なる。
 算術式内にNULL値があると全てNULLを返す。

■列見出し(別名)設定
 (1)列名の後ろにスペースを入れ、別名を指定
  → SELECT aa AA FROM tbl;
 (2)ASキーワードを使って指定
  → SELECT aa AS AA FROM tbl;

 ※列見出しは全て大文字
 ※列見出しはSELECT句に指定した列名をそのまま表示
 ※SELECT句に指定した算術式はそのまま表示
 ※見出しに小文字や記号/スペースを含める場合、二重引用符(")で囲う。
  → SELECT last_name "Name$" FROM tbl;

■連結演算子
 連結演算子を使って列や文字列を結合できる。
 ・連結演算子はパイプ文字(||)で記述する
 ・列と列を連結できる
 ・列と文字列(リテラル)を連結できる。
  ※リテラル
   リテラル(文字や日時)を扱う場合は、一重引用符(')で囲む。数値の場合は一重引用符は不要
 
 SELECT item1, item2 || item3 FROM tbl;
 SELECT item1, 'Name is' || item2 FROM tbl;

■代替引用符演算子
 文字列の一部に一重引用符(')を含む場合代替引用符(q)演算子を使う
 SELECT q'[It's ]' || name FROM tbl;

■DISTINCTキーワード
 SELECT文による選択結果から重複した行を除去
 SELECT句に指定、複数列指定時は指定した列の組み合わせで重複データを除去

■DESCRIBEコマンド(省略系:DESC)
 表の構造を表示(SQL文でなくOracle独自コマンド)
 DESCRIBE tbl;

11g SQL基礎Iの試験内容

情報入手元 : 11gSQL基礎I

■11g SQL基礎I[11g SQLI]
 試験番号:1Z0-051
 試験料:15,750 円(税込)
 試験時間:120分
 出題数:55問
 合格%:60%
 
 《テスト内容》
  □SQL Select文を使用したデータの取得
   ◇SQL SELECT文の機能の説明
   ◇基本的なSELECT文の実行
  □データの制限およびソート
   ◇問合せで取得する行の制限
   ◇問合せで取得する行のソート
   ◇アンパサンド置換を使用した実行時の出力の制限とソート
  □単一行関数
   ◇SQLで使用できる各種関数の説明
   ◇SELECT文での文字、数値および日付関数の使用
  □変換関数および条件式の使用
   ◇SQLで使用できる各種変換関数の説明
   ◇TO_CHAR, TO_NUMBERおよびTO_DATE変換関数の使用
   ◇SELECT文での条件式の適用
  □グループ関数を使用したデータの集計
   ◇使用可能なグループ関数の理解
   ◇グループ関数の使用方法の説明
   ◇GROUP BY句を使用したデータのグループ化
   ◇HAVING句を使用したグループ化された行の組込みまたは除外
  □複数の表のデータの表示
   ◇等価結合および非等価結合を使用した、複数の表からデータにアクセスする SELECT文の記述
   ◇通常は結合条件を満たさないデータの外部結合での表示
   ◇外部結合による結合条件に一致しないデータの表示
   ◇2つ以上の表のすべての行のデカルト積の生成
  □副問合せによる問合せの解決方法
   ◇副問合せの定義
   ◇副問合せで解決可能な問題の種類の説明
   ◇副問合せの種類の列挙
   ◇単一行副問合せと複数行副問合せの記述
  □集合演算子の使用方法
   ◇集合演算子の説明
   ◇集合演算子を使用して、複数の問合せを単一の問合せに組み合わせる
   ◇戻される行の出力順序を制御する
  □データ操作
   ◇データ操作言語(DML)の各構文の理解
   ◇表への行の挿入
   ◇表の行の更新
   ◇表からの行の削除
   ◇トランザクションの制御
  □DDL文を使用した表の作成および管理
   ◇主要なデータベース・オブジェクトの分類
   ◇表構造の説明
   ◇列で使用可能なデータ型のリスト
   ◇単純な表の作成
   ◇表の作成時における制約の作成方法の説明
   ◇スキーマ・オブジェクトの機能の説明
  □その他のスキーマ・オブジェクトの作成
   ◇単一ビューおよび複合ビューの作成
   ◇ビューのデータの取得
   ◇順序の作成、メンテナンスおよび使用
   ◇索引の作成およびメンテナンス
   ◇プライベートおよびパブリック・シノニムの作成






プロフィール

romanesque

Author:romanesque
ソフトウェアの開発やら運用やらいろいろとやってきました。最近は世間で言うSE職とやらをやっています。

このブログでは、「気の向くまま」を基本コンセプトに思った事(仕事~趣味)を書いていこうと思っています。

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR