- **作者简介:一名云计算网络运维人员、每天分享网络与运维的技术与干货。 **
- 公众号:网络豆
- ** 座右铭:低头赶路,敬事如仪**
- 个人主页: 网络豆的主页
写在前面
本系列文章将会讲解SQL server 数据库和表的管理,并且会同步视频进行安装讲解。
视频教程:【sql server 表的管理教程】
前期回顾:Windows server 2016——SQL server 简介与安装
介绍
SQL Server是由微软公司开发的关系型数据库管理系统,现在是全世界主流数据库之一。它具备方便使用、可伸缩性好、相关软件集成程度高等优势,能够从单一的笔记本上运行或以高倍云服务器集群为基础,或在这两者之间任何一种方式上运行。
一.SQL Server的数据存储结构
1.文件类型
数据文件:
- 主数据文件(.mdf) 有且只有一个
- 次要(辅助)数据文件(.ndf)可有可无,有可以多个。
事务日志文件(.ldf)至少有一个
- 记录所有事务的SQL语句
- 用于恢复数据库
二.数据库管理
1.创建数据库
数据库名称
数据文件和日志文件
- 名称
- 文件初始大小
- 自动增长
- 存储路径
** 2.扩展数据库**
作用
- 为数据文件和日志文件分配更多的空间
方法
- 扩展现有文件的自动增长设置
- 添加新文件
** 3.收缩数据库**
作用
- 释放数据库中未使用空间
方法
- 手动收缩
- 自动收缩
** 4.分离和附加数据库**
作用
- 将数据库更改到不同SQL Server 实例中
分离数据库
- 将数据库从实例中移除
附加数据库
- 通过定位主数据库文件,将数据库附加到另一实例
** 5.删除数据库**
只能删除用户数据库,系统数据库无法删除
三.表的基本概念
1.数据完整性
实体完整性
•每一行必须是唯一的实体
引用完整性
•确保所有表中数据的一致性,不允许引用不存在的值
域完整性
•检查每一列是否有效
用户定义的完整性
•制定特定的业务规则
2.主键
- 用于唯一标识表中的行数据
- 由一个或多个字段组成
- 具有唯一性
- 不允许取空值(NULL)
- 一个表只能有一个主键
四.常用数据类型
数据类型
是数据的一种属性,指定对象可保存的数据的类型
**SQL Server **数据类型
•精准数字
•近似数字
•字符串
•**Unicode **字符串
•二进制字符串
•日期和时间
•其他数据类型
精准数字
数据类型
描述
int
整型,存储-231到231之间的整数,占4****字节空间
bit
整型,取值0、1或NULL。存储只有两种可能值的数据,如Yes或****No
decimal
存储从-1038-1到1038-1****的固定精度和范围的数值型数据,须指定范围和精度。范围是小数点左右所能存储的数字的总位数。精度是小数点右边存储的数字的位数
money
表示钱和货币值。存储从-922 337 203 685 477.5808 到 922 337 203 685 477.5807之间的数据,精确到货币单位的万分之一,占8****字节空间
近似数字
数据类型
描述
float
表示浮点数值数据的大致数值。表示**-1.79E+308到1.79E+308 之间的任意数,占8**字节空间
real
表示**-3.40E+38到3.40E+38之间的浮点数。占4 **字节空间
字符串
数据类型
描述
char
**存储固定长度,非 ****Unicode 字符数据。须指定列长,最多包含 8000 **个字符
varchar
*存储可变长度,非 *Unicode 字符数据。需要指定该列的最大长度,最多包含231*个字符*
text
存储大量的非 Unicode字符数据,最多可以有231-1或大约20****亿个字符
** Unicode字符串**
数据类型
描述
nchar
存储定长Unicode字符型数据。Unicode使用双字节结构来存储每个字符,在空间占用上增加了一倍
nvarchar
存储变长Unicode字符型数据
ntext
存储大量的Unicode字符型数据
** 二进制字符串**
数据类型
描述
binary
*存储可达***8000 **字节长的定长的二进制数据
varbinary
*存储可达***8000 **字节长的变长的二进制数据
image
存储变长的二进制数据,最大可达**231-1或大约20**亿字节
日期和时间
数据类型
描述
date
*日期。存储从公元元年1月1日到公元9999年 12月31日间所有的日期数据。占3字节空间*
time
*表示一天中某个时间,不能感知时区且基于 *24 小时制,占5*字节空间*
datetime
表示日期和时间。存储从1753年1月1日到9999年12月31日间所有的日期和时间数据,占8个字节空间
五.使用SSMS操作数据表
1.默认值
如果没有为列指定值,默认值则指定列中使用的值
没有为列指定默认值
•如果允许空值,则将向该列中插入 NULL
•如果不允许空值,在用户为该列提供值前,将无法保存行
2.标识列
包含系统自动生成的序号值的列
- 列值由系统按一定规律生成,不允许空值
- 列值不能重复,唯一标识表中每一行
- 每个表只能有一个标识列
3.创建****标识列(自增列)
- 类型(type)
- 种子(seed)
- 递增量(increment)
4.检查约束
- 限制列可接受的值
- 通过逻辑表达式创建检查(CHECK)约束
例:
成绩大于等于0并且小于等于100
成绩>=0 and 成绩〈=100
六.使用T-SQL语句管理数据表
1.创建表
CREATE TABLE 表名
(
列名1 数据类型(大小),
列名2 数据类型(大小),
列名3 数据类型(大小),
……
)
2.删除表
DROP TABLE <表名>
七.操作练习
操作要求:
(1)创建一个名为benet的数据库,数据库文件存放在c:\benet,如图所示:
(2)将benet数据库设置为自动收缩。
(3)创建一个名为student的表,表中字段如下图所示:
字段要求:学员编号为从1开始自动编号,身份证号为主键列,所在班级的默认值为t3145,成绩输入要求大于等于0,小于等于100(成绩 >=0 and 成绩 <=100 )。
(4)在图形界面下,输入数据,测试以上的要求是否符合要求。
(5)使用语句删除student表。
(6)使用语句再次创建student表。如图所示:
(7)在表的“设计”视图下查看是否符合上面表的要求。
(8)在图形界面下,输入数据,测试是否符合上面表的要求。
** 创作不易,求关注,点赞,收藏,谢谢~ **
版权归原作者 网络豆 所有, 如有侵权,请联系我们删除。