MSSQLシリーズ2。2つのデータベースとテーブルの管理

MyDBを使用
go--
DDL:CREATE、Alter、Drop:すべてのデータベースオブジェクトに対して、基本的に有効です。
データベースの作成ソフト-データベースを作成しますパスは
SQLServerインストールパス/データフォルダーの下にあります--format:
/ *データベースライブラリ名を作成
[on [プライマリ]
 [<ファイル定義> [、... n]]
[、<ファイルグループ定義> [、... n]]
[ログオン[<ファイル定義>]]
ファイル定義:
(name = '論理ファイル名'、
filename = '物理ファイル名'、
size =初期サイズ、
maxsize =最大サイズ、
filegrowth =ファイル拡張メソッド)
* /
存在する場合(select * from sys.databases where name = 'MyNewDb' )
 データベースMyNewDbを削除-プライマリに
データベースMyNewDb
作成するデータベース削除する-プライマリデータファイルが1つあり、デフォルトのファイルグループ

   名前= 'MyNewDb'、
 ファイル名= 'e:/MyNewDb.mdf'、
 サイズ= 3Mb、最大サイズ
 = 10Mb、
 filegrowth = 1MB

、filegroup FileGroupS
(name = 'MyNewDb2'、
 filename = 'e:/MyNewDb2.ndf'、size
 = 3Mb、
 maxsize = UNLIMITED、-最大値は無制限、無制限の
 拡張filegrowth = 1MB)
、(

  名前= 'MyNewDb3'、
 ファイル名= 'E:/MyNewDb3.ndf'、
 サイズ= 3Mbの、
 MAXSIZE = UNLIMITED、
 FILEGROWTH = 1メガバイト)
のログ

 名前= 'MyNewDb_Log'、
 ファイル名= 'E:/MyNewDb_Log.ldf'、
 サイズ=  1Mb
 maxsize = 10Mb、
filegrowth = 1%
)-
データベースのヘルプ情報を
表示しますsp_helpdb MyNewDb-データベース
の名前を変更します:sp_renamedb古いデータベース名、新しいデータベース名
sp_renamedb MyNewDb、MyDBDB-
データベースを変更しますデータベースライブラリ名を変更します...関連する定義-
セカンダリデータファイルをファイルグループに追加します
FileGoupsalter database MyDBDB
add file

 name = 'MyNewDb4'、
 filename = 'e:/MyNewDb4.ndf'、size
 = 1Mb
 maxsize = 10Mb、
 filegrowth = 1%

FileGroupへFileGroups
alter databaseをMyDBDB
削除ファイルMyNewDb2
- alter databaseを使用してライブラリ名を変更する
ALTERデータベースMyDBDB
名= MYNEWDBを修正
-テーブル管理を:作成、変更、削除、DDL:アルタードロップを作成
、使用MYDB - 1を独自のデータベースを使用してください。。
行く
作成テーブル顧客データベース名。スキーマ名。テーブル名; myDB.dbo.Customer
(-フィールド名データタイプ[長さ]
 顧客番号char(10)、
    顧客名varchar(12)、
 顧客性別char(2)、-ビット
 顧客のカード番号CHAR(10)、
 顧客アドレスはvarchar(20)、
 顧客の連絡先情報はvarchar(20)

は、sp_helpカスタマー-問い合わせフォーム情報
sp_renameを顧客テーブル、顧客
使用MYDBは
行く
、ビットタイプに--modify顧客の性別を列の変更コマンド:テーブルのテーブル名の変更列の列名の変更[タイプ]
テーブルの変更顧客の
 変更列の顧客の性別char(2)-テーブルの変更
、テーブルへの列の追加、たとえば、備考列の追加
ALTER TABLEカスタマー
 addはVARCHAR(200)備考
ALTER TABLEカスタマー
 追加の高さの小数(3,2)、
  重量TINYINT
削除列,:ドロップ列の列名-
ALTER TABLEカスタマー
 ドロップ列の発言を
-宿題に4.40最初の質問を行います。
- City列を変更し、city列をvarchar(12)に
変更します。--MobilePhone列をchar(11)に
追加します。--FirstName、LastName列を
削除し、name列を追加します。--テーブルドロップテーブルテーブル名
ドロップテーブルを削除します。変換されたテーブル
-データ整合性:エンティティ整合性制約:エンティティの各行の意味を確実にするための、行のプライマリキー制約、一意の制約、識別列。--
プライマリキーを使用して制約を確立します
テーブルの作成Customer--データベース名。スキーマ名.Table name; myDB.dbo.Customer
-field name data type [length]
 customer number char(10)Constraint PK_Customer_customer number Primary Key、-プライマリキー制約を確立します
    customer name varchar(12)not null、-nonヌル制約
 顧客IDchar(18)制約UQ_Customer_Customer ID一意、-一意の制約
 顧客の性別char(2)、-ビット
 顧客カード番号char(10)、
 顧客アドレスvarchar(20)、
 顧客連絡先情報varchar(20)
)-
プライマリキー制約、一意で空ではない;一意の制約。 (Null)
select * from Customer
Create table WangBaPc

 Id int identity(1,1)、-identitycolumn。Applystointegers 。-- identity
 (identification seed、growth n)、from the identity seed、eachincrease n
 Pc varchar(8)、
 class varchar(8)
)-
ドメイン整合性の制約:テーブルの列を制約します。いくつかの種類があります:
-null以外、デフォルト値、チェック制約、外部キー制約、データタイプ。--
カスタマーバンクカードテーブルを
作成しますテーブルを作成します。CustBank

 カスタマーカード番号char(10)制約PK_CustBank_カスタマーカード番号プライマリキー、
 金額お金、
 消費時間はint、
 ポイントはint

