use MyDB go --DDL:CREATE,Alter,Drop:针对所有的数据库对象,基本都是都有效. Create database Soft--建立数据库,路径在SQL Server安装路径/data文件夹下 --格式: /*create database 库名 [on[Primary] [<文件定义>[ ,...n ]] [ , <文件组定义> [ ,...n ] ] [log on[<文件定义>]] 文件定义: (name='逻辑文件名', filename='物理文件名', size=初始大小, maxsize=最大大小, filegrowth=文件增长方式) */ if exists(select * from sys.databases where name='MyNewDb') drop database MyNewDb--删除数据库 create database MyNewDb on primary--主数据文件有一个,默认文件组 ( name='MyNewDb', filename='e:/MyNewDb.mdf', size=3Mb, maxsize=10Mb, filegrowth=1MB ) ,filegroup FileGroupS ( name='MyNewDb2', filename='e:/MyNewDb2.ndf', size=3Mb, maxsize=UNLIMITED ,--最大值不受限制,无限增长, filegrowth=1MB) ,(
name='MyNewDb3', filename='e:/MyNewDb3.ndf', size=3Mb, maxsize=UNLIMITED , filegrowth=1MB) log on ( name='MyNewDb_Log', filename='e:/MyNewDb_Log.ldf', size=1Mb, maxsize=10Mb, filegrowth=1% ) --查看数据库的帮助信息 sp_helpdb MyNewDb --修改数据库的名称:sp_renamedb 旧数据库名,新数据库名 sp_renamedb MyNewDb,MyDBDB --修改数据库alter database 库名..相关定义 --向文件组FileGoups添加一个次要数据文件 alter database MyDBDB add file ( name='MyNewDb4', filename='e:/MyNewDb4.ndf', size=1Mb, maxsize=10Mb, filegrowth=1% ) to FileGroup FileGroups alter database MyDBDB remove file MyNewDb2 --通过alter database 修改库名 alter database MyDBDB modify name=MYNewDB --表管理:创建、修改、删除;DDL:Create Alter Drop use myDB--1.使用自己的数据库. go Create table Customer--数据库名.架构名.表名;myDB.dbo.Customer ( --字段名 数据类型[长度] 顾客编号 char(10), 顾客姓名 varchar(12), 顾客性别 char(2),--bit 顾客卡号 char(10), 顾客地址 varchar(20), 顾客联系方式 varchar(20) ) sp_help Customer--查询表的信息 sp_rename 顾客表,Customer use myDB go --将顾客性别修改为bit类型,修改列命令:alter table 表名 alter Column 列名[类型] alter table Customer alter Column 顾客性别 char(2) --修改表,向表中增加一列,比如说增加备注列 alter table Customer add 备注 varchar(200) alter table Customer add 身高 decimal(3,2), 体重 tinyint --删除列,:drop Column 列名 alter table Customer drop column remark --做作业4.40第一题. --修改City列,将city列改为varchar(12) --增加MobilePhone列为char(11) --删除FirstName,LastName列,增加一个姓名列. --删除表drop table 表名 drop table 转换后的表 --数据的完整性:实体完整性约束:主键约束、唯一约束、标识列,针对行,来保证每行实体的有意义. --建立带主键的约束 Create table Customer--数据库名.架构名.表名;myDB.dbo.Customer ( --字段名 数据类型[长度] 顾客编号 char(10) Constraint PK_Customer_顾客编号 Primary Key,--建立主键约束 顾客姓名 varchar(12)not null,--非空约束 顾客身份证 char(18)Constraint UQ_Customer_顾客身份证 unique,--唯一约束 顾客性别 char(2),--bit 顾客卡号 char(10), 顾客地址 varchar(20), 顾客联系方式 varchar(20) ) --主键约束,唯一且不为空;唯一约束,可以有一个为空(null) select * from Customer Create table WangBaPc ( Id int identity(1,1),--标识列.适用于整型。 --identity(标识种子,增长量n),从标识种子,每次增加n Pc varchar(8), class varchar(8) ) --域完整性约束:针对表中的列来进行约束。有如下几种: --Not null、默认值、检查约束、外键约束、数据类型. --建立顾客银行卡表. Create table CustBank ( 顾客卡号 char(10)Constraint PK_CustBank_顾客卡号 Primary Key, 金额 money, 消费次数 int, 积分 int ) select * from CustBank --建立图书信息表 Create table BookInfo ( BId char(20) Constraint PK_BookInfo_BkId Primary key, BName varchar(30)not null,--非空约束 BPulisher varchar(20) not null, BPrice money, BType char(4), BBuyPerson varchar(12)Constraint DF_BookInfo_BBuyPerson default '张三丰'--默认值约束 ) --专门来看检查约束 --建立销售人员表 Create table SalesPerson ( SID int identity(1,1)Constraint PK_SalesPerson_SID Primary key, SName varchar(12)not null,--非空约束 SGender char(2)Constraint CK_SalesPerson_SGender Check(SGender='男' or SGender='女') ) --作业: --建立一个游戏人员表 /*Create table Player ( --id 为标识列的主键, --姓名 非空 --身份证 唯一约束 --性别 只能为男、女 --身高 在0.30米与3.00米之间 --体重 在30KG到250KG之间 --属相 中国十二生肖 --城市 默认来自郑州 ) */ Create Database HomeWork go if exists(select * from Sys.Objects) drop table Player Create table Player ( id int identity(1,1)Constraint PK_Player_Id primary key, 姓名 varchar(8)not null, 身份证 char(18) Constraint UQ_Player_身份证 Unique, 性别 char(2) Constraint CK_Player_性别 Check(性别='男' or 性别='女'), 身高 decimal(3,2)Constraint CK_Player_身高 Check(身高>=0.3 and 身高<=3.0), 体重 tinyint Constraint CK_Player_体重 Check(体重>30 and 体重<250), 属相 char(2) Constraint CK_Player_属相 Check(属相 in ('鼠','牛','虎','兔','龙','蛇','马','羊','猴','鸡','狗','猪')), 城市 varchar(12)Constraint DF_Player_城市 Default '郑州' ) sp_help Player --建立超市物品表 --建立一个订购表 use myDB go Create table Goods--物品表 ( Id int Identity(1,1)Constraint PK_Goods_Id Primary key, TiaoXingMa char(13)Constraint UQ_Goods_TXM Unique,--条形码 GName varchar(20)not null,--物品名称 GPrice Money, GWeight decimal(5,2) ) Create table OrderGoods--订购表 ( 订购编号 char(10)Constraint PK_OrderGoods_订购编号 primary key, GId int,--订购物品的编号 订购时间 smalldatetime Constraint DF_OrderGoods_订购时间 Default getdate(), 订购人 varchar(8)not null ) select * from Goods select * from OrderGoods --在订购表的GID列上建立外键约束,和主表Goods的ID列建立关系(即指向ID列) alter table OrderGoods Add Constraint FK_Goods_OrderGoods_Id Foreign Key(GID) References Goods(ID) --格式:修改表添加外键;外键表:子表;主表:父表 alter table 子表 Add Constraint FK_主表名_子表名 Foreign Key(外键列) References 主表名(主表被依赖列,一般为主表主键) --建立主人表和仆人表 Create table 主人 (--主人:Master MId char(8)Constraint PK_主人_MId Primary key, MName varchar(8)not null ) Create table 仆人 (--仆人:servant SId char(8) Constraint 仆人_SId Primary Key,--仆人的编号 MId char(8) Constraint FK_主人_仆人_MID Foreign Key References 主人(MID),--指定仆人的主人的编号 SName varchar(8)not null ) --创建规则 Create Rule HeNanCity as @City in('郑州','洛阳','安阳','南阳','濮阳','信阳','鹤壁','焦作','新乡','开封','商丘','周口','驻马店','许昌','漯河','济源') --将Player的城市列绑定到规则HeNanCity sp_bindrule 'HeNanCity','Player.城市' Create Type 身高 from Decimal(3,2) Create Table Person ( id int identity(1,1), Name varchar(10)not null, P身高 身高 ) sp_help Person insert into Person values('无用',2.2) select * from Person --use myDB go drop table go drop table test --建立一个表,字段ID,Name,Sex Create table Test ( Id int identity(1,1),--自动增长,不用插入数据 Name varchar(8) not null, Sex char(2) ) sp_help Test --插入数据的格式: insert into 表名(字段1,字段2,...) values(值1,值2,...) insert into Test(Name,Sex) values ('张名','女') insert into Test(Name,Sex) values('小鹏','女') insert into Test(Name,Sex) values('涛妹','go')-- 不正确的数据 --查询 select * from Test --向表中添加约束,检查约束,针对性别(男,女) alter table Test with noCheck--对表中老的数据,不检查 Add Constraint CK_Test_Sex Check(Sex in ('男','女')) --自定义完整性:规则和自定义类型 --规则的格式:Create Rule 规则名 as @变量 表达式 Create Rule CityRule As @HeNanCity in('郑州','洛阳','安阳','开封','商丘','南阳','周口','信阳','驻马店','焦作','新乡','许昌') --建立规则后的使用,必须将规则绑定到表中的列上 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 --向表中插入数据 insert into Stu(XueHao,XM,City) values('0401','渔利为','郑州') insert into Stu(XueHao,XM,City) values('0402','张阳','南阳') insert into Stu(XueHao,XM,City) values('0403','萧成龙','信阳') --将规则绑定到Stu的City列 sp_bindrule 'CityRule','Stu.City'--成功后会显示:已将规则绑定到表的列。 --再测试输入,不为河南的城市的学生 insert into Stu(XueHao,XM,City) values('0406','康非龙','信阳') insert into Stu(XueHao,XM,City) values('0404','邓小萍','南京') ----------------------------------------------------------------------- --自定义类型 --格式:Create Type 自定义类型名 from 数据类型[(长度)] --创建自定义类型:相扑体重 Create type 相扑体重 from tinyint --创建一个表,相扑运动员 Create table 相扑运动员 ( Id int identity(1,1)Constraint PK_Id Primary key, Name varchar(20)not null, Weight 相扑体重--相扑体重:自定义类型,范围为0-255 ) insert into 相扑运动员(Name,Weight) values('山本五十8',250) insert into 相扑运动员(Name,Weight) values('纯口火鸟',220) insert into 相扑运动员(Name,Weight) values('井大门',300) --作业:将前面我们建立的属相设定为规则,绑定到属相列 --自定义类型身高,建立一个表的列类型为身高 --******************************************************************* --第一创建分区函数,跟着建立分区的文件组和文件,并建立对应关系. --第二创建分区方案(架构) --第三对表实施分区 -- create partition function Fun_RateChngDate(datetime) --创建分区函数 RateChngDate as range right for values('1996-01-01','2000-01-01','2004-01-01','2008-01-01') ------------------------------------------------------------------------------------ create partition scheme Sch_RateChangDate --创建创建分区方案 RateChangDate as partition RateChngDate--指明分区方案基于的分区函数 to(Old,First,Second,Third,Fourth)--将分区方案建立在对应的文件组上 ------------------------------------------------------------------------------------ create table EmpPayHistPart--雇员付薪记录表 ( EmployeeId int, RateChangeDate datetime,--分区列 Rate money, RayFreQuency tinyint, ModifileDate datetime )on RateChngDate(RateChangeDate)--on 分区方案(分区列) ------------------------------------------------------------------------------------