您现在的位置是:首页 >技术交流 >CenoOS连接 SQL Server网站首页技术交流

CenoOS连接 SQL Server

Keine Zeit 2024-09-07 12:01:04
简介CenoOS连接 SQL Server

1、问题:

连接:Provider=SQLOLEDB.1;Persist Security Info=False;User ID=XXX;password=XXXXX;Initial Catalog=XXXXX;Data Source=XXXXX;

解析:

示列Column 2
User ID数据库的用户名
password数据库的密码
Initial Catalog数据库账号
Data Sourcehost

2、解决步骤

按照以下步骤进行:

  1. 下载 FreeTDS 源代码包:

    wget ftp://ftp.freetds.org/pub/freetds/stable/freetds-1.3.18.tar.gz
    
  2. 解压源代码包:

    tar xzf freetds-1.3.18.tar.gz
    
  3. 进入解压后的目录:

    cd freetds-1.3.18
    
  4. 配置和编译 FreeTDS:

    ./configure --prefix=/usr/local --with-tdsver=7.4 --enable-msdblib
    make
    sudo make install
    

    这将使用指定的选项配置和编译 FreeTDS,并将其安装到 /usr/local 目录下。

  5. 配置 ODBC 驱动程序:

    创建 odbcinst.ini 文件并编辑它:

    sudo vi /etc/odbcinst.ini
    

    在文件中添加以下内容,以配置 FreeTDS 驱动程序:

    [FreeTDS]
    Description = FreeTDS
    Driver = /usr/local/lib/libtdsodbc.so
    

    保存并关闭文件。

  6. 配置 ODBC 数据源:

    创建 odbc.ini 文件并编辑它:

    sudo vi /etc/odbc.ini
    

    在文件中添加你的数据源配置,例如:
    userdb换成自己的数据库

    [MyDataSource]
    Driver = FreeTDS
    Server = 10.16X.XXX.XX
    Port = 1433
    Database = userdb
    TDS_Version = 8.0
    
示列Column 2
10.16X.XXX.XX换成自己的ip
userdb换成自己的数据库

保存并关闭文件。

  1. 配置环境变量:

    打开 .bashrc 文件:

    vi ~/.bashrc
    

    在文件末尾添加以下行:

    export ODBCSYSINI=/etc
    

    保存并关闭文件。

    为了使环境变量生效,运行以下命令:

    source ~/.bashrc
    
  2. 验证配置:

    运行以下命令来验证 ODBC 驱动程序和数据源的配置是否正确:

    isql -v MyDataSource username password
    

在这里插入图片描述

这将使用你配置的数据源连接到数据库。如果连接成功,将显示 SQL 命令提示符SQL>,输入quit退出。

3、拓展

3.1 常用查询

一旦你使用 isql -v MyDataSource username password 命令成功进入数据库的命令行界面,你可以使用 SQL 查询语句来检索和操作数据。

以下是一些常用的 SQL 查询语句示例:

  1. 列车所有的表

    SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE';
    
  2. 查询所有数据:

    SELECT * FROM your_table;
    

    your_table 替换为你想要查询的实际表名。

  3. 查询特定列的数据:

    SELECT column1, column2 FROM your_table;
    

    column1column2 替换为你想要查询的实际列名。

  4. 使用条件查询数据:

    SELECT * FROM your_table WHERE condition;
    

    your_table 替换为表名,并将 condition 替换为你的查询条件,例如 column = value

  5. 对结果进行排序:

    SELECT * FROM your_table ORDER BY column;
    

    your_table 替换为表名,并将 column 替换为你希望按其进行排序的列名。

  6. 使用聚合函数计算统计值:

    SELECT COUNT(*) FROM your_table;
    SELECT SUM(column) FROM your_table;
    SELECT AVG(column) FROM your_table;
    

    your_table 替换为表名,并将 column 替换为你想要计算统计值的列名。

  7. 限制返回数量

    SELECT TOP 4 * FROM your_table;
    

这只是一些基本的查询示例。你可以根据你的实际需求编写适当的 SQL 查询语句来检索和操作数据。

isql 命令行界面中,你可以直接输入以上 SQL 查询语句,并按 Enter 键执行。结果将以表格形式显示在命令行界面上。

3.2 SQL Server 语句规则

在 SQL Server 中,以下是一些常见的语句规则:

  1. 语句必须以分号 (;) 结尾,尤其是当多个语句在同一行上时。

  2. SQL 语句不区分大小写,但是标识符(例如表名、列名、变量名等)是区分大小写的。

  3. SQL 语句可以跨多行书写,但在语句的每个子句之间应该使用空格或换行符进行分隔,以提高可读性。

  4. 注释可以使用 -- 进行单行注释,或使用 /* ... */ 进行多行注释。

  5. SELECT 语句用于查询数据,INSERT 语句用于插入数据,UPDATE 语句用于更新数据,DELETE 语句用于删除数据。

  6. WHERE 子句用于指定条件,以筛选出满足条件的数据。

  7. ORDER BY 子句用于对结果集进行排序。

  8. GROUP BY 子句用于对结果集进行分组。

  9. JOIN 子句用于将多个表关联起来,以获取相关联的数据。

  10. 子查询是嵌套在其他查询中的查询,用于在一个查询中使用另一个查询的结果。

  11. 存储过程是一系列预定义的 SQL 语句,可作为单个单元执行。

  12. 触发器是与表相关联的数据库对象,用于在表上发生特定事件时自动执行一系列操作。

3.3 python调用

import pyodbc

# 定义连接字符串
conn_str = 'DSN=MyDataSource;UID=username;PWD=password'

# 连接到数据源
conn = pyodbc.connect(conn_str)

# 创建游标
cursor = conn.cursor()

# 这个可以遍历数据库中的所有数据表
cursor.execute("SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE='BASE TABLE'")
tables = cursor.fetchall()

for table in tables:
    print(table[0])


# 执行查询语句
cursor.execute("SELECT * FROM your_table")

# 获取查询结果
results = cursor.fetchall()

# 遍历结果并打印
for row in results:
    print(row)

# 关闭游标和连接
cursor.close()
conn.close()

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。