介绍
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)在图形界面下,输入数据,测试是否符合上面表的要求。
创作不易,求关注,点赞,收藏,谢谢~