MSSQL基础练习

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
/*个人练习,从基础开始;*/
 
--判断是否存在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;
posted @   -Xu-Zhao-  阅读(409)  评论(0编辑  收藏  举报
编辑推荐:
· DeepSeek 解答了困扰我五年的技术问题
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
阅读排行:
· DeepSeek 解答了困扰我五年的技术问题。时代确实变了!
· PPT革命!DeepSeek+Kimi=N小时工作5分钟完成?
· What?废柴, 还在本地部署DeepSeek吗?Are you kidding?
· DeepSeek企业级部署实战指南:从服务器选型到Dify私有化落地
· 程序员转型AI:行业分析
点击右上角即可分享
微信分享提示