数据库:文件和文件组组成。
数据库文件==》
1.主要数据文件:存放数据和数据库的初始化信息;每个数据库有且只能有一个; .mdf 扩展名;
2.次要数据文件:存放除了主要数据文件以为的所有数据文件;次要数据文件不是必须的,可以没有;可以是一个或多个;.ndf 扩展名;
3.事务日志文件:存放用于恢复数据库的所有日志信息;每个数据库至少要有一个日志文件;默认 .ldf 扩展名;
文件组==》
是数据库文件的一种逻辑管理单位,其将数据库文件分为不同的文件组,方便对文件的分配和管理。
文件组分为:
- 主文件组 Primary,一般包含主要数据文件和没有明确指派给其他文件组的文件
- 用户自定义文件组,create database 或 alter database语句,filegroup关键字指定的文件组
设计原则:
文件只能是一个文件组的成员;
文件或文件组不能有一个以上的数据库使用;
数据和日志信息不能属于同一个文件或文件组;
日志文件不能作为文件组的一部分
数据库常用对象==》表、字段、视图、索引、存储过程、触发器、约束、缺省值
1.表:包含数据库中所有数据的对象,行和列组成,用于组织和存储数据。
2.字段:表中的列;一个表可以有多个列(属性--数据类型、大小、)
3.视图:
一种虚拟的表,可以对一张或多张表建立联合查询形成;
是用户查看数据的一种方式,其结构和数据建立于其他实际表基础之上。
4.索引:
创建索引的目的是为用户提供一种快速访问数据的途径,索引是依赖于表而建立;
索引类似于文档目录--用于快速定位,检索数据时,不用对整个表进行扫描
5.存储过程:
是一组为了完成特定功能的SQL语句的集合(CRUD);
存储在数据库中,以名称进行调用,当调用执行是,其存储过程中的操作就会被执行;
6.触发器:
在数据中,属于用户定义的SQL事务命令集合;
触发器,是针对于表来说的,当对表执行CRUD操作时,触发器命令就会自动触发而执行;
7.约束:
对数据表中的列,进行的一种限制;
可以更好的规范表中的列;
8.缺省值:
对表中的列可以制定一个默认值;
当对表进行插入操作时,如果没有插入值,就会插入默认值信息,即缺省值;
数据类型分类==》
数值型
- 整型数据类型:bigint--8字节、int--4、smallint--2、tinyint--1
- 浮点型:float--近似数值,存在精度丢失;real--近似值;decimal--精确数值,不存在精度损失decimal(18,2--表示小数点精度位数)
- 货币类型:money、smallmoney
字符型
character字符串
- char 固定长度8000,不够会自动补齐
- varchar(n) 可变长度字符串,n 最大8000
- varchar(max) 可表长度字符串
- text 可表长度字符串,最大2GB
Unicode字符串
- nchar 固定长度4000,不够会自动补齐--varchar长度的一半;
- nvarchar(n) 可变长度字符串,n 最大4000--varchar长度的一半;
- nvarchar(max) 可表长度字符串--varchar长度的一半;
- ntext 可表长度字符串,最大2GB
注:varchar存储一个汉字需要两个长度,而nvarchar需要一个长度;
varchar存储中文,容易出现乱码;
存储全英文的或纯数字的可以使用, varchar--占用1个字节长度;
存储存在中文的建议使用,nvarchar--存储大小两个字节长度;
日期型
- datetime,精确度高
- datetime,精确度更高,100纳秒
- smalldatetime,精度1分钟 ,时间范围小
- date,存储日期(年月日)
- time,存储时间(时分秒)
二进制类型
bit:允许0/1/NULL
binary(n):固定长度的二进制数据,最多8000字节
varbinary(n):可变长度的二进制数据,最多8000字节
varbinary(max):可变长度的二进制数据,最多2GB字节
image:可变长度的二进制数据,最多2GB
其他类型
uniqueidentifier:全局唯一标识符GUID ——select NEWID() as guid
xml:存储XML格式化数据,最多2GB
sql_variant:存储最多8000字节不同数据类型的数据,除了text、ntext、timestamp
cursor:存储对用于数据库操作的指针的引用
table:存储结果集,供稍后处理
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本