sqlserver2016(基本的な概念と一般的に使用されるT-SQLステートメント)

データベース共通オブジェクト

  • テーブル(データの保存と関係の表現の主な形式)
  • ビュー(1つ以上のテーブルによって生成された参照テーブルも仮想テーブルになります。これは、データを格納する代わりに、クエリ定義を格納する方法です。ビューを開くと、クエリ定義が実行され、対応するデータが生成されます)
  • インデックス(テーブルの列または列の組み合わせを並べ替えます。インデックス式の値を検索することで、このタイプのデータにすばやくアクセスできます)
  • 制約(データの一貫性と整合性を確保するために使用)
  • 保存されたプロシージャ(特定の機能を完了するSQLステートメントのグループがコンパイルされ、名前の形式でSQLserverサーバー側データベースに保存されます。ユーザーは保存されたプロシージャの名前を指定することでそれらを実行できます)
  • トリガー(特定のイベントが発生したときに実行をトリガーする特殊なタイプのストアドプロシージャ)

システムデータベース

  • データベースがインストールされている場合、デフォルトで4つのデフォルトデータベースがあります
  • マスターデータベース(すべてのシステムレベルの情報、データベースファイルの場所、初期化情報を記録します。マスターデータベースを使用できない場合、SQL Serverは起動に失敗します)
  • モデルデータベース(変更可能なすべてのデータベースのテンプレート)
  • msdbデータベース(アラームやジョブなどの計画に使用されます)
  • tempdbデータベース(一時データベース、一時オブジェクトと中間結果セットを格納するために使用)

ファイルとファイルグループ

 ファイル:

  • マスターデータファイル(.mdf)、1つ
  • 二次データファイル(.ndf)、0以上
  • ログファイル(.ldf)、1つ以上の
     ファイルグループ:
  • メインファイルグループ(明示的に割り当てられていないメインデータファイル、システムテーブルはここに割り当てられます)
  • ユーザー定義のファイルグループ(CREATDATEBASEおよびALTERDATEBASEステートメントでFILEGROUPで指定された任意のファイルグループ)
  • デフォルトのファイルグループ(指定されていない場合、一度に1つのファイルグループのみがデフォルトのファイルグループとして使用され、メインファイルグループがデフォルトのファイルグループになります)
     設計ルール:
  • ファイルはファイルグループのメンバーにのみなれます
  • ファイルまたはファイルグループは、1つのデータベースでのみ使用できます
  • データとログをまとめることはできません。つまり、同じファイルまたはファイルグループに属することはできません。
  • ログファイルはファイルグループの一部ではありません。つまり、データスペースとログスペースは別々に管理されます。

データベースの作成

Studentという名前のデータベースを作成します。初期サイズは5MB、最大サイズは20MBで、自動拡張、10%拡張が可能です。ログファイルの初期サイズは2MB、最大サイズは8MBで、1MBずつ増加します。データファイルとログファイルの保存場所は、SQL Serverのデータベースフォルダ「C:\ SQLPractice」です。

CREATE DATABASE Student
	ON --存放数据库的数据文件在之后定义
	(
		NAME='Student_DATA',--只是T-SQL中使用的逻辑文件名
		FILENAME='C:\SQL练习\Student.mdf',--存放路径和操作系统中实际文件名
		SIZE=5MB,
		MAXSIZE=20MB,
		FILEGROWTH=10%
	)
	LOG ON
	(
		NAME='Student_log',
		FILENAME='C:\SQL练习\Student.ldf',
		SIZE=2MB,
		MAXSIZE=8MB,
		FILEGROWTH=1MB
	)
GO

データベースを削除する

DROP DATABASE Student 

データベースの分離と添付

少しだけですが、覚えておいてください。SQLServerの観点からは、データベースが正常にデタッチされると、データベースを削除するのと同じです。違いは、分離されたデータベースのストレージファイルはまだ存在しますが、削除されたデータベースのストレージファイルは存在しないことです。

テーブル構造

  • テーブルを構成する列の名前とデータタイプをまとめてテーブル構造と呼びます。

録音

  • 各テーブルには、テーブルの「値」であるデータのいくつかの行が含まれています。テーブルの行はレコードと呼ばれます。したがって、テーブルは限られたレコードのコレクションです。

フィールド

  • 各レコードは、いくつかのデータ項目で構成されています。レコードを構成するデータ項目はフィールドと呼ばれます。たとえば、表6-1のテーブル構造は(学生ID、名前、性別、生年月日、専攻、合計クレジット、備考)であり、7つのフィールドが含まれ、8つのレコードで構成されています。

ヌル値

  • ヌル値(NULL)は通常、不明、使用不可、または後で追加されるデータを意味します。列をnullにできる場合は、レコードをテーブルに入力するときに列に特定の値を指定する必要はありません。列をnull値にできない場合は、入力時に特定の値を指定する必要があります。

キーワード

  • テーブル内のレコード内のフィールドまたはフィールドの組み合わせがレコードを一意に識別できる場合、そのフィールドまたはフィールドの組み合わせは候補キーと呼ばれます。

主キー

プライマリキー(プライマリキーとも呼ばれます)の1つを選択します。レコードを一意に識別するために使用されます。

外部キー

