您的位置:首页 > 博客中心 > 数据库 >

SqlCollections - 数据表管理

时间:2022-03-14 01:27

 1 --==============================数据表管理===============================
 2 --特殊字符的输入
 3 --Tab: char(9)
 4 --换行: char(10)
 5 --回车: char(13)
 6 
 7 --varchar(n):1个字符占1个字节;nvarchar(n):1个字符占2个字节
 8 --‘我是Sky‘存在varchar字段中,占7个字节;存在nvarchar中,占10个字节
 9 
10 --创建新表,并指定主键、自增长、非空、Unique约束、排序类型、默认值、CHECK字段约束、CHECK数据表约束
11 --约束的格式:CONSTRAINT 自定义的约束名 约束类型 其它参数
12 CREATE TABLE TEST1
13 (
14     编号 int IDENTITY(1,1) PRIMARY KEY,    --自增长、主键约束
15     姓名 nvarchar(50) COLLATE Chinese_PRC_CI_AS NOT NULL,    --排序、非空
16     别名 nvarchar(50) UNIQUE,    --唯一键约束
17     性别 bit DEFAULT 1,    --默认值
18     年龄 tinyint CONSTRAINT CK_TEST1_年龄 CHECK (年龄 > 0 AND 年龄 < 101),    --CHECK字段约束
19     部门编号 int CONSTRAINT FK_TEST1_部门编号 
20         FOREIGN KEY 
21         REFERENCES 部门表(部门编号),    --外键约束
22     地址 nvarchar(200),
23     电话 varchar(50),
24     CHECK (电话 is not null or 地址 is not null)    --CHECK数据表约束
25 )
26 
27 
28 --创建计算列
29 CREATE TABLE TEST2
30 (
31     编号 int,
32     编号2 int,
33     单价 money NOT NULL,
34     数量 int NOT NULL
35         CONSTRAINT CK_TEST2_数量 CHECK (数量 > 0),
36     合计 AS 单价*数量    --计算列是只读的
37 )
38 
39 --添加字段
40 ALTER TABLE TEST1
41 ADD 备注 nvarchar(500)
42 
43 --删除字段
44 ALTER TABLE TEST1
45 DROP COLUMN 备注
46 
47 --修改字段
48 ALTER TABLE TEST2
49 ALTER COLUMN 编号 int NOT NULL
50 
51 --重命名表名和字段名
52 EXEC sp_rename ‘TEST1‘,‘测试1‘    --修改表名
53 EXEC sp_rename ‘TEST1.别名‘,‘Alias‘,‘COLUMN‘    --修改列名
54 
55 --添加主键
56 ALTER TABLE TEST2
57 ADD CONSTRAINT PK_TEST2 PRIMARY KEY (编号)
58 
59 --添加外键
60 ALTER TABLE TEST2
61 ADD CONSTRAINT FK_TEST2_TEST1 FOREIGN KEY (编号2) REFERENCES 测试1(编号)
62 
63 --添加CHECK约束
64 ALTER TABLE TEST2
65 WITH NOCHECK    --可选:添加约束时不检查现有数据
66 ADD CONSTRAINT CK_TEST2_单价 CHECK (单价 > 0)
67 
68 --添加默认值约束
69 ALTER TABLE TEST2
70 ADD DEFAULT (1) FOR 数量
71 
72 --删除约束
73 ALTER TABLE TEST2
74 DROP CONSTRAINT CK_TEST2_单价
75 
76 --禁用约束
77 ALTER TABLE TEST2
78 NOCHECK CONSTRAINT CK_TEST2_单价
79 --禁用所有约束
80 ALTER TABLE TEST2
81 NOCHECK CONSTRAINT ALL
82 
83 --启用约束
84 ALTER TABLE TEST2
85 CHECK CONSTRAINT CK_TEST2_单价
86 --启用所有约束
87 ALTER TABLE TEST2
88 CHECK CONSTRAINT ALL
89 
90 --删除表
91 --必须先删除表与表间的关联才能删除表
92 DROP TABLE TEST2
93 
94 --判断表是否存在
95 IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N‘[dbo].[TEST2]‘) AND type in (N‘U‘))
96 BEGIN
97     PRINT ‘可以创建该表‘
98 END

 

热门排行

今日推荐

热门手游