数据库学习笔记 2 数据库文件基本查询

时间:2024-04-01 07:19:28

去年买了一本讲SqlServer的书,这几天把这本尘封已久的书拿了出来,准备按照上面的目录撸一遍。

简单的看了下这本书的目录结构,一共是九个部分

  • 数据库安装
  • 建立数据库和处理数据
  • 高级T-SQL
  • T-SQL编程
  • 企业数据管理
  • SQL Server安全
  • 监视和审计
  • 性能调整和优化
  • 商业智能

数据库文件

软件安装对我来说已经驾轻就熟了毕竟已经工作有一段时间了,所以我非常偷懒的跳过了第一部分,从第二部分开始看起。(上一篇也说过,我只装了sqlserver dev的数据库引擎,其余什么机器学习呀,Python和R语言还有外部扩展什么的一概没装)

建立数据库说的就比较简单了,首先说的是如何创建物理数据库,其实就是创建数据库的文件。

数据库学习笔记 2 数据库文件基本查询

或许是原来玩的数据量都比较小,所以对数据库文件也就没有什么要求和注意,看完关系数据库设计和创建物理数据库架构一章后对数据库文件有了新的认识。

创建一个数据库默认情况下会产生两种文件,一种是数据库文件扩展名为mdf,一种是日志文件扩展名为ldf并且都在一个目录下。

其实数据库文件并不是只有mdf一种,还有一种数据库从文件的扩展名是ndf。

即数据库文件具有主从关系,一个数据库有一个主文件(mdf)和多个从文件(ndf)。

这样设计的原因我想到的场景是如果主文件被写满了,可以迅速创建一个从文件继续存储数据保证数据库的增长。(感觉集群也能实现同样的功能)

默认情况下默认情况下会有一个日志文件(ldf)用于记录数据库事物日志,这个日志有可能是恢复数据库的救命稻草日志文件可以有多个没有主从关系。

效率上并不推荐把数据库文件和日志文件放一起
文件组概念有点没整明白,只知道主组存mdf和为分组的所有ndf理由是啥不知道。。。有时间再看一下

数据库基本查询流

基本操作无非就是数据库的DML(增删改查)操作,查询除了简单的select from where句式外我要注意到有一个去重操作distinctselect distinct columnname from table可以有效去除查询结果中重复的数据。

还有就是CASE操作,case when thin else end name(别名)简单使用对0 1判断很有效,省去在内存中遍历的环节,比如查性别 select sex case when '1' thin '男' else '女' end sexcase