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
时间: 2024-10-09 18:33:53