CustBankから選択*
-
テーブルのBookInfoを作成します

 BId char(20)制約PK_BookInfo_BkIdプライマリキー、
 BName varchar(30)not null、
 -null以外の制約BPulisher varchar(20)not null、
 BPrice、
 BType char(4)、
 BBuyPerson varchar(12)Constraint DF_BookInfo_BBuyPerson default '- デフォルト値の制約
)-特に
チェック制約を確認します
--salespersonテーブルを
作成しますテーブルを作成しますSalesPerson

SID int identity(1,1)Constraint PK_SalesPerson_SID Primary key、
 SName varchar(12)not null、-空でない制約
 SGender char(2)制約CK_SalesPerson_SGenderチェック(SGender = ' M'またはSGender = 'female') 

-ジョブ:
-テーブルゲーム担当者を作成します
/ *テーブルプレーヤーを作成します

--idID列をプライマリキーとして
-名前は空ではありません
-IDカードの唯一の制約
-性別は男性または女性のみです
-高さ
0.30m〜3.00 m -30KG〜250KGの重さ
-干支の中国の干支
-鄭州市のデフォルトから

* /
Create Database HomeWork
Go
IF EXISTS(SELECT * from sys.objects)
 ドロップテーブルプレーヤーテーブルプレーヤーの
作成

 id int identity(1,1)Constraint PK_Player_Id primary key、
 name varchar(8)not null、
 ID char(18)Constraint UQ_Player_ ID Unique、
 gender char(2)Constraint CK_Player_genderチェック(gender = 'male'またはgender = 'female')、
 高さdecimal(3,2)制約CK_Player_ heightチェック(height> = 0.3およびheight <= 3.0)、
 weighttinyint制約CK_Player_weightCheck(weight> 30 and weight <250)、
 zodiac sign char(2)Constraint CK_Player_ zodiac Check(zodiac in( 'rat'、 'ox'、 'tiger'、 'rabbit'、 'dragon'、 'snake'、「馬」、「羊」、「猿」、「鶏」、「犬」、「豚」))、
 City varchar(12)Constraint DF_Player_City Default'Zhengzhou '

sp_help Player-
スーパーマーケットアイテムテーブルを作成します-
注文テーブルを作成します
myDBを使用します
go
テーブルを作成しますGoods-アイテムテーブル

 Id int Identity(1,1)Constraint PK_Goods_Id Primary key、
 TiaoXingMa char(13)Constraint UQ_Goods_TXM Unique、
 -Barcode GName varchar(20)not null、
 -Item name GPrice Money、
 GWeight decimal(5,2)

Create table OrderGoods--Order form

 order number char(10) )制約PK_OrderGoods_order番号プライマリキー、
 GId int、---注文アイテム番号、
 注文時間smalldatetime制約DF_OrderGoods_order時間デフォルトgetdate()、orderer
 varchar(8)not null 

select * from Goods
select * from OrderGoods
-注文テーブルのGID列に外部キー制約を確立し、メインテーブルのID列との関係を確立します。商品(つまり、ID列を指す)
テーブルを変更します。OrderGoods
 制約を追加します。FK_Goods_OrderGoods_Id外部キー(GID)
    参照商品(ID)-形式
:変更テーブル追加外部キー;外部キーテーブル:子テーブル;メインテーブル:親テーブル
変更テーブル子テーブル
 制約の追加FK_メインテーブル名_子テーブル名外部キー(外部キー列)
  メインテーブル名を参照します(メインテーブルは列に依存します。通常、メインテーブルのプライマリキー) -
マスターテーブルとサーバントテーブルを
作成しますテーブルマスターを作成します

--Master :マスターMId char(8)制約PK_Master_MIdプライマリキー、
 MName varchar(8)not null

