マインドマップギャラリー SQL学習のまとめ
詳細な SQL の基礎知識ポイント、詳細な紹介、包括的な説明。興味のある友人に役立つことを願っています。
2023-12-08 18:22:06 に編集されましたSQL の概念の基本
リレーショナルデータベース
データベース(DB):コンピュータで処理されるデータの集合。データは行(レコード)と列(フィールド)から構成される2次元のテーブルで管理されます。 1 つのセルに入力できるデータは 1 つだけです。データベースは複数のテーブルで構成されており、データの読み書きは行単位で行われます。 データベース管理システム: (DBMS): データベースを管理するコンピュータ システム。
リレーショナル データベース: データの関係を 2 次元のテーブルの形式で表現するデータベース。
リレーショナルデータベースの正規化
第 1 正規形: 重複フィールドを削除し、各フィールドが最小の論理単位になる
第 2 正規形: エンティティ属性が主キーに完全に依存する必要があります。
第 3 正規形: キーのサブ列の候補に関数の依存関係を渡す非キー列がないことが必要です。
SQL
データベースの操作に使用される言語
DDL: データベース オブジェクト (データベース、テーブル、フィールドなど) を定義するために使用されます。 一般的な命令: 作成、削除、変更、
DML: テーブル レコードのクエリまたは変更に使用されます。 一般的な命令: 選択、挿入、更新、削除
DCL: データ変更の確認、つまりトランザクション制御。 一般的なコマンド: 付与、取り消し
DQL: 必要に応じて、データに対して対応するクエリを実行します。 共通コマンド: 選択
DTL: データへの変更を確認またはキャンセルします。つまり、トランザクションのコミットとロールバックです。 一般的な命令: コミット、ロールバック
一般的なデータ型
char: 固定長文字列
vchar: 可変長文字列
int: 整数型
日付型:データを日付型で指定します。
制約
データを制限または条件を追加する
非NULL制約: NULL以外
主キー制約: 主キー
一意の制約: 一意
デフォルト値制約: デフォルト
チェック制約: チェック
外部キー制約: 外部キー
オペレーター
算術演算子: 、-、*、/
比較演算子
=: に等しい
>=
<=
>
<
<>: 等しくない
論理演算子: ではない、そして、または
null で算術演算を行う値はすべて null です。 比較演算に null を使用することはできません。 論理演算子と null は 3 値の論理を生成します
関数
算術関数
四則演算:加算( )、減算(-)、乗算(*)、除算(/)
abs (数値): 絶対値を計算する関数
mod (配当、除数): 剰余関数は SQL Server ではサポートされていません。
ラウンド関数 (オブジェクト値、保持される小数点以下の桁数) 丸め関数
文字列関数
文字列1||文字列2: 文字列連結関数が文字列連結を実行するときに、NULL が含まれている場合、得られる結果も ヌル。 「||」も変形関数だからです。 ||SQL Server および MySQL では使用できません
長さ (文字列): 文字列内の文字数を数え、文字列の長さを計算します。 SQL Server は length を使用できません。SQL Server は len() を使用します。
下位(文字列): 英語の文字列の場合のみ、すべての文字列を小文字に変換します
上部(文字列): 英語の文字列の場合のみ、すべての文字列を大文字に変換します
replace (オブジェクト文字列、置換前の文字列、置換後の文字列): 文字列の一部を別の文字列に置き換えます。
部分文字列 (インターセプト開始位置からインターセプト数のオブジェクト文字列): 文字列インターセプト。 PostgreSQL と MySQL でのみサポートされています。他のデータベースについてはメモを参照してください。
日付関数
現在の日付: 次のような SQL 実行の日付を返します。 現在の日付を選択してください PostgreSQL、MySQLのサポート
現在の時刻: SQLが実行された時刻を返します。 PostgreSQL、MySQLのサポート
現在のタイムスタンプ: 現在の日付と時刻を取得する SQL Server、PostgreSQL、MySQL でサポートされています。その他のコメントを参照してください。
抽出(日付からの日付要素): 「年」、「時間」などの日付要素をインターセプトします。 数値型を返します PostgreSQL、MySQLのサポート
変換関数
データ型変換
キャスト(変換したいデータ型として変換前の値):
値の変換
合体(データ1,データ2,...)
集計関数
述語
のように
の間
無効である
nullではありません
で: NULLデータは選択できません。
ありませんで: NULLデータは選択できません。
存在する
サブトピック
SQLクエリ
基本的な選択
基本的なクエリ: テーブルから列 1、列 2、... を選択します
列のエイリアスを設定します。 テーブルから列 1 をエイリアスとして選択します
結果から重複した行/レコードを削除します (個別): テーブルから別の列を選択する
集計クエリ
テーブルから集計関数 (列) を選択します
集計関数
count: 行数(レコード数)をカウントします。 count(*) は、null が配置されている行を含むすべての行を記録します。 count(column) は null を除外します
sum: データの合計値を計算します。
avg: データの平均値を計算します。
max: 最大値を計算します
min: 最小値を計算します。
集計関数を使用して重複した値を削除する
テーブルから集計関数 (個別の列) を選択します
グループクエリ
テーブルから列 1、列 2、... を選択します グループ化する列ごとにグループ化します (1 つの列または複数の列を指定できます)。
よくある間違い:
SELECTサブに集計キー以外のカラム名を書きます。 文の中で
列の別名は GROUP BY 句に記述されます
GROUP BY 句の結果はソートできません
WHERE 句での集計関数の使用
Having句: 集計結果の条件を指定します。
テーブルから列 1、列 2、... を選択します グループ化する必要がある列ごとにグループ化します (1 つの列または複数の列にすることができます) 状態がある
order by 句: クエリ結果の並べ替え
asc キーワード: 昇順
desc キーワード: 降順
複数のソートキーを指定する場合、ルールは左側のキーを最初に使用することです (デフォルトは昇順) order by は通常、select ステートメントの最後に記述されます
データ更新
データ挿入
テーブル (列 1、列 2、...) に値 (値 1、値 2、...) を挿入します。
データの削除
Drop table ステートメント: テーブルを完全に削除できます。
delete: テーブル (コンテナ) から離れ、テーブル内のすべてのデータを削除します。 構文: 条件を指定したテーブルから削除します。
削除対象は列ではなく行(レコード)なので列名の指定が間違っています テーブルから * を削除するのも間違っています。
データ更新
テーブルを更新する 列 1 = 式を設定、 列 2 = 式を設定します どこの条件;
null を使用して更新 (null クリア) します。代入式の右側の値を null として書き込むだけです。
取引: 同じ処理ユニットで実行する必要がある一連の更新 新しく加工されたコレクション。
commit: 送信処理
ロールバック: 処理をキャンセルします
ACID のプロパティ: 原子性、耐久性、一貫性(完全性)、分離性
トランザクションを区別します。 1 各 SQL ステートメントはトランザクション (自動コミット モード) 2 ユーザーがコミットまたはロールバックを実行するまではトランザクションとしてカウントされます
複雑なクエリ
ビュー
アドバンテージ: 1. ビューはデータを保存する必要がないため、ストレージデバイスの容量を節約できます。ビュー自体は記憶媒体 (ハード ドライブ) に保存されます。 2. 頻繁に使用する SELECT ステートメントをビューとして保存できるため、毎回書き直す必要がなくなります。
文法: ビューの作成 ビュー名 (ビュー列 1、ビュー列 2、...) select ステートメントとして
ビューを削除します。 ドロップビュー ビュー名
ビューは保存された選択ステートメントです。ビューを定義する場合は、任意の選択ステートメントを使用できます。 複数のビュー (ビューを介してビューを作成) により、SQL パフォーマンスが低下する可能性があります 定義されたビューは、テーブルと同様にデータ行の順序がないため、(order by 句を使用して) 並べ替えることはできません。 ビューを直接更新することはできません
サブクエリ
ビューを定義するために使用される別の select ステートメント。from 句に直接記述されます。
前のコメントのサブクエリ コードで、最後の productSum はサブクエリの名前です。 ただし、名前は使い捨てなので、ビューのように記憶媒体(ハードディスク)に保存されることはありません。 代わりに、SELECT ステートメントが実行されると消えます。
スカラーサブクエリ
値 (単一の値) を返す必要があるサブクエリ。
使用するシーン: where 句で集計関数を使用する必要がある場合は、次のように使用できます。
定数または列名を使用できる場合は、SELECT 句、GROUP BY 句、HAVING 句、ORDER BY 句など、ほぼどこでも使用できます。 複数行の結果を返すことはできません
相関サブクエリ
スカラー サブクエリが複数の結果を返せないアプリケーション シナリオに適しています。
スカラーサブクエリ句に追加します ここで、alias1.column = alias2.column
相関サブクエリはコレクションを分割することもできます
協会名(別名)
範囲
サブクエリ内で設定したアソシエーション名はサブクエリ内でのみ使用できます。 ここで、エイリアス 1. カラム = エイリアス 2。カラムはサブクエリに書き込む必要があります。
その他の知識ポイント
集合演算
SQLの高度な処理