アフィリエイト広告を利用しています

2024年02月14日

SQL SUBSTR関数とINSTR関数(文字関数)

SUBSTR関数とINSTR関数は、単一行関数のうちの文字関数に分類される。
文字関数とは、文字データを受け取り、文字データを返す関数。


SUBSTR関数

引数の文字列を、指定した位置から指定文字数分返す関数。

 SUBSTR(引数文字列, 指定位置(m), 指定文字数(n))

・引数で指定した文字列のm文字目からn文字分の文字列を返す。
・nが省略された場合はm文字目から末尾までの文字列を返す。
・mに負の値が指定された場合は、文字列の末尾から数えてm文字目からn文字分の文字列を返す。


INSTR関数

引数の文字列から、検索文字列が何文字目にあるかを返す関数。
なお、検索文字列が見つからなかった場合は0(ゼロ)を返す。

 INSTR(引数文字列, 検索文字列, 検索開始位置(m), 指定回数(n))

・引数で指定された文字列のm文字目以降からn回目に出現した検索文字列の先頭の位置を返す。
・m,nが省略された場合は、どちらも1がデフォルト値となる。
・mに負の値が指定された場合は、文字列の末尾から(先頭に向けて)検索する。
 ただし、負の値が指定されても先頭からの位置を返す。



その他、主な文字関数には次のものがある。

関数 説明
UPPER 文字列を大文字に変換
LOWER 文字列を小文字に変換
INITCAP 先頭の文字を大文字に変換
CONCAT 2つの文字列を結合
SUBSTR 文字列から部分的に文字列を取得
LENGTH 文字列の長さを取得
INSTR 検索文字が何文字目にあるかを数値で返す
LPAD 文字列の左側に指定した文字を埋め込む
RPAD 文字列の右側に指定した文字を埋め込む
TRIM 文字列前後の指定文字を削除
REPLACE 文字列の一部を別の文字列に置換


2023年12月04日

SQL データ変換

暗黙的なデータ変換

暗黙的なデータ変換とは、データ型の変換が意味を持つ場合に、Oracle Databaseが自動的に行う変換。
意味を持たない変換の場合にはエラーとなる。

ただし、暗黙的なデータ変換には様々な問題があるため、常に明示的に変換する事が推奨される。


以下のような場合に変換が行われる。

数値を指定すべきところに文字列が指定された場合

文字列を数値に変換


日付が指定された場合

デフォルトの日付表示書式にしたがい日付値に変換


文字列を指定すべきところに数値が指定された場合

数値を文字列に変換


文字列を指定すべきところに日付値が指定された場合

日付値を文字列に変換


明示的なデータ変換

明示的なデータ変換とは、変換関数を使用して行うデータ変換のこと。
Oracle Databaseにはさまざまな変換関数が用意されているが、数値を日付値に変換したり、日付値を数値に変換する関数は存在しない。


以下は主な変換関数。

変換関数 説明
TO_CHAR 数値や日付値を文字列に変換
TO_NUMBER 文字列を数値に変換
TO_DATE 文字列を日付値に変換

データ変換.jpg
・CHARからNUMBERへの変換はTO_NUMBER
・CHARからDATEへの変換はTO_DATE
・NUMBERからCHARへの変換はTO_CHAR
・DATEからCHARへの変換はTO_CHAR

※NUMBERからDATE、DATEからNUMBERへの変換は不可


2023年11月01日

SQL スキーマ・オブジェクト

データベースに格納できる表やビューなどを総称してデータベース・オブジェクトと言う。データベース・オブジェクトは必ずいずれかのユーザーに所有されており、スキーマ・オブジェクトとも呼ばれる。

ユーザーが人間であるならば、スキーマは人間がオラクルから借りたオフィスの一室のようなもの。
借りたオフィスに何を置こうが、改修しようが他には全く影響がない。
また、他の人を自分のオフィスに招待することもでき、オフィスに置いてあるものには利用制限をかけることもできる。

主なスキーマ・オブジェクトは以下のとおり。

要素 説明
データを格納
索引 データ取得の速度を向上させる
順序 一意な整数値を生成
ビュー 1つ以上の表を基にして作成する仮想的な表
シノニム オブジェクトのエイリアス(別名)

なお、スキーマ・オブジェクトは特定のユーザーに所有されるものであり、記憶域やロール、ユーザー等システム全体で共有されるものはスキーマ・オブジェクトではない。


2023年09月29日

SQL 数値書式

