去年买了一本讲 SqlServer 的书,这几天把这本尘封已久的书拿了出来,准备按照上面的目录撸一遍。
简单的看了下这本书的目录结构,一共是九个部分
软件安装对我来说已经驾轻就熟了毕竟已经工作有一段时间了,所以我非常偷懒的跳过了第一部分,从第二部分开始看起。(上一篇也说过,我只装了 sqlserver dev 的数据库引擎,其余什么机器学习呀,Python 和 R 语言还有外部扩展什么的一概没装)
建立数据库说的就比较简单了,首先说的是如何创建物理数据库,其实就是创建数据库的文件。
或许是原来玩的数据量都比较小,所以对数据库文件也就没有什么要求和注意,看完关系数据库设计和创建物理数据库架构一章后对数据库文件有了新的认识。
创建一个数据库默认情况下会产生两种文件,一种是数据库文件扩展名为 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