LocalDB是什么

我们知道微软有一个SQL Server的免费版本SQL Server Express,它是作为学习以及构建桌面或小型服务器应用的入门级的免费数据库。但是作为编程人员,还是觉得体积过大。所以微软为开发者量身定制了一款专门用于编程开发的小数据库SQL Server Express LocalDB(实际上就是从SQL Server Express中抽离出来的)。

下载和安装LocalDB

如果你使用Visual Studio开发,那么恭喜你Visual Studio从2012版本开始就自带了LocalDB。

比如我的VS2017中就带了LocalDB。

如果你觉得Visual Studio体积太大了(吃了我好几个G),不想安装这个巨无霸,那么可以从https://www.microsoft.com/en-us/sql-server/sql-server-downloads下载一个Express版本的下载器:!

选择LocalDB单独下载

下载完成后只有一个44M的安装包(很小(⊙o⊙)哦)。

安装过程很简单这里就不演示了。

注意:

安装完成后,LocalDB就可以创建并打开数据库了,系统默认的数据库文件会存储在用户的AppData下,比如C:\Users\Administrator\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances,该目录下是数据库实例,我们可以用SqlLocalDB命令行工具类管理数据库实例。

sqllocaldb工具的参考文档:https://docs.microsoft.com/en-us/sql/tools/sqllocaldb-utility

使用sqllocaldb命令行工具管理数据库实例

命令行工具很好用,所有的文档都是中文的:

C:\>sqllocaldb /?
Microsoft (R) SQL Server Express LocalDB 命令行工具
版本 13.0.1601.5
版权所有(C) Microsoft Corporation。保留所有权利。用法: SqlLocalDB 操作 [parameters...]操作:-?打印此信息create|c ["instance name" [version-number] [-s]]使用指定的名称和版本创建新的 LocalDB 实例如果忽略 [version-number] 参数,则它默认为系统中安装的最新 LocalDB 版本。-s 创建后启动新的 LocalDB 实例delete|d ["instance name"]删除具有指定名称的 LocalDB 实例start|s ["instance name"]启动具有指定名称的 LocalDB 实例stop|p ["instance name" [-i|-k]]当前查询完成后,停止具有指定名称的 LocalDB 实例-i 使用 NOWAIT 选项请求关闭 LocalDB 实例-k 在不与之联系的情况下终止 LocalDB 实例进程share|h ["owner SID or account"] "专用名称" "共享名称"使用指定的共享名称共享指定的专用实例。如果省略了用户 SID 或帐户名称,它将默认为当前用户。unshare|u ["shared name"]停止共享指定的共享 LocalDB 实例。info|i列出当前用户所拥有的所有现有 LocalDB 实例以及所有共享的 LocalDB 实例。info|i "实例名称"打印有关指定的 LocalDB 实例的信息。versions|v列出在计算机上安装的所有 LocalDB 版本。trace|t on|off打开或关闭跟踪SqlLocalDB 将空格作为分隔符处理。需要用引号将
包含空格和特殊字符的实例名称引起来。
例如:SqlLocalDB create "My LocalDB Instance"如上所述,有时可以省略实例名称,或者
将其指定为 ""。在这种情况下,引用的是默认的 LocalDB
实例 "MSSQLLocalDB"。

创建数据库实例

C:\>sqllocaldb create MyLocalDB
已使用版本 13.1.4001.0 创建 LocalDB 实例“MyLocalDB”。

如果你电脑里装了多个版本的LocalDB那你还需要指定LocalDB的版本

命令执行完成后就会在C:\Users\Administrator\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances创建一个文件夹保存该实例的数据库文件。

启动并查看数据库实例信息

C:\>sqllocaldb create MyLocalDB
已使用版本 13.1.4001.0 创建 LocalDB 实例“MyLocalDB”。C:\>sqllocaldb start MyLocalDB
LocalDB 实例“MyLocalDB”已启动。C:\>sqllocaldb info MyLocalDB
名称:               MyLocalDB
版本:            13.1.4001.0
共享名称:
所有者:              DESKTOP-DQJB4BI\Holmofy
自动创建:        否
状态:              正在运行
上次启动时间:    2017/9/9 17:23:40
实例管道名称: np:\\.\pipe\LOCALDB#BC6488BE\tsql\query
C:\>tasklist | find "sql"
sqlwriter.exe                15488 Services                 0      7,364 K
sqlservr.exe                 13680 Console                  1    170,684 K