要素 説明 入力例 表示
9 指定された桁数の値を表示 999999 1234
0 先行または後続を0埋めして表示 099999 001234
$ $記号の表示 $99999 $1234
L ローカル通貨記号の表示
(日本語環境の場合は\)
L99999 \1234
. 指定された位置に小数点を表示 999.999 1.234
D 指定された位置に小数点を表示 999D999 1.234
, 指定された位置にカンマを表示 999,999 1,234
G 指定された位置にカンマを表示 999G999 1,234
S +または-記号を表示 S999999 +1234
-1234
V 値に10のn乗を掛けて表示
(nはV後の9で示される)
999V99 123400
MI 負の値の文末に-記号を表示 999999MI 1234-
PR 負の値の前後を<>で囲んで表示 999999PR <1234>


2023年09月01日

SQL リレーショナル・データベース(RDB)の特性


リレーショナルデータベースは関係データベースとも呼ばれ、データを表形式で管理するデータベースのこと。
テーブル(表)は、レコード(行)とフィールド(列)によって形成され、テーブル同士を結合することができる。

リレーショナルデータベース管理システムは、ACID特性という概念に基づいて設計されており、トランザクション処理が保持すべき4つの要素を頭文字で表したもの。

Atomicity(原子性)

「処理が全て(ALL)実行されたか、全く実行されない(nothing)かのいずれかである」という特性。
(仮にトランザクションが失敗したとしても、データが中途半端な状態にはならない)


Consistency(一貫性)

「トランザクションの実行前後で、データの整合性が補償される」という特性。
(制約に反するような処理があれば、トランザクションを中断しロールバックする)


Isolation(分離性)

「同時に実行されたトランザクション同士が、相互に干渉しない」という特性。
(複数のプログラムが同時に同じデータを更新しないよう排他制御を行う)


Durability(永続性)

「記録されたデータが、簡単には失われない」という特性。
(何らかの障害が発生した場合は、ログを利用して障害発生前の状態に復旧できる)

2023年07月31日

SQL ALTER TABLEコマンド

新しい列を追加する

ALTER TABLE ADD

 ALTER TABLE <テーブル名> ADD COLUMN <列名> <データ型>;



列にデフォルト値を設定する

ALTER TABLE MODIFY

 ALTER TABLE <テーブル名> MODIFY <列名> DEFAULT <値>;



列を削除する

ALTER TABLE DROP

 ALTER TABLE <テーブル名> DROP COLUMN <列名>;



列を未使用化する

ALTER TABLE SET UNUSED

 ALTER TABLE <テーブル名> SET UNUSED COLUMN <列名>;



テーブルを読取り専用モードへ変更する

ALTER TABLE READ ONLY

 ALTER TABLE <テーブル名> READ ONLY;



テーブル名を変更する

ALTER TABLE RENAME

 ALTER TABLE <現テーブル名> RENAME TO <新テーブル名>;

2023年06月27日

SQL NULL値を扱う汎用関数

NVL関数

NVL関数は値がNULL値であった場合に、別の値を返す関数。

 NVL(第1引数, 第2引数)

第1引数の値がNULL値の場合、第2引数の値を返す。
第1引数の値がNULL値以外の場合、第1引数の値を返す。


NVL2関数

NVL2関数は値がNULL値だった場合と、NULL値以外の場合で返す値を変えることができる関数。

 NVL2(第1引数, 第2引数, 第3引数)

第1引数の値がNULL値以外の場合、第2引数の値を返す。
第1引数の値がNULL値の場合、第3引数の値を返す。

なお、第1引数にはNULLリテラル以外の値を指定しなければならない。
(※指定した列の値が結果としてNULL値となる場合は問題ない。)


NULLIF関数

NULLIF関数は第1引数と第2引数を比較して、等しい場合にNULLを返す関数。

 NULLIF(第1引数, 第2引数)

第1引数と第2引数が等しい場合はNULL値を、等しくない場合は第1引数の値を返す。


COALESCE関数

COALESCE関数は引数の値を順に判定し、最初に見つかったNULL値以外の値を返す関数。

 COALESCE(第1引数, 第2引数, … )

指定された引数全てがNULL値の場合は、NULL値を返す。

COALESCE関数の引数は、すべて同じデータ型でなければならない。
異なるデータ型の値を指定するとエラーとなる(暗黙的なデータ変換は行われない)。
少なくとも2つの引数がなければならない。

2023年05月26日

SQL ERモデルの要素

ERモデルとは、システムの扱う対象を、「エンティティ」(実体)、「アトリビュート」(属性)、「リレーションシップ」(関連)という3つの構成要素を用いてモデル化したもの。


エンティティ(実体):表

エンティティはデータベースに含まれるテーブルのことを指す。
属性の意味がある「アトリビュート」が入ってくる。


アトリビュート(属性):列

アトリビュートは、データベース上のテーブルが持つフィールドのことを指す。


リレーションシップ(関連):外部キー

リレーションシップは参照整合性制約のことで、物理データベースでは外部キーが設定される。
単にリレーションと呼ばれる場合もある。

2023年04月18日

間違いやすい言葉の使い分けリスト

資料作成時によく使う言葉の中で、使い分けに悩む場面がある。
調べてみると間違った表記をしている場合もある。

そんな間違いやすい言葉の使い分けリスト

「規定」と「規程」の使い分け

"きまり"を意味する「規程」と「規定」だが、規程には「一連の」、規定には「個々の」という意味が含まれている。
「規定」は「個々の条文」のことで、それらをひとまとめにしたものが「規程」である。
例えば、一つひとつのファイルを規定とするならば、それをまとめたフォルダが規程となる。


「振込」 「振込み」 「振り込み」の使い分け

以下の使い分けも見受けられるが、
「振込」「振込み」「振り込み」はどれを使っても問題ないと言われている。
ただし、使うときは全て統一したほうが見る側にとっても分かりやすい。

後ろに口座(振込口座)や金額(振込金額)など、別の単語を付ける場合は「振込」
名詞として使う場合は「振込み」(本日中に三千万円の振込みがないと‥)
動詞として使う場合は「振り込み」(本日中に三千万円を振り込みます。)


「元」「基」「下」の使い分け

「元」の使い方

元とは「根本。根源。作用の起こるところ」といった意味を持つ漢字。
 「資料を一度取り出して元の場所に戻す場合にも、資料の保管先を操作者が簡単に把握できるようにする。」
のように「物事の始まり」を表す場合には「元」の漢字が使われる。


「基」の使い方

基は「物事の土台や基礎のこと」を意味する。
 「従前のプログラムを基に、各業界のリーディングカンパニーと共同して、インキュベーションプログラムを開始いたします」
といったような使い方をする。


「下」の使い方

下は字の通り「上下の下」を意味する漢字。
 「新体制の下、一層のサービス向上に努めて参ります」
といった使い方をするため、上記の「元」や「基」とは意味も違い使い方も異なる。

2023年03月15日

SQL WHERE句に記述されている「(+)」の意味

WHERE句で「(+)」と記述されたSQLをたまに見かけることがある。

この「(+)」は外部結合演算子と呼ばれるもの。

外部結合演算子(+)を右側の項目に付与するか、左側の項目に付与するかで「LEFT OUTER JOIN」と「RIGHT OUTER JOIN」どちらの意味になるかが変わってくる。

右側に「外部結合演算子(+)」がある場合(LEFT OUTER JOIN)


  WHERE テーブルA.カラム名 = テーブルB.カラム名(+)

標準SQLで記述する場合

FROM テーブルA LEFT OUTER JOIN テーブルB ON テーブルA.カラム名 = テーブルB.カラム名


左側に「外部結合演算子(+)」がある場合(RIGHT OUTER JOIN)


  WHERE テーブルA.カラム名(+) = テーブルB.カラム名

標準SQLで記述する場合

FROM テーブルA RIGHT OUTER JOIN テーブルB ON テーブルA.カラム名 = テーブルB.カラム名

その買うを、もっとハッピーに。|ハピタス
\ハピタスの紹介キャンペーンです/
⇒登録後に行う「ハピタス検定」の答えはこちら

※ハピタスをもっと知りたいかたは他で検索してみてください

ブログ内を検索
ファン
カテゴリ
よく倒されますが、へこたれながら起き上がるSEの備忘録です

Windows(20)
SQL(1)
JAVA(4)
VBScript(14)
VBA(15)
Other(14)
書籍(1)
記事ランキング
  1. 1. 確率の収束に必要な試行回数
  2. 2. no img Tera Term(テラターム) 覚えておくと便利なコマンド一覧
  3. 3. no img VBScript マウスポインタを自動的に移動させクリックするスクリプト
  4. 4. no img Windows ディスク使用率100%を改善させる
  5. 5. VBScript タスクスケジューラのメッセージを最前面に表示するスクリプト
広告
会員登録せずに無料で読める!! 漫画読み放題のサービス

動画編集・YouTuberを始めたい方向け 無料動画編集ソフト

クラウド型レンタルサーバー クラウド型レンタルサーバー

Amazonで購入する
※Amazonのアソシエイトとして、七転八起SEの備忘録は適格販売により収入を得ています。

メンタルヘルス・マネジメント検定試験II種ラインケアコース過去問題集_2023年度版
メンタルヘルス・マネジメント検定試験II種 過去問題集〈2023年度版〉