テーブルサーバントを作成します
(-
 -サーバント:サーバントSId char(8)制約servant_SIdプライマリキー、-サーバントの番号
 MId char(8)制約FK_master_servant_MID外部キー
    参照マスター(MID)、-サーバントのマスター番号を指定します
 SName varchar(8)not null
-
ルールを作成します
RuleHeNanCity
を@Cityin( 'Zhengzhou'、 'Luoyang'、 'Anyang'、 'Nanyang'、 'Puyang'、 'Xinyang'、 'Hebi'、 'Jiaozuo'、 'Xinxiang'、 'Kaifeng'、 'Shangqiuとして作成します'、' Zhoukou '、' Zhumadian '、' Xuchang '、' Luohe '、' Jiyuan '
-プレーヤーの都市列をルールHeNanCityにバインドします
sp_bindrule'HeNanCity'、 'Player。City'Decimal (から
タイプの高さ
作成) 3,2)
表人作成

 ID int型のアイデンティティ(1,1)、
 名前VARCHAR(10)NOT NULL、
 Pの高さと高さ

は、sp_help人の
人値への挿入( '无用'、2.2)
を選択*人から
MYDB --useをドロップテーブルに
移動
ドロップテーブルに移動
テスト-
テーブル、フィールドID、名前、Sex
Create table Test

Id int identity(1,1)、-自動拡張、データを挿入する必要はありません
Name varchar(8)not null、
Sex char(2)

sp_help Test-
データ挿入の形式:
テーブル名(フィールド1、フィールド2、...)の値に
挿入(値1、値2、...)テスト(名前、性別)の値に挿入( '張名' 'female')
INSERT the Test(Name、Sex)values( 'Xiaopeng'、 'female')INTO
INSERT INTO the Test(Name、Sex)values( 'Tao sister'、 'go')-不正なデータ
- -
テストからSELECT *をクエリします-
テーブルに制約を追加し、性別(男性と女性)
制約をチェックしますALTERテーブル
 をnoCheckでテストします-古いデータテーブルの、
 制約追加をチェックしませんCK_Test_Sexチェック(sex in( ' male '、'女 '))
-カスタム整合性:ルールとカスタムタイプ-ルール
形式:ルールルール名を
@variable
として作成ルールCityRuleを@HeNanCityとして作成in(' Zhengzhou '、' Luoyang '、 「Anyang」、「Kaifeng」、「Shangqiu」、「Nanyang」、「Zhoukou」、「Xinyang」、「Zhumadian」、「Jiaozuo」、「Xinxiang」、「Xuchang」)  -
ルールが確立された後、ルールはテーブル
Create table Sut

XueHao char(8)Constraint PK_Stu_XH Primary key、
 XM varchar(12)not null、
 City char(16)

-テーブル名を変更します
sp_rename'Sut '、' STU '
select * from Stu-
テーブルにデータ
を挿入しますStu(XueHao、XM、City)に挿入しますvalues( '0401'、 '
Yu Liwei '、 'Zhengzhou')Stu(XueHao、XM、City)値に挿入( '0402'、 'Zhangyang'、 'Nanyang')
Stu(XueHao、XM、City)値に挿入( '0403'、 'Xiao Chenglong'、 'Xinyang')-
ルールをStuのCity列に
バインドしますsp_bindrule'CityRule '、' Stu.City'-成功すると、次のように表示されます:ルールはテーブル列にバインドされています。-
入力を
テストし、Stu(XueHao、XM、City)値挿入します( '0406'、 '
Kangfeilong '、 ' Xinyang ')ヘナン以外の都市の学生のStu(XueHao、XM、City)値挿入します(「0404」、「Deng Xiaoping」、「Nanjing」





tinyintからタイプSumoウェイト
作成-テーブルを作成、Sumoアスリート
テーブルを作成Sumoアスリート

 Id int identity(1,1)Constraint PK_Id Primary key、
 Name varchar(20)not null、
 Weight Sumo weight-Sumoレスリングウェイト:カスタムタイプ、範囲は0〜255

相撲レスラーに挿入(名前、重量)値( '山本五十八'、250)
相撲レスラーに挿入(名前、重量)値( '純粋な口の火の鳥'、220)
相撲レスラー(名前、重量)に挿入values('ウェルゲート '、300)-
操作:以前に設定した干支をルールとして設定し、それらを干支列にバインドします-
カスタムタイプの高さ、列タイプを高さとしてテーブルを作成します
-**************************************** ***************************
-ファイルグループとファイルパーティションの確立に続いて、最初のパーティション関数を作成し、対応を確立します。
- -2番目のパーティションスキームの作成(スキーマ)
-パーティション化を実装する3番目のテーブルペア
-
パーティション関数の作成Fun_RateChngDate(datetime)-パーティション関数RateChngDateの作成
値の右の範囲として( '1996-01-01'、 '2000-01-01'、 '2004-01-01'、 '2008-01-01')
------------ -------------------------------------------------- ----------------------
パーティションスキームの作成Sch_RateChangDate--パーティションスキームRateChangDate
をパーティションとして作成RateChngDate--パーティション関数
を(Old、First 、Second、Third、Fourth)-対応するファイルグループにパーティションスキームを確立します
------------------------------- -------------------------------------------------- ---
テーブルEmpPayHistPartを作成します--- RateChngDate(RateChangeDate)の従業員給与レコードテーブル

 EmployeeId int、
 RateChangeDate datetime、---パーティション列
 Rate money、
 RayFreQuency tinyint、
 ModifileDate datetime
)---パーティションスキーム(パーティション列)


おすすめ

転載: blog.51cto.com/2096101/2589202
おすすめ