MSSQL基础练习

 

/*个人练习,从基础开始;*/



--判断是否存在Test数据库,有就删掉

USE master;

GO

IF EXISTS(SELECT name FROM SYSDATABASES WHERE name = 'Test')

	BEGIN

		DROP DATABASE Test;

	END

GO



--创建Test数据库,有主数据库,次数据库和多日志文件

CREATE DATABASE Test

ON PRIMARY

(

	NAME = 'Test_dat',

	FILENAME = 'E:\Test\Test_dat.mdf',

	SIZE = 3MB,

	MAXSIZE = 5MB,

	filegrowth = 1%

),

(

	NAME = 'Test_dat1',

	FILENAME = 'E:\Test\Test_dat.ndf',

	SIZE = 3MB,

	MAXSIZE = 5MB,

	filegrowth = 1%

)

LOG ON

(

	NAME = 'Test_Log1',

	FILENAME = 'E:\Test\Test_dat1.ldf',

	SIZE = 2MB,

	MAXSIZE = 5MB,

	filegrowth = 1%

),

(

	NAME = 'Test_Log2',

	FILENAME = 'E:\Test\Test_dat2.ldf',

	SIZE = 2MB,

	MAXSIZE = 5MB,

	filegrowth = 1%

);



GO



--分离数据库

EXEC sp_detach_db Test;

GO





--附加数据库

CREATE DATABASE Test

ON

(

	FILENAME = 'E:\Test\Test_dat.mdf'

) FOR ATTACH;



GO

USE Test;

GO



--如果存在Test2表,则删除表Test2

IF EXISTS(SELECT id FROM sysobjects WHERE id = OBJECT_ID(N'Test2'))

	BEGIN

		DROP TABLE Test2;

	END

GO



--创建表Test2

CREATE TABLE Test2

(

    id INT IDENTITY(1,1) PRIMARY KEY,

    tName VARCHAR(20) NOT NULL,

    captainId INT UNIQUE

)

GO



--如果存在Test表,则删除表Test

IF EXISTS(SELECT id FROM sysobjects WHERE id = OBJECT_ID(N'Test'))

	BEGIN

		DROP TABLE Test;

	END

GO



--创建表Test

CREATE TABLE Test

(

	id INT IDENTITY(1,1) PRIMARY KEY,--id自动编号,并设为主键

	[name] VARCHAR(20) NOT NULL,

	sex CHAR(2) NOT NULL CHECK(sex IN ('男','女')), --约束,限制值为男女;

	birthday DATETIME NOT NULL CHECK(birthday BETWEEN '1950-01-01' AND '1988-12-31'), --约束生日,限制出现的时间范围

	phone CHAR(11) NOT NULL CHECK(LEN(phone)=11), --限制手机号码的长度必须为11;

	remark VARCHAR(MAX) DEFAULT '请在这里填写备注', --设置默认值

	tId INT NOT NULL FOREIGN KEY(tId) REFERENCES Test2(id), --添加外键,受Test2中的ID列约束

	age AS DATEDIFF(yyyy,birthday,GETDATE())--计算列。

);





--添加数据

INSERT Test2(captainId,tName) VALUES('1','第一组');

GO

INSERT Test([name],sex,birthday,phone,tId) VALUES('张三','男','1987-12-12','12345678912','1');

GO

SELECT * FROM Test2;

GO

SELECT * FROM Test;



你可能感兴趣的:(MSSQL)