创建数据库:
1 --创建数据库 2 CREATE DATABASE Accounting -- 新数据库的名称 3 ON --主文件 4 ( 5 NAME = 'Accounting', --文件名 6 FILENAME = 'F:Project FilesSQL ServerDATAAccountingData.mdf', --文件位置 7 SIZE = 10, --初始大小 8 MAXSIZE = 50, --数据库最大大小 9 FILEGROWTH = 5 --增量 10 ) 11 LOG ON --日志文件 12 ( 13 NAME = 'AccountingLog', 14 FILENAME = 'F:Project FilesSQL ServerDATAAccountingLog.ldf', 15 SIZE = 5MB, 16 MAXSIZE = 25MB, 17 FILEGROWTH = 5MB 18 ) 19 GO
查询数据库的信息:
1 --查询 数据库信息 2 EXEC sp_helpdb 'Accounting'
创建表:
1 CREATE TABLE Customers 2 ( 3 CustomerNo int IDENTITY NOT NULL, 4 CustomerName varchar(30) NOT NULL, 5 Address1 varchar(30) NOT NULL, 6 Address2 varchar(30) NOT NULL, 7 City varchar(20) NOT NULL, 8 State char(2) NOT NULL, 9 Zip varchar(10) NOT NULL, 10 Contact varchar(25) NOT NULL, 11 Phone char(15) NOT NULL, 12 FedIDNo varchar(9) NOT NULL, 13 DateInSystem date NOT NULL, --此列以后将添加一个 CHECK 约束 14 )
查询表的信息:
EXEC sp_help Customers --查询表的信息 使用 EXEC sp_help + 对象名, 查看相应的对象的信息
添加一个 Check 约束
1 -- 给 Customers 表的 DateInSystem 列添加一个 Check约束,因为该列的值不可能是未来的某个值 2 ALTER TABLE Customers 3 ADD CONSTRAINT CN_CustomerDataInSystem 4 CHECK (DateInSystem <= GETDATE())
执行查询:
1 EXEC sp_helpconstraint Customers
结果:
插入数据: DateInSystem 的值 超过现在的时间,所以不能插入成功
1 --插入一个未来时间'12-31-2049',违反了CHECK约束,所以将失败 2 INSERT INTO Customers(CustomerName,Address1,Address2,City,State,Zip,Contact,Phone,FedIDNo,DateInSystem) 3 VALUES('Customer1','Address1','Address2','Mycity','NY','5555','No Contact','555','000','12-31-2049')
结果:
--创建表Orders CREATE TABLE Orders ( OrderID int IDENTITY NOT NULL PRIMARY KEY, CustomerNo int NOT NULL --将此列设置为外键,该列必须在其他表中定义一个主键约束或者唯一性约束 FOREIGN KEY REFERENCES Customers(CustomerNo), OrderDate date NOT NULL, EmployeeID int NOT NULL )
1 --以修改表的方式, 添加 EmployeeID 为外键 2 ALTER TABLE Orders 3 ADD CONSTRAINT FK_EmployeeCreatesOrder 4 FOREIGN KEY (EmployeeID) REFERENCES Employees(EmployeeID)
查询表的信息:
1 EXEC sp_helpconstraint Orders --查询特定表的约束 消息中显示:没有外键引用表 'Orders',或者您没有引用表的相关权限。
结果:显示为 两个外键约束 + 一个主键约束
唯一性约束:
1 CREATE TABLE Shippers 2 ( 3 ShipperID int IDENTITY NOT NULL 4 PRIMARY KEY, 5 ShipperName varchar(30) NOT NULL, 6 Address varchar(30) NOT NULL, 7 City varchar(25) NOT NULL, 8 State char(2) NOT NULL, 9 Zip varchar(10) NOT NULL, 10 PhoneNo varchar(14) NOT NULL 11 UNIQUE --表名 PhoneNo 需要满足唯一性约束 12 )
查询:
1 EXEC sp_helpconstraint Shippers
结果: 一个主键约束 + 一个唯一性约束(UNIQUE)
1 -- 给已存在的表Customers的DateInSystem列添加约束,使其默认值为 此刻的时间 2 ALTER TABLE Customers 3 ADD CONSTRAINT CN_CustomerDefaultDateInSystem 4 DEFAULT GETDATE() FOR DateInSystem