SQL SERVER基礎文学習(三)

9283 ワード

1. JoinTips:(1). Inner JoinとJoin
Select alias_name1.column_name, alias_name2.column_name

From table_name1 as alias_name1

Inner join table_name2 as alias_name2

On alias_name1.column3 = alias_name2.column4

Order by alias_name1.column_name1

(2). Left Joinは、右のテーブルが一致していなくても、左のテーブルのすべてのローを返します.
Select alias_name1.column_name, alias_name2.column_name

From table_name1 as alias_name1

Left join table_name2 as alias_name2

On alias_name1.column_name3 = alias_name2.column_name4

Order by alias_name1.column_name1

(3). Right Join、左のテーブルが一致していなくても、右のテーブルのすべてのローを返します.
Select alias_name1.column_name, alias_name2.column_name

From table_name1 as alias_name1

Right join table_name2 as alias_name2

On alias_name1.column_name3 = alias_name2.column_name4

Order by alias_name1.column_name1

(4). Full Join、すべての行を返します
Select alias_name1.column_name, alias_name2.column_name

From table_name1 as alias_name1

Full join table_name2 as alias_name2

On alias_name1.column_name3 = alias_name2.column_name4

Order by alias_name1.column_name1

 2. Unionが複数のselect文をマージした結果
Tips:Select文には同じ数の列が必要で、同じデータ型がある必要があります.列の順序も同じでなければなりません.Unionはデフォルトで異なる値を返します.Union Allは、重複する値の結果を返す列名を最初のselect文の列名にすることができます.
Select column_name(s) from table_name1

Union

Select column_name(2) from table_name2

3.SelectIntoは一つの表からデータを選んで別の表に挿入し、よくバックアップコピー或いはアーカイブ記録に用いられる
Select *

Into new_table_name

From old_table_name

Tips:(1). externaldatabaseから選択
Select *

Into new_table_name

From externaldatabase_name.dbo.table_name

(2). 表2が既に存在する場合はInsert Into
Insert Into table2_name(column1, column2,…)

Select table1_column1,table1_column2,… From table1_name

4.Constraint制約
(1). Not Null
(2). Unique制約は一意で、各テーブルに複数のuniqueがあります.
unique名を設定しなくてもいいです.システムにはデフォルト値がありますが、設定をお勧めします.使いやすいです.複数の列を同時に設定できます
Alter Table table_name  Add unique (column_name)



Alter Table table_name Add constraint uq_name unique (column_name1,column_name2) 



Alter Table table_name Drop constraint uq_name

(3). Primary Key制約は一意で、各テーブルにはprimary keyが1つしかありません.
Alter Table table_name Add constraint pk_name Primary Key (column_name1,column_name2)



Alter Table table_name Drop constraint pk_name

(4). Foreign key
Alter Table table_name1 Add constraint fk_name Foreign Key(column_name1) References table_name2(column_name2)



Alter Table table_name Drop constraint fk_name

(5). Check制約列の値の範囲
Alter Table table_name Add constraint chk_name Check (column_name1 > 3 and column_name2 like '%abc%')



Alter Table table_name Drop constraint chk_name

(6). デフォルト設定
Alter Table table_name Add constraint df_name default 'dafult_value' for column_name



Alter Table table_name Drop constraint df_name

クエリー・テーブルにdefault制約があるかどうか
Select * from sys.default_constraints Where sys.default_constraints.parent_object_id=OBJECT_ID('table_name')

テーブルの制約の表示
EXEC sp_helpconstraint 'table_name'