003 SqlServer2008数据表管理
SqlServer2008数据表管理
一、表概述
二、使用Create table 语句创建表
CREATE TABLE [database_name.[owner].|owner] table_name ( { <column_definition> | <table_constraint> | column_name AS computed_column_expression }[, ...n] ) [ON {filegroup | DEFAULT}] [TEXTIMAGE_ON {filegroup | DEFAULT}]
<column_definition> := {column_name data_type } [ [DEFAULT constant_expression] | [INDENTITY [ ( seed, increment )] ] ] [<column_constraint>][,...]
参数说明: 1. database_name : 数据库名称
2. owner: 该表的所有者
3. table_name: 表名
4. column_definition:表中字段名称
5. computed_column_expression 用于定义计算字段值的表达式 在计算列上不能添加如PRIMARY KEY、 UNIQUE 、FOREIGN KEY 或者DEFAULT等约束条件,由于计算列是通过服务器计算产生的,所以,在INSERT、UPDATE语句中不能对计算列进行赋值。 6. ON{filegroup |DEFAULT}用于指定数据表所存储的文件组 文件组的概念以后会单独总结。 7. TEXTIMAGE_ON { filegroup | DEFAULT} ---用于指定数据表中Text和Image文件存储的文件组。
8. data_type -- 字段的数据类型
9. constant_expression --用于指定字段默认值的常量,NULL 或者系统函数。
10. IDENTITY --指定该字段为标识字段。
11. seed -- 标识字段的起始值。
12. increment -- 定义标识增量
13. column_constraint -- 用于指定该字段的约束条件
2.1 创建主键列
---列级别
USE 学生成绩管理系统 CREATE TABLE 学生信息 ( 学号 nvarchar(50) NOT NULL PRIMARY KEY, 姓名 nchar(10) NOT NULL, 性别 nchar(10) NOT NULL, 出生日期 DATE NULL, 民族 nchar(10) NULL, 所属班级 nchar(10) NULL, 家庭住址 ntext NULL )
--表级别,联合主键
CREATE TABLE 选课
(
学号 nvarchar(50) NOT NULL,
课程号 nvarchar(20) NOT NULL,
姓名 nchar(10) NOT NULL,
成绩 nchar(10) NULL,
PRIMARY KEY(学号,课程号)
)
2.2 创建外键
CREATE TABLE 班级信息 ( 班级编号 nchar(10) NOT NULL PRIMARY KEY, 班级名 nchar(10) NOT NULL, 班级人数 int NULL, 所属系别 nchar(10) NOT NULL, 辅导员 nchar(10) NOT NULL FOREIGN KEY 所属系别 REFERENCES 系别信息(系别编号), FOREIGN KEY 辅导员 REFERENCES 辅导员信息(辅导员编号) )
2.3 创建默认值定义
CREATE TABLE 成绩信息 ( 分数 int NULL DEFAULT(0) )
2.4 创建CHECK约束列
CREATE TABLE 教师信息 ( 性别 nchar(10) NOT NULL CHECK (性别 in('男','女')) )
2.5 创建自动编号列
CREATE TABLE 系别信息 ( 系别编号 nchar(10) IDENTITY(0, 1) PRIMARY KEY NOT NULL )
2.6 创建唯一列
CREATE TABLE 辅导员信息 ( 辅导员编号 nchar(10) NOT NULL UNIQUE )
三、使用图形界面创建表
四、列数据类型
4.1 精确数字类型
4.2 近似数字类型
4.3 Unicode字符数据类型
4.4 二进制数据类型
4.5 日期和时间数据类型
4.6 字符串数据类型
4.7 其他数据类型
4.7 自定义数据类型
sp_addtype [@typename=] type, [phystype= ] system_data_type [[@nulltype=] 'null_type'] [@typename=] type --自定义数据类型的名称 [phystype= ] system_data_type --自定义数据类型基于的系统数据类型 [[@nulltype=] 'null_type'] --自定义数据类型处理空值的方式
五、修改数据表
5.1 重命名、删除表
USE DB_NAME GO EXEC sp_rename 'OldTableName', 'NewTableName'
USE DB_NAME GO DROP TABLE TABLE_NAME
5.2 修改列属性
ALTER TABLE table_name ALTER COLUMN column_name new_type_name
5.3 添加、删除表列
ALTER TABLE table_name ADD column_name dataType
ALTER TABLE table_name DROP COLUMN column_name CASCADE -- CASCADE表示对列进行级联删除, 不仅删除该列,同时删除所有引用这一列的视图,约束,触发器 --RESTRICT,只有在没有视图,约束,触发器引用这一列时,才能删除
5.4 表的关系图
六、约束
6.1 数据库完整性
6.1.1 实体完整性,通常使用主键来实现实体完整性。
6.1.2 参照完整性,方法有,外键,检查,触发器,存储过程等来实现。
6.2 主键约束(PRIMARY KEY)
6.3 外键约束 (FOREIGN KEY)
6.4 唯一性约束 (UNIQUE)
6.5 CHECK约束
6.6 DEFAULT约束
6.7 NOT NULL约束
七、使用规则
规则是对存储的数据表中的列或者用户自定义数据类型中的值的约束。
规则可以在创建表之后单独对列进行约束。
规则可以同时作用于多个数据列。
7.1 创建规则
USE DB_NAME GO CREATE RULE rule_name AS @value > 0 --创建一个规则,使用该规则的列值必须大于0
7.2 绑定规则
--绑定 EXEC sp_bindrule 'rule_name', 'Table_Name.FieldName' --解绑 EXEC sp_unbindrule 'Table_Name.FieldName'
7.3 查看规则
EXEC sp_help 'rule_name' --详情 EXEC sp_helptext 'rule_name'
7.4 删除规则
DROP RULE rule_name
八、使用默认值
8.1 创建默认值
CREATE DEFAULT default_date AS GETDATE()
8.2 绑定默认值
--绑定 EXEC sp_bindefault 'default_date', 'table_Name.FieldName' --解绑 EXEC sp_unbindefault 'table_Name2.FieldName'
8.3 查看默认值
EXEC sp_help default_date --详情 EXEC sp_helptext default_date
8.4 删除默认值
DROP DEFAULT default_date
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!