著者について: クラウド コンピューティング ネットワークの運用保守担当者。ネットワークと運用保守の技術と乾物を日々共有しています。
公式アカウント:ネットワーク堂
座右の銘:頭を下げて道を急ぎ、礼儀正しく
個人ホームページ: Netdouのホームページ
目次
6. T-SQL ステートメントを使用してデータ テーブルを管理する
前に書いてある
このシリーズの記事では、SQL Server のデータベースとテーブルの管理について説明し、ビデオを同期してインストールを説明します。
ビデオチュートリアル: 【SQLサーバーテーブル管理チュートリアル】
前のレビュー: Windows Server 2016 - SQL Server の導入とインストール
導入
SQL Server は Microsoft によって開発されたリレーショナル データベース管理システムであり、現在では世界で主流のデータベースの 1 つです。使いやすさ、優れた拡張性、関連ソフトウェアの高度な統合という利点があり、1 台のラップトップから、または高出力のクラウド サーバー クラスターに基づいて、またはその中間の任意の方法で実行できます。
1. SQL Serverのデータストレージ構造
1. ファイルの種類
データファイル:
- マスター データ ファイル (.mdf) には 1 つだけあります
- セカンダリ (補助) データ ファイル (.ndf) はオプションです。複数存在することもできます。
少なくとも 1 つのトランザクション ログ ファイル (.ldf)
- すべてのトランザクションの SQL ステートメントをログに記録します
- データベースを復元するため
2. データベース管理
1. データベースを作成する
名前データベース
データファイルとログファイル
- 名前
- 初期ファイルサイズ
- 自動成長
- ストレージパス
2. データベースを拡張する
- データ ファイルとログ ファイルにより多くのスペースを割り当てます
- 既存のファイルの自動拡張設定を拡張する
- 新しいファイルを追加する
3. データベースを縮小する
効果
- データベース内の未使用スペースを解放する
方法
- 手動縮小
- 自動縮小
4. データベースのデタッチとアタッチ
効果
- データベースを SQL Server の別のインスタンスに変更します。
別個のデータベース
- インスタンスからデータベースを削除する
追加のデータベース
- メイン データベース ファイルを見つけて、データベースを別のインスタンスにアタッチします。
5. データベースを削除します
削除できるのはユーザーデータベースのみで、システムデータベースは削除できません
3. テーブルの基本的な考え方
1. データの完全性
エンティティの完全性
•各行は一意のエンティティでなければなりません
参照整合性
•すべてのテーブルのデータの一貫性を確保し、存在しない値への参照を許可しない
ドメインの整合性
•各列が有効であることを確認する
ユーザー定義の整合性
•特定のビジネスルールを作成する
2.主キー
- テーブル内の行データを一意に識別するために使用されます
- 1 つ以上のフィールドで構成されます
- 個性的
- 空の値 ( NULL )は許可されません
- テーブルには主キーを 1 つだけ持つことができます
4. 一般的に使用されるデータ型
•正確な数値
•おおよその数値
•文字列
• Unicode文字列
•バイナリ文字列
•日付と時刻
•他のデータ型
データの種類 |
説明する |
整数 |
整数型。-231から231までの整数を格納し、 4バイトのスペースを占有します。 |
少し |
整数。0 、1またはNULLを指定できます。YesまたはNoなど、2 つの値のみを使用してデータを保存します |
10進数 |
-1038-1 ~1038-1の範囲の固定精度で数値データを格納します。範囲と精度を指定する必要があります。範囲は、小数点の周囲に保存できる合計桁数です。精度は、小数点の右側に保存される桁数です。 |
お金 |
お金と通貨の価値を表します。-922 337 203 685 477.5808から922 337 203 685 477.5807までのデータを格納します。通貨単位の 10,000 分の 1 までの精度で、8バイトの領域を占有します。 |
データの種類 |
説明する |
浮く |
浮動小数点数値データの近似数値を表します。-1.79E+308から1.79E+308までの任意の数値を表し、 8バイトのスペースを占有します |
本物 |
-3.40E+38から3.40E+38までの浮動小数点数を表します。4バイトのスペースを占有します |
弦
データの種類 |
説明する |
文字 |
固定長の非Unicode文字データを格納します。列の長さを指定する必要があります (最大8000文字) |
可変長文字 |
可変長の非Unicode文字データを格納します。列の最大長を231文字まで指定する必要があります |
文章 |
最大231 -1 、つまり約20億文字までの大量の非Unicode文字データを保存 |
ユニコード文字列
データの種類 |
説明する |
ンチャー |
固定長のUnicode文字データを格納します。Unicode は2 バイト構造を使用して各文字を格納するため、占有スペースが 2 倍になります。 |
ンバーチャー |
可変長のUnicode文字データを格納する |
ntext |
大量のUnicode文字データを保存する |
バイナリ文字列
データの種類 |
説明する |
バイナリ |
最大8000バイトの長さの固定長バイナリ データを保存します |
ヴァルバイナリ |
最大8000バイトの長さの可変長バイナリ データを格納します |
画像 |
最大231 -1 、または約20億バイトの可変長バイナリ データを格納 |
日時
データの種類 |
説明する |
日付 |
日付。西暦1年1 月1 日から9999 年12月31 日までのすべての日付データを保存します。3バイトのスペースを占有します |
時間 |
タイムゾーンを意識せず、24時間制に基づいて 1 日の特定の時刻を表し、5バイトのスペースを占有します。 |
日付時刻 |
日付と時刻を示します。1753年1 月1 日から9999年12 月31 日までのすべての日付と時刻のデータを8バイトのスペースを使用して保存します。 |
5. SSMS を使用してデータ テーブルを操作する
1.デフォルト値
列に値が指定されていない場合、デフォルト値によって列で使用される値が指定されます。
列にデフォルト値が指定されていません
• null 値が許可されている場合は、列にNULLが挿入されます
• null 値が許可されない場合、ユーザーが列の値を指定するまで行は保存できません。
2. ID 列
システムによって自動的に生成された順序値を含む列
- 列の値は特定のルールに従ってシステムによって生成され、null 値は許可されません
- 列の値は繰り返すことができず、テーブル内の各行を一意に識別します
- 各テーブルには ID 列を 1 つだけ含めることができます
3. ID 列(自己インクリメント列)を作成します。
- タイプ (タイプ)
- 種子_ _ _
- インクリメント(インクリメント)
4.制約をチェックする
- 列の許容値を制限する
- 論理式を使用してチェック ( CHECK ) 制約を作成する
例:
グレードは 0 以上 100 以下です。
グレード >=0 およびグレード<=100
6. T-SQL ステートメントを使用してデータ テーブルを管理する
1. テーブルを作成する
CREATE TABLE 表名
(
列名1 数据类型(大小),
列名2 数据类型(大小),
列名3 数据类型(大小),
……
)
2. テーブルの削除
DROP TABLE <表名>
7. 操作演習
動作要件:
(1) 図に示すように、benet という名前のデータベースを作成します。データベース ファイルは c:\benet に保存されます。
(2) benet データベースを自動的に縮小するように設定します。
(3) Student という名前のテーブルを作成します。テーブル内のフィールドは次の図のようになります。
フィールド要件: 学生番号は 1 から自動的に番号付けされ、ID 番号は主キー列で、クラスのデフォルト値は t3145 で、成績入力要件は 0 以上 100 以下です (成績 >=0 およびスコア <=100 )。
(4) グラフィカルインターフェイスでデータを入力し、上記の要件を満たしているかどうかをテストします。
(5) ステートメントを使用して、student テーブルを削除します。
(6) ステートメントを使用して、student テーブルを再作成します。写真が示すように:
(7) 表の「デザイン」ビューで、上表の要件を満たしているか確認してください。
(8) グラフィカル インターフェイスでデータを入力し、それが上の表の要件を満たしているかどうかをテストします。
作成は簡単ではありません、注意してください、いいね、収集、ありがとう~