这里的sqlservr进程就是LocalDB的后台进程,这个exe文件就在LocalDB的安装目录下:C:\Program Files\Microsoft SQL Server\130\LocalDB\Binn

共享数据库实例

为了支持多个计算机用户连接到单个LocalDB实例,可以使用sqllocaldb share命令选择允许计算机上的其他用户连接到该实例,注意不是将实例共享给其他计算机(跟网络没啥关系),所以这个功能很鸡肋。

连接LocalDB

1、 客户端应用连接

使用sqlcmd命令行(前身是osql)工具连接。

1、 安装:如果你使用VS,这个工具又可以不用安装了,VS自带(SQLServer Manager Studio中也自带了)。

如果你追求简洁,这里也有sqlcmd的下载地址:https://www.microsoft.com/en-us/download/details.aspx?id=53591,只有3M不到放心的下吧

不过这个软件还依赖于odbc驱动,下载链接:https://www.microsoft.com/en-us/download/details.aspx?id=53339,这个也不超过4M。

安装完成后可以使用了:

C:\>sqlcmd /?
Microsoft (R) SQL Server Command Line Tool
Version 13.1.811.168 NT
Copyright (c) 2015 Microsoft. All rights reserved.usage: Sqlcmd            [-U login id]          [-P password][-S server]            [-H hostname]          [-E trusted connection][-N Encrypt Connection][-C Trust Server Certificate][-d use database name] [-l login timeout]     [-t query timeout][-h headers]           [-s colseparator]      [-w screen width][-a packetsize]        [-e echo input]        [-I Enable Quoted Identifiers][-c cmdend]            [-L[c] list servers[clean output]][-q "cmdline query"]   [-Q "cmdline query" and exit][-m errorlevel]        [-V severitylevel]     [-W remove trailing spaces][-u unicode output]    [-r[0|1] msgs to stderr][-i inputfile]         [-o outputfile]        [-z new password][-f <codepage> | i:<codepage>[,o:<codepage>]] [-Z new password and exit][-k[1|2] remove[replace] control characters][-y variable length type display width][-Y fixed length type display width][-p[1] print statistics[colon format]][-R use client regional setting][-K application intent][-M multisubnet failover][-b On error batch abort][-v var = "value"...]  [-A dedicated admin connection][-X[1] disable commands, startup script, environment variables [and exit]][-x disable variable substitution][-j Print raw error messages][-g enable column encryption][-G use Azure Active Directory for authentication][-? show syntax summary]

使用sqlcmd连接MyLocalDB:

C:\>sqllocaldb start MyLocalDB
LocalDB 实例“MyLocalDB”已启动。C:\>sqlcmd -S (localdb)\MyLocalDB
1> :help
:!! [<command>]- Executes a command in the Windows command shell.
:connect server[\instance] [-l timeout] [-U user [-P password]]- Connects to a SQL Server instance.
:ed- Edits the current or last executed statement cache.
:error <dest>- Redirects error output to a file, stderr, or stdout.
:exit- Quits sqlcmd immediately.
:exit()- Execute statement cache; quit with no return value.
:exit(<query>)- Execute the specified query; returns numeric result.
go [<n>]- Executes the statement cache (n times).
:help- Shows this list of commands.
:list- Prints the content of the statement cache.
:listvar- Lists the set sqlcmd scripting variables.
:on error [exit|ignore]- Action for batch or sqlcmd command errors.
:out <filename>|stderr|stdout- Redirects query output to a file, stderr, or stdout.
:perftrace <filename>|stderr|stdout- Redirects timing output to a file, stderr, or stdout.
:quit- Quits sqlcmd immediately.
:r <filename>- Append file contents to the statement cache.
:reset- Discards the statement cache.
:serverlist- Lists local and SQL Servers on the network.
:setvar {variable}- Removes a sqlcmd scripting variable.
:setvar <variable> <value>- Sets a sqlcmd scripting variable.

sqlcmd中除了可以输入T-SQL语句,还有很多内建命令:

GO [count] :List
[:] RESET :Error
[:] ED :Out
[:] !! :Perftrace
[:] QUIT :Connect
[:] EXIT :On Error
:r :Help
:ServerList :XML [ON | OFF]
:Setvar :Listvar

其中除 GO 以外,所有 sqlcmd 命令必须以冒号 (:) 为前缀。

不过为了保持现有 osql 脚本的向后兼容性,有些命令会被视为不带冒号。 这由 [:] 指示。

更多命令的详细参考可以参考官方文档:https://docs.microsoft.com/zh-cn/sql/tools/sqlcmd-utility

使用navicat连接

如果你喜欢图形界面,可能会首先想到微软自己的推出的SQL Server Management Studio,SSMS集成了一大堆的工具,包括配置、监控、管理SQLServer实例等等(上面说的sqlcmd也包括在内),但是八百多兆的安装包,你实际用到的功能少得可怜。个人推荐使用navicat premium,首先就是因为它可以连接各种数据库,不单单局限于SQLServer,navicat premium下载百度一下随处都有。不过SSMS下载链接我也扔这了,你自己选择,https://docs.microsoft.com/zh-cn/sql/ssms/download-sql-server-management-studio-ssms

不过使用navicat等图形界面客户端需要Native Client依赖库,不过在官网找了一下,发现SQLServer 2016等版本都是使用SQLServer2012的Native Client依赖库,所以下载时候不要因为版本不一样而有什么疑虑。sqlncli.msi依赖:https://www.microsoft.com/zh-cn/download/details.aspx?id=50402。

创建数据库

这部分就属于T-SQL语言的部分了,忘记了赶快翻大学课本回忆一下:

CREATE DATABASE [MyFirstDB]
ON PRIMARY
(NAME = 'MyFirstDB',FILENAME = 'C:\Users\Administrator\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances\MyLocalDB\MyFirstDB.ndf',SIZE = 8192KB,MAXSIZE = UNLIMITED,FILEGROWTH = 65536KB
)
LOG ON
(NAME = 'MyFirstDB_log',FILENAME = 'C:\Users\Administrator\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances\MyLocalDB\MyFirstDB_log.ldf',SIZE = 8192KB,MAXSIZE = UNLIMITED,FILEGROWTH = 65536KB
)

需要注意的是SQLServer在创建数据库的时候不能和model database有任何连接,不然就会创建数据库失败。model database是其他数据库创建的模板,这里有对model database的详细介绍:https://docs.microsoft.com/en-us/sql/relational-databases/databases/model-database

最后贴一个微软官方在Github上提供的各语言的SQLServer连接的Demo:

https://github.com/Azure/azure-sql-database-samples

参考链接 :

MSDN:

  • https://docs.microsoft.com/zh-cn/sql/sql-server/editions-and-components-of-sql-server-2016
  • https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/sql-server-2016-express-localdb

LocalDB的使用详解相关推荐

  1. ASP.NET MVC 5 学习教程:Details 和 Delete 方法详解

    ASP.NET MVC 5 学习教程:Details 和 Delete 方法详解 原文 ASP.NET MVC 5 学习教程:Details 和 Delete 方法详解 在教程的这一部分,我们将研究一 ...

  2. 图文详解远程部署ASP.NET MVC 5项目

    图文详解远程部署ASP.NET MVC 5项目 原文:图文详解远程部署ASP.NET MVC 5项目 话外篇: 由于感觉自己的机器比较慢,配置不好,所以最近想把之前的项目部署到实验室的服务器上,但是由 ...

  3. Code First开发系列之管理数据库创建,填充种子数据以及LINQ操作详解

    本篇目录 管理数据库创建 管理数据库连接 管理数据库初始化 填充种子数据 LINQ to Entities详解 什么是LINQ to Entities 使用LINQ to Entities操作实体 L ...

  4. 8天掌握EF的Code First开发系列之3 管理数据库创建,填充种子数据以及LINQ操作详解...

    本文出自8天掌握EF的Code First开发系列,经过自己的实践整理出来. 本篇目录 管理数据库创建 管理数据库连接 管理数据库初始化 填充种子数据 LINQ to Entities详解 什么是LI ...

  5. 2008系统无法启动服务器不可用,SQL Sever2008r2 数据库服务各种无法启动问题的解决办法(详解)...

    搜索热词 一.sql Server服务远程过程调用失败解决 以前出现过这个问题,那时候是因为把实例安装在了D盘,后来D盘被格式化了.然后,这些就没了.今天早上打开电脑,竟然又出现这个问题,可是Serv ...

  6. 从命令行到IDE,版本管理工具Git详解(远程仓库创建+命令行讲解+IDEA集成使用)

    首先,Git已经并不只是GitHub,而是所有基于Git的平台,只要在你的电脑上面下载了Git,你就可以通过Git去管理"基于Git的平台"上的代码,常用的平台有GitHub.Gi ...

  7. JVM年轻代,老年代,永久代详解​​​​​​​

    秉承不重复造轮子的原则,查看印象笔记分享连接↓↓↓↓ 传送门:JVM年轻代,老年代,永久代详解 速读摘要 最近被问到了这个问题,解释的不是很清晰,有一些概念略微模糊,在此进行整理和记录,分享给大家.在 ...

  8. docker常用命令详解

    docker常用命令详解 本文只记录docker命令在大部分情境下的使用,如果想了解每一个选项的细节,请参考官方文档,这里只作为自己以后的备忘记录下来. 根据自己的理解,总的来说分为以下几种: Doc ...

  9. 通俗易懂word2vec详解词嵌入-深度学习

    https://blog.csdn.net/just_so_so_fnc/article/details/103304995 skip-gram 原理没看完 https://blog.csdn.net ...

最新文章

  1. 负载均衡算法-最少连接数均衡
  2. 关于Messenger实现进程间通信
  3. (6)段描述符D/B位
  4. for循环与while循环效率对比·5年以下编程经验必看C#】
  5. ​“北斗女神”徐颖,32岁成为中科院最年轻的博导!
  6. SQL Server需要监控哪些计数器 ---指尖流淌
  7. 农业银行数据库最佳实践和发展规划
  8. Fedora 17 Beta is declared GOLD.
  9. 怎么把外部参照合并到图纸_怎么对两个图纸内容进行合并操作
  10. Kibana6.x.x源码结构分析笔记
  11. python 流程控制基础知识总结 和九九乘法表、质数、水仙花数、猜拳游戏练习
  12. java删除指定文件后重新建立文件系统_java file 操作之创建、删除文件及文件夹...
  13. flowchart流程图编程语言下载_c语言流程图生成器下载
  14. Guava-Splitter
  15. 大陆打电话到香港要怎么打?那发信息呢?
  16. 【单片机毕业设计】【mcuclub-cl-022】基于单片机的隧道检测的设计
  17. html 下划线 鼠标手,(腾讯设计规范.ppt
  18. 对keep-alive的理解,它是如何实现的,具体缓存的是什么?
  19. 搭建Centos ,配置网络 以及换源
  20. 全金属狂怒云上计算机密码,【攻略向】游戏中所有装备解锁地点

热门文章

  1. 【Tensorflow】 tf.equal(tf.argmax(y, 1),tf.argmax(y_, 1))用法
  2. Uva129 Krypton Factor【dfs回溯】【例题7-5】
  3. 动易安全开发手册[zt]
  4. 计算机二级是win7,计算机二级等考宝典
  5. 临近新春佳节,如何多快好省地买遍全球年货?
  6. 华为云如何绑定/解绑二次验证码/虚拟MFA/谷歌身份验证器?
  7. 测试功放HT8692HT8299s
  8. hive 的like与rlike,not like,linke not,coalesce函数使用
  9. 对Dataframe数据Excel进行升序降序排列
  10. Linux 笔记本电脑选购指南