SQL Server Express LocalDB入门
SQL Server Express = SQL Server的精简版
SQL Server Express LocalDB = SQL Server Express的轻量版,可嵌入应用程序使用
∴SQL Server Express LocalDB = SQL Server的精简精简版
一般来说,随着Visual Studio的安装,在默认情况下会有Express版或者LocalDB版的SQL Server一并安装。
我的VS2013自带的就是SQL Server 2012 Express LocalDB版本。
根据个人见解比较一下三大关系型数据库的异同:
库/表/用户关系 | 语句友好程度 | |
---|---|---|
MySQL/MariaDB | 用户与数据分离,库是一系列表的集合 | 友好 |
SQL Server | 用户与数据分离,库是一系列表的集合 | 一脸懵逼 (独家Transact-SQL ) |
Oracle DB | 库不知道去哪了,用户是一系列表的集合 | 还行 (独家PL/SQL ) |
(由表自然容易看出,在下是比较倾向于MySQL系的RDBMS的)
MySQL的使用就像使用常用的操作系统一样:多个用户访问相同数据,通过权限来确保数据的安全性。由于开发小型项目经常用到,而且也是开源,使用的人也多,疑难解答很方便,提出意见被接受的概率(大概)也比较大。
但是据说可能由于没有足够的技术积淀,在大型项目上的表现会不是很好。但是小项目写起来很爽啊
相反,作为商业级的大型数据库,Oracle能够在大型项目中有较稳定的表现。(咳咳,这是他家代理的营销说的)
个人感觉是,在基础使用上和MySQL没有太大的差别,主要就是表是按照用户来聚集的,也就是说,可以将表的绝对定位表示为类似于user.table
这种感觉。和本文的主体一样,实例似乎在这两种数据库上有较大的重要性,运行之前还得起个名字。回收站倒是个神奇操作。至于PL/SQL
的话,个人感觉既然项目不可能完全用这个语言来写的话,为啥不用技术栈里的语言来写呢。反正初学之时感觉这是个鸡肋,至于之后的话,或许会因为执行效率较高什么的,能够派上用场吧。
SQL Server的使用体验是奇妙的。似乎是巨硬家的传统一样,几乎所有的自产软件都只能在自家的田牌系统下运行。 而这个神奇的数据库系统竟然可以直接拿Windows的本地用户账号去登陆。(感觉相当不利于安全管理啊) 接下来稍微说说最基本的操作吧。
安装文件夹的根目录名为Microsoft SQL Server
。
用来管理数据库实例和进行连接的程序放在Microsoft SQL Server\{version}\Tools\Binn
下。
(某游戏玩家自作聪明地在)LocalDB
的Binn
目录下,对着sqlservr.exe
折腾了老半天,还以为真的安装损坏了
创建/启动/停止/删除实例
SqlLocalDB create/start/stop/delete {instance-name}
展示现有实例信息
SqlLocalDB info {instance-name}
如果info
后不加实例名的话,会展示出所有实例的信息。
连接至数据库
SQLCMD -S (localdb)\{instance-name} -d {database-name}
这样会用当前Windows用户账户登陆到该数据库。
SQLCMD
连接上以后,就可以输入Transact-SQL语句了。
在下常用的语句抄录如下:
查询所有的数据库名:
SELECT name FROM master..sysdatabases WHERE name NOT IN ('master', 'model', 'msdb', 'tempdb', 'northwind', 'pubs')
创建数据库:
CREATE DATABASE {db-name}
获取当前用户名:
SELECT system_user
获取当前数据库名:
SELECT name FROM master..SysDatabases WHERE dbid=(SELECT dbid FROM master..SysProcesses WHERE spid = @@spid)
获取当前数据库中的所有表名:
SELECT name FROM {db_name}..sysobjects WHERE xtype='U' ORDER BY name
其中xtype中填U表示用户表,S表示系统表。