「メインテーブル」に対応する「子テーブル」の列は、「子テーブル」の外部キーまたは参照キーと呼ばれます。その値の要件は、メインテーブルのプライマリキーに対応しています。外部キーは、参照の整合性を強制するために使用されます。テーブルには複数の外部キーを含めることができます。

データの種類

デザインテーブル

  • テーブルの名前付けはPascalの名前付け規則を採用しており、完全な英語の単語で名前を付ける必要があります。省略形は使用しないでください。英語の単語は単数形です。
  • フィールドの命名にもPascalの命名規則が採用されています。主キーが必要です。テーブルの自己インクリメントプライマリキーはIDを使用します。テーブルの一意のプライマリキー名は、StudentIDなどの「テーブル名+ ID」を一律に使用します。

制約

  • 制約は、SQL Serverによって提供されるデータベースの整合性を自動的に維持する方法であり、フィールドのデータ、レコードのデータ、およびテーブル間のデータを制限することにより、データの整合性を保証します。SQL Serverでは、基本テーブルには、列レベルの制約とテーブルレベルの制約の2種類の制約があります。

テーブルを作成する

コーステーブルのCREATETABLEステートメントStudentManagementを使用してデータベースを作成します。必要なコースにはプライマリキーの番号が付けられ、コース名は一意です各コースクレジットのデフォルトは4です。

USE StudentManagement
GO
CREATE TABLE Course
(
    CourseID char(6) PRIMARY KEY,
    CourseTypeID char(2),
    CourseName nvarchar(30) UNIQUE,
    Info nvarchar(50),
    Credits numeric(2,0) DEFAULT(4),
    Time numeric(3,0),
    PreCourseID char(6),
    Term numeric(1,0)
)

CREATE TABLEステートメントを使用して、StudentManagementデータベースにSelectCourseテーブルを作成し、学生のコース選択の情報を記録し、外部キー制約を設定します

USE StudentManagement
GO
CREATE TABLE SelectCourse
(
    SelectCourseStudentID char(10) FOREIGN KEY(SelectCourseStudentID) REFERENCES Student(StudentID),
    SelectCourseID char(6) FOREIGN KEY(SelectCourseID) REFERENCES Course(CourseID),
    Score numeric(3,1),
    PRIMARY KEY(SelectCourseStudentID,SelectCourseID)
)

テーブルを変更する

  • ADD句を


    使用してを追加するALTERTABLEステートメントを使用してStudentBonus列をStudentテーブルに追加しますALTERTABLE


    <テーブル名> ADD <列名> <データタイプ> [<整合性制約>]
ALTER TABLE Student ADD StudentBonus tinyint
  • ADD CONSTRAINT句を使用して、制約を追加します。Student


    テーブルのName列に一意の制約を設定します


    。ALTERTABLE<テーブル名> ADD CONSTRAINT <制約名>制約[<列名テーブル>]
ALTER TABLE Student ADD CONSTRAINT Name01 UNIQUE(Name)
  • ALTER COLUMN句を使用


    して、StudentテーブルのEmail列の列属性を50に変更し、空にできるようにします


    。ALTERTABLE<テーブル名> ALTER COLUMN <列名> <データタイプ> [NULL | NOT NULL]
ALTER TABLE Student ALTER COLUMN Email varchar(50) NULL
  • 名前の変更、列


    EXEC sp_rename'table名前。元の列名」、 『変更された列名』

EXEC sp_rename 'Student.Name', 'StudentName
  • DROP COLUMN句を使用して、列を削除します


    。StudentテーブルのStudentBonus列を削除します。


    ALTER TABLE <テーブル名> DROP COLUMN <列名>
ALTER TABLE Student
DROP COLUMN StudentBonus
  • DROP CONSTRAINT句を使用して、制約を削除します。Student


    テーブルのName列にある一意の制約を削除します


    。ALTERTABLE<テーブル名> DROP CONSTRAINT <制約名>
ALTER TABLE Student DROP CONSTRAINT Name01
  • テーブルを削除する
DROP TABLE TestDelete

テーブルにデータを挿入します

  • クラステーブルに4つのクラスレコードを追加します
USE StudentManagement
GO
INSERT Class(ClassID, ClassDepartmentID, ClassTeacherID, ClassName, Amount)
    VALUES('20191101', '11', '20101123', '计算机1901', 30)
INSERT Class
    VALUES('20192602', '26', '20122652', '自动化1902', 40)
INSERT Class
VALUES('20193101 ','31','20113145', '哲学1901',60)
INSERT Class
    VALUES('20196202', '62', '20136238', '经贸1902', 40)
GO
SELECT * FROM Class
GO

テーブルのデータを変更します

  • クラステーブルのクラス番号「20196202」のクラス名を「ForeignEconomicand Trade 1902」に、人数を30人に変更します。
USE StudentManagement
GO
UPDATE Class
    SET ClassName ='外经贸1902', Amount=30
    WHERE ClassID='20196202'
GO
SELECT * FROM Class
GO

テーブル内のレコードを削除します

  • Studentテーブルの「WangYiming」という名前の学生のレコードを削除します
USE StudentManagement
GO
DELETE Student
    WHERE StudentName='李一民'
Go
SELECT * FROM Student
GO

おすすめ

転載: blog.csdn.net/qq_45549336/article/details/108037262