连接到服务器vs连接到数据库
本文关键字:连接 数据库 服务器 vs | 更新日期: 2023-09-27 18:12:26
连接到服务器和连接到数据库有什么区别?
问题的背景是,我负责开发一个概念证明,其中用户可以选择我们的一个服务器,该服务器中的数据库,该数据库中的表和该表中的列。我正在使用Visual c#和ASP.NET。我相信我可以从网络中的连接字符串中获得服务器。
如果有帮助的话(我喜欢例子),你可以假设SQL服务器
(对原来问题的回答)
有一个层次结构:
-
服务器:一块运行操作系统和应用程序的物理(或虚拟)硬件。您将通过IP地址或DNS名称来解决它,可以托管多个数据库服务器
- 数据库服务器(又名实例):一个运行的软件,可以承载多个数据库。当你使用连接字符串时,它的格式是"服务器名'实例名"
- Database:可以承载多个数据表的数据结构
- 数据表:一个数据结构,可以容纳多个列和行
- Column:最小的信息分隔,保存特定主题的信息
- Row:保存一组列。
- 数据表:一个数据结构,可以容纳多个列和行
- Database:可以承载多个数据表的数据结构
- 数据库服务器(又名实例):一个运行的软件,可以承载多个数据库。当你使用连接字符串时,它的格式是"服务器名'实例名"
(更新问题的答案)
每个SQL提供程序都不同,但是使用Microsleft SQL服务器,您只需连接到服务器(不要在连接字符串中提供默认实例)并执行以下操作:
select * from sys.databases
建立数据库后,连接到该数据库并执行以下操作获取表
select * from sys.tables where type = 'U'
来获取你所做的列
select * from sys.Columns
然而,要获得列所在表的名称,您需要将Object_id
与Object_id
匹配到sys.tables
select t.name as TableName, c.Name as ColumnName
from sys.tables t
inner join sys.columns c on t.object_id = c.object_id
where t.Type = 'U'
你可以实现你的目标。最初,您将连接到服务器上的数据库master
并查询该服务器上的数据库。
SELECT * FROM sys.databases
然后,您将启动到所选数据库的新连接,并查询该数据库的信息模式,以获得表列表。
SELECT * FROM INFORMATION_SCHEMA.TABLES
重复选择列。
SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'foo'
如果服务器指的是数据库服务器,您将连接到服务器以访问托管在该服务器上的数据库。