方法/步骤
1、找到要打开的数据库文件,如图
2、如图所示,该数据库文件后缀名为.mdf,是SQL Server数据库的数据文件,这里将用SQL Server数据库对该文件进行打开。启动SQL Server数据库,如图
3、图为启动SQL Server Management Studio时的界面,登录后可以管理数据库数据。开启之后的界面如图
4、提示用户输入用户名和登录密码,输入正确后,点击登录,进入管理界面,如图
5、进入管理界面后,右键选择数据库,再选择【附加】功能,如图
6、点击【附加】后,出现窗口,如图
7、在【附加数据库】窗口中,点击【添加】按钮,提示选择要附加的数据库,如图
8、选种要添加的数据库,点击确定,在管理界面中会出现添加的数据库,如图
9、打开数据库,就可以看到数据库中的表,表中的数据都可以看到。如图
注意事项
按以上步骤来,就可以打开数据库文件。
不要直接点右键进行打开,可能会对文件告成损坏。
⑵ SQL Server中SCAN 和SEEK的区别
SQL SERVER
使用扫描(scan)和查找(seek)这两种算法从数据表和索引中读取数据。这两种算法构成了查询的基础,几乎无处不在。Scan
会扫描并且返回整个表或整个索引。 而 seek
则更有效率,根据谓词(predicate),只返索引内的一个或多个范围内的数据。下面将以如下的查询语句作为例子来分析 scan 和 seek:
select OrderDate from Orders where OrderKey = 2
Scan
使用 Scan 的方式,SQL Server 会去读取 Orders 表中的每一行数据,读取的时候评估是否满足谓词 “where
order=2”。如果满足(数据行符合条件),则返回该行。这个例子里,我们将这个谓词称作“resial
predicate”。为了得到最优的性能,SQL 会尽可能地在扫描中使用“resial predicate”。但如果 resial
predicate 的开销过于昂贵,SQL Server 可能会使用单独的“filter iterator”. “resial
predicate”以 where 关键字的形式出现在文本格式的 plan 中。对 XML 格式的
plan,则是<predicate>标记的形式。
下面这个扫描的文本格式的 plan 的结果:
–Table Scan (OBJECT:([ORDERS]), WHERE:([ORDERKEY]=(2)))
下图说明了扫描的方式:
无论数据行是否满足条件,扫描的读取方式都会访问表中的每一个数据,所以 scan 的成本和表的数据总量是成比例的。
因此,如果表很小或者表内的大多数数据多满足谓词,scan 是一种有效率的读取方式。然而如果表很大或者绝大多数的数据并不满足谓词,
那么这种方式会让我们访问到太多不需要的数据页面,并执行更多的额外的 IO 操作。
Seek
继续以上面的查询为例子,如果在 orderkey 列上有一个索引,那么 seek 可能会是一个好的选择。使用 seek
的访问方式,SQL Server 会使用索引直接导向到满足谓词条件的数据行。 这个例子里,我们将这个谓词称为“seek predicate”。
大多数情况下,SQL Server 不必将“seek predicate”重新评估为“resial predicate”。
索引会保证“seek”只返回符合条件的数据行。“seek predicate”以 seek 关键字的形式出现在文本格式的 plan 中。 对于
xml 格式的 plan,则以<seekpredicates>标记出现。
下面是使用 seek 的文本格式的 plan 的结果:
–Index Seek (OBJECT:([ORDERS].[OKEY_IDX]), SEEK:([ORDERKEY]=(2)) ORDERED FORWARD)
使用 seek 时,SQL Server
只会直接访问到满足条件的数据行和数据页,因此它的成本只跟满足条件的数据行的及其相应的数据页面数量成比例, 和基表的数据量完全没有关系。因此,如果
对于一个选择性很高(通过这个谓词,可以筛选掉表中的大部分数据)的谓词条件,seek 是非常高效的。
下面的表格列出了 seek 和 scan 这两种查找方式和堆表,聚簇索引和非聚簇索引的各种组合:
Scan
Seek
Heap
Table Scan
Clustered Index
Clustered Index Scan
Clustered Index Seek
Non-Clustered Index
Index Scan
Index Seek
⑶ 如何用SQL语句将查询结果存储到文本文件中
1.打开考生文件夹下的数据库College,物理删除该数据库中的temp表,然后将3个自由表"教师表"、"课程表"和"学院表"添加到该数据库中。 2.为"课程表"和"教师表"分别建立主索引和普通索引,字段名和索引名均为"课程号",并为两个表建立一对多的联系。 3.使用SQL语句查询"教师表"中工资大于等于4500的教师的全部信息, 将查询结果按职工号升序排列, 查询结果存储到文本文件one.txt中 ,SQL语句存储于文件two.prg中。
⑷ Excel Sql 连接文本文档的语句怎么写
TEXT格式不定,所以无法用SQL连接。
以下是我录的一段宏,应该可以理解吧,不懂的话可以看下QueryTables的帮助:
Sub xpt280()
With ActiveSheet.QueryTables.Add(Connection:="TEXT;D:\abc.txt", Destination:=Range("$A$1"))
.Name = "abc"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 936
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
End Sub
⑸ 如何利用SQL Server 2012数据库操作事务管理
一、启用FileTable
1、修改数据库引擎的属性
打开“SQL Server配置管理器”,修改SQL Server数据库引擎的属性。使用此页可针对此 Microsoft SQL Server 2012安装启用 FILESTREAM。
(1)针对 Transact-SQL 访问启用 FILESTREAM
选中此项可针对 Transact-SQL 访问启用 FILESTREAM。 必须选中此控制选项,才能使用其他控制选项。如果不启用此选项,就不能添加FileStream文件组。
(2)针对文件 I/O 流访问启用 FILESTREAM
选中此项可针对 FILESTREAM 启用 Win32 流访问。
(3)Windows 共享名
使用此控制选项可输入将用来存储 FILESTREAM 数据的 Windows 共享的名称。默认为该SQL Server实例的名称。
(4)允许远程客户端针对 FILESTREAM 数据启用流访问
选中此控制选项可允许远程客户端访问此服务器上的此 FILESTREAM 数据。
2、修改服务器的属性
打开“SQL Server Management Studio”,修改该实例的配置。默认配置如下:
上述选项解释如下:
(1)“FILESTREAM 访问级别”显示 SQL Server 实例上支持的 FILESTREAM 的当前级别。若要更改访问级别,请选择以下值之一:
已禁用
无法将二进制大型对象 (BLOB) 数据存储在文件系统中。此为默认值。即filestream access level=0
已启用 Transact-SQL 访问
可使用 Transact-SQL 访问 FILESTREAM 数据,但不能通过文件系统进行访问。即filestream access level=1
已启用完全访问
FILESTREAM 数据可使用 Transact-SQL 以及通过文件系统进行访问。即filestream access level=0
注意:在首次启用 FILESTREAM 时,您可能需要重新启动计算机才能配置驱动程序。
(2)“FILESTREAM 共享名称”显示在安装过程中选择的 FILESTREAM 共享的只读名称。
在本次实验中,我们将“FILESTREAM 访问级别” 设定为:已启用完全访问。
如果是通过T-SQL脚本执行,则运行以下脚本:
EXEC sys.sp_configure N'filestream access level', N'2'
RECONFIGURE WITH OVERRIDE
注意:设置完成之后,重启实例。
3、配置防火墙
若要在防火墙保护的环境中使用 FILESTREAM,客户端和服务器都必须能够将 DNS 名称解析为包含 FILESTREAM 文件的服务器。FILESTREAM 要求 Windows 文件共享端口 139 和 445 处于打开状态。
二、配置文件组
1、添加文件组
完成上述操作之后,就可以为该数据库添加专用于FileStream的文件组。
如果是通过脚本操作,请运行以下脚本:
ALTER DATABASE [db01] ADD FILEGROUP [FileStreamFileGroup] CONTAINS FILESTREAM
2、添加文件
完成上述操作之后,就可以为该数据库添加FilStream类型的数据库文件。
在本例中,系统并没有为“FileStream数据”的文件类型创建mdf或ndf文件,而是在文件夹C:\SqlData下面自动创建以逻辑名称命名的文件夹,即 C:\SqlData\FileData。其中filestream.hdr 文件是 FILESTREAM 容器的头文件。当这个数据库被删除时,mdf、ndf、log连同这个文件夹都会被删除。
如果是通过脚本操作,请运行以下脚本:
ALTER DATABASE [db01] ADD FILE ( NAME = N'FileData', FILENAME = N'C:\SqlData\FileData' ) TO FILEGROUP [FileStreamFileGroup]
注意:在上例中,在运行脚本之前,必须存在C:\SqlData,建议使用右侧的选择按钮选择路径。如果路径不存在,就会报错:
同时不能存在重复的文件夹,即不能存在C:\SqlData\FileData。否则也会报错:
3、启动非事务访问
FileTable 使 Windows 应用程序可以获取 FILESTREAM 数据的 Windows 文件句柄而不需要 SQL Server 事务。为了允许对 SQL Server 中存储的文件进行此非事务性访问,必须为要包含 FileTable 的每个数据库在数据库级别上指定所需的非事务性访问级别。
选项解释如下:
(1)FILESTREAM 非事务访问
为从文件系统到 FileTables 中存储的 FILESTREAM 数据的非事务性访问指定以下选项之一:OFF、READ_ONLY 或 FULL。
如果在服务器上未启用 FILESTREAM,则该值将设置为 OFF 并且被禁用。在本次实验中,将其设置为FULL。
(2)FILESTREAM 目录名称
为与所选数据库相关联的 FILESTREAM 数据指定目录名称。在 FileTable 文件夹层次结构中,此数据库级目录将成为在实例级别为 FILESTREAM 指定的共享名称的子级以及在数据库中创建的 FileTable 的父级。
如果启用非事务性访问时没有提供目录名称,则在以后必须提供它,这样才能在数据库中创建 FileTable。
如果是通过脚本执行,如下:
ALTER DATABASE db01
SET FILESTREAM ( NON_TRANSACTED_ACCESS = FULL, DIRECTORY_NAME = N'ImageFiles' )
注意:更改现有数据库时,调用带 DIRECTORY_NAME FILESTREAM 选项的 ALTER DATABASE (Transact-SQL) 语句。使用这些选项更改目录名称时,数据库必须以独占方式锁定,没有打开的文件句柄。
说明:为检查是否在数据库上启用了非事务性访问,可以查询目录视图,脚本如下:
SELECT DB_NAME(database_id), non_transacted_access, non_transacted_access_desc
FROM sys.database_filestream_options
三、创建FileTable
1、创建第一个FileTable
“SQL Server Management Studio”只提供一个脚本模板,要想创建FileTable还是得用脚本完成:
USE db01
CREATE TABLE ImageTable1 AS FILETABLE
官方的范本为:
USE [db01]
CREATE TABLE [dbo].[ImageTable1] AS FILETABLE ON [PRIMARY] FILESTREAM_ON [FileStreamFileGroup]
WITH
(FILETABLE_DIRECTORY = N'ImageTable1', FILETABLE_COLLATE_FILENAME = Chinese_PRC_CI_AS)
2、创建第二个FileTable
CREATE TABLE ImageTable2 AS FILETABLE
3、获取共享路径
文件表创建之后,就会相应的产生一个文件表共享目录,该目录路径可以通过内建函数获取:
SELECT FileTableRootPath('ImageTable1')
本次实验所返回的结果为:\\SQL1\SqlFile\ImageFiles\ImageTable1
4、查看
通过Windows资源管理器,可见已经创建了以GUID命名的文件夹。
通过SQL Server Management Studio,查看表的结构。
四、操作
1、向文件夹中添加文件
通过 “Windows资源管理器”,向文件夹\\SQL1\SqlFile\ImageFiles\ImageTable1中添加一个文件A01.GIF。然后运行脚本:
select * from ImageTable1
结果如下:
可见, SQL Server自动在Table中添加了记录。
2、文件改名
运行以下脚本:
update ImageTable1 set name='Cup.GIF' where name='A01.GIF'
通过“Windows资源管理器”,查看文件夹\\SQL1\SqlFile\ImageFiles\ImageTable1,可见文件A01.GIF已经被改名为Cup.GIF 。
3、查看共享文件夹
我们可以继续复制其他文件,然后通过“Windows资源管理器”,查看文件夹。
4、删除文件
可以使用脚本删除,例如:
Delete ImageTable1 where name='Cup.GIF'
或者,通过“Windows资源管理器”直接删除该文件。
五、备份和还原
1、备份数据库
使用 SQL Server 备份数据库时,FILESTREAM 数据将与数据库中的结构化数据一起备份。
2、部分备份
如果不想将 FILESTREAM 数据与关系数据一起备份,则可以使用部分备份将 FILESTREAM 文件组排除在外。
⑹ sql怎么写注释文档
mysql 服务器支持 # 到该行结束、-- 到该行结束 以及 /* 行中间或多个行 */ 的注释方格:
mysql> SELECT 1+1; # 这个注释直到该行结束
mysql> SELECT 1+1; -- 这个注释直到该行结束
mysql> SELECT 1 /* 这是一个在行中间的注释 */ + 1;
mysql> SELECT 1+
/*
这是一个
多行注释的形式
*/
1;
注意 -- (双长划) 注释风格要求在两个长划后至少有一个空格!
尽管服务器理解刚才描述的注释句法,但 MySQL 客户端的语法分析在 /* ... */ 注释方式上还有所限止:
单引号和双引号被用来标志一个被引用字符串的开始,即使是在一个注释中。如果注释中的引号没有另一个引号与之配对,那和语法分析程序就不会认为注释结束。如果你以交互式运行 mysql,你会产生困惑,因为提示符从 mysql> 变为 '> 或 ">。
一个分号被用于指出当前 SQL 语句的结束并且跟随它的任何东西表示下一行的开始。
不论你是以交互式运行 mysql 还是将命令放在一个文件中,然后以 mysql < some-file 告诉 mysql 读取它的输入,这个限制均存在。
请参考
⑺ sql server 表扫描和索引扫描的区别
表扫描是对表中的每一行数据进行判断;
索引扫描是在表的索引中进行检索判断;
由于索引是算法优化过的, 所以通常检索速度要快得多.
“另外表扫描是整个表每一行里面的每一列都会扫描码?”:
对每一行数据进行检索,是否会用到每个列就要看检索条件是否涉及到每一列了
⑻ sql server数据库课程设计(源程序和文档)怎么打开实现
.sql是SQL脚本文件,.mdf是数据文件,.sln是你的解决方案文件,打开它。现装个VS2005/2008,安装过程中记得装上SQLServer 2005 express
⑼ 扫描枪扫出来的数据怎么和sql数据库中的数据联系起来
扫描枪正常结尾有两个字符一个是enter或者是tab 假如在textbox中输入条码你判断它的textchanged事件, if (p == (char)Keys.Enter
|| p == (char)Keys.Tab)//回车,TAB
{
数据查询绑定;
}
⑽ sql怎么导入数据库文件
第一步打开sql server数据库,点击文件->打开->文件,如下图所示: