借助Python操作SQL Server数据库
发布时间:2022-07-16 15:41:19 所属栏目:云计算 来源:互联网
导读:如果有条件可以使用远程连接或者TeamViewer等工具,操作带GUI的数据库管理器,实施起来可以很省心。可以直接查看结果,模板化查询甚至提示语句错误等。 如果是使用linux本地或者ssh访问SQL Server数据库的,稍微麻烦点。可以使用sqlcmd作为替代工具。后面会
如果有条件可以使用远程连接或者TeamViewer等工具,操作带GUI的数据库管理器,实施起来可以很省心。可以直接查看结果,模板化查询甚至提示语句错误等。 如果是使用linux本地或者ssh访问SQL Server数据库的,稍微麻烦点。可以使用sqlcmd作为替代工具。后面会介绍。 没有mysql一样的show database;命令,所以显示所有的数据库都比较麻烦。可以使用这条命令:select name from sysobjects where xtype='u' SQL Server中各个系统表的作用 sysaltfiles 仅在主数据库 保存数据库的文件 sysforeignkeys 每个数据库 外部关键字 sysindexs 每个数据库 索引 sysmenbers 每个数据库 角色成员 sysobjects 每个数据库 所有数据库对象 syspermissions 每个数据库 权限 systypes 每个数据库 用户定义数据类型 sql cmd(sqlserver客户端也可以) 直接访问数据库: sqlcmd -S SERVERNAME -U USERNAME -P PASSWORD -d DB 示例sqlcmd -S "127.0.0.1" -U "sa" -P "12345678" 遇到查询操作时提示“对象名无效”的情况: 可能因为没有选择数据库,或者数据库里没有该表。一定要跟上参数-d。进入执行模式之后可以输入自己的SQL语句。可以连续多条,命令最后以GO语句结尾,是SQL Server的语法。若要提高性能,请在一个 sqlcmd 会话中执行尽可能多的操作,而不是在一系列会话中来执行这些操作。 输入/输出选项-f codepage | i:codepage[,o:codepage] | o:codepage[,i:codepage],用于指定输入和输出代码页。代码页页码是指定已安装的 Windows 代码页的数值。 -i input_file[,输入_file2...] 标识包含一批 SQL 语句或存储过程的文件。可以指定要按顺序读取和处理的多个文件。文件名之间不要使用任何空格。sqlcmd 将首先检查所有指定的文件是否都存在。如果有一个或多个文件不存在, sqlcmd 将退出。-i 和 -Q/-q 选项是互斥的。 -i C:<filename> -i <Server><Share$><filename> -i "C:Some Folder<file name>" 清空表 删除表: delete from 表名 清除表中的所有数据、保留表结构( 清除表中所有行,保留表结构、与delete类似): truncate table 表名 比delete速度快,效率高,使用的系统和事务日志资源少。 DB = 'DBNAME' conn = pymssql.connect(host=HOST, user=USER, password=PW, database=DB) cursor = conn.cursor() 执行SQL语句(查询): cursor.execute('SELECT * FROM mytable') row = cursor.fetchone() while row: row = cursor.fetchone() conn.close() 在操作执行SQL语句的函数.execute()的时候,传入语句不能临时进行拼接,必须是常量或者格式化的变量。可能是考虑注入等问题,故意设定的。 执行SQL语句(其他): cursor.execute("INSERT INTO position VALUES (%s, %s)", (num, address)) conn.commit() 除了查询语句比较特殊,其他的语句一般都需要额外的使用.commit()进行数据提交。如果不提交,可以即便语句执行了,也没有结果返回。此外,连接一开始设定了自动提交属性,可以忽略这条。 (编辑:PHP编程网 - 黄冈站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |