0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Java基礎知識 研修備忘録 8日目

Last updated at Posted at 2025-07-12

DB

DB=データベース

データ→情報
ベース→基地

図では円柱型で表し、様々な情報が格納されている

RDB

RDB = リレーショナルデータベース
RDBMS = リレーショナルデータベース管理システム

RDBの内部構造
テーブル(表)と呼ばれる単位で大量に管理する
横の行(レコード)と縦の列(カラム)によって構成されている

SQLの記述ルール

・製品ごとに記述方法が一部異なるが、8割は同じ記述方法(標準SQL)
・予約語(キーワード)は慣習として大文字で記述(小文字でも動くが見づらい)
・文の末尾は「;」(セミコロン)(1文の場合は書かないことが多い)
・文中に改行、空白を含んでもOK
・文字列、日付の型の値は「'」(シングルクオーテーション)で囲む
・テーブル名、カラム名に日本語を使用しても動作する

Java SQL
1行コメント // --
複数行コメント /* /*
*/ */
※「--」の後に「 」が入る

データ型

Oracle MySQL
固定長文字列 CHAR CHAR
可変長文字列 VARCHAR2 VARCHAR
数値 NUMBER INT
日付のみ - DATE
日付と時刻 DATE -

固定長文字列=不足分を半角スペースで埋める
可変長文字列=データをそのまま格納させる(メモリの節約になる)

BLOB:バイナリデータをレコード中に直接可能できるデータ型
=音声や画像などのデータであってもバイナリデータとして格納できる

DML、DCL、DDL

種類 記述
DML SELECT文
INSERT
UPDATE文
DELETE文
DCL COMMIT文
ROLLBACK文
DDL CREATE文
ALTER文
DROP文

DML=データ操作言語
DCL=データ制御言語
DDL=テーブル操作言語

SELECT文

既存データを検索する文

SELECT
    選択列リスト(複数項目はカンマで区切る、*は全てのカラムの意)
FROM
    テーブル名
[WHERE 絞り込み条件]
[GROUP BY グループ化列リスト]
[HAVING 集計後の結果に対する絞り込み条件]
[ORDER BY 並び替え列リスト]

ポイント
・SELECT句とFROM句は必須
・[]で囲んだ句は任意
・句の順序は守る必要がある

ORDER BY句

並び替え
ASC:昇順
DESC:降順

・ASCは省略可能(デフォルトがASC)
・SELECT句で使用していない列でも使用可能
・ORDER BY句がない場合、順序は保証されない

WHERE句

WHERE
    条件式
比較演算子
記述 意味
= 等しい
!= (Oracle)等しくない
<> (MySQL)等しくない
>= 以上
<= 以下
> より大きい
< より小さい
論理演算子
記述 意味
AND かつ
OR または
BETWEEN演算子

[NOT] BETWEEN a AND b :a以上b以下の範囲内/範囲外

IS NULL演算子

IS [NOT] NULL :NULL値である/でない

IN演算子

[NOT] IN (値リスト):値リスト内のいずれかと等しい/いずれとも等しくない
※NULLを含んだ値も出力する

LIKE演算子

[NOT] LIKE :文字パターンと一致する/一致しない

特殊文字

意味
% 任意の1文字以上の文字列
_ 任意の1文字

LIKE パターン文字列 ESCAPE エスケープ文字($など)で
エスケープ文字を指定して検索できる

NOT NULL制約

テーブル設計でカラムに指定できる制約
NOT NULL制約指定されているカラムにはNULL値を設定できない

主キー、外部キー

主キー=PK(プライマリキー)とも
テーブルごとに設定されている、テーブル内である1つの行を一意に特定できる値を持つカラム、または複数行の組み合わせ

・NULL値を設定できない(必ずなにかしらの値が入る)
・一意でなければならない(重複してはならない)
・一般的に主キーの値は変更してはならない

外部キー=FK(フォーリンキー)とも
自分のテーブルを他のテーブルと関連付けるためにあらかじめ設定する列

・外部キーは参照先のテーブルの主キー列または一意キー列と同じ項目となる
・外部キーはNULL値も設定できる

ER図

論理名称:設計=利用者向けの名称
物理名称:実装=コンピュータ向けの名称

結合

関連する複数のテーブルから1つの結果票を得る仕組み

SELECT
    テーブル名.カラム名
FROM
    テーブル名1
~ JOIN テーブル名2
ON テーブル名1.カラム名 = テーブル名2.カラム名

※3つ以上の場合は「~ JOIN」~「ON」を繰り返す

種類 説明
INNER JOIN 内部結合
JOINしたテーブルのうち左と右の両方にデータがある場合のみ取得
LEFT OUTER JOIN 左外部結合
左にあれば取得する、右がない場合は足りない項目をNULLで埋めて取得
RIGHT OUTER JOIN 右内部結合
LEFT OUTER JOINの逆、使用頻度は低い

別名(エイリアス)

キーワード 使い方 意味
AS a AS b aをbとみなす

※空白スペースを入れることでASを省略可能
※列も表も別名をつけられるが、表別名を設定するともとの名前をSQL内で使えなくなる

グループ関数

行のまとまりごとに情報を算出する関数

記述 意味
SUM 各行の値の合計を求める
AVG 各行の値の平均を求める
MAX 各行の値の最大値を求める
MIN 各行の値の最小値を求める
COUNT 行数をカウントする
グループ関数名(列名)

注意点
・SELECT句とHAVING句でのみ使用可能
・SUMとAVGは列にNULLが含まれる場合DBMSごとに挙動が異なる場合がある
・グループ関数のネストは。Oracleのみ二重までネスト可能だが、MySQLではエラーとなる

DISTINCT、ALL

記述 意味
DISTINCT 重複行を除外する
ALL 重複行を含める、省略可能

※SELECT句の後ろに書く

GROUP BY句

指定した列をグループ化する
一般的にはグループ関数と併用

注意点
・GROUP BY句で指定していない列名をSELECT句で使用するのはNG(グループ関数はOK)
⇒Oracleだとエラー、MySQLだとエラーにならないが出力結果が不確定

HAVING句

集計した行に対して絞り込みを行う
GROUP BY句と併せて使用することが多い
(単独でも使用可能)

注意点
・実務での使用頻度は低い
・使用禁止のプロジェクトもある

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?