来这个公司已经一周了,度过了开始的无聊日子准备正式准备做点东西了,这几天接触了一下文件数据库InterBase,尝试在Ubuntu上连接其开源版本Firebird,因为公司使用的是SQLAlchemy,所以例子我也就用Python演示了。

#安装firebird数据库

  1. sudo apt-get install firebird-super

2,更改firebird中数据库管理员SYSDBA的密码:

  1. sudo dpkg-reconfigure firebird2.-super

3,使用gsec命令检测安装成功:

  1. gsec -user sysdba -password masterkey

如果能进入则说明Firebird安装成功

4,使用isql-fb来新建数据库:

  1. isql-fb
  2. SQL> CREATE DATABASE '/tmp/db_name.gdb' USER 'sysdba' PASSWORD 'masterkey'

5,安装firebird数据库的图形界面FlameRobin

6,python使用sqlalchemy框架连接数据库:使用中要安装fdb-1.4.1.tar库

  1. from sqlalchemy.orm import mapper, sessionmaker
  2. from sqlalchemy import create_engine, Table, Column, Integer, String, MetaData
  3. from sqlalchemy.sql.expression import Cast
  4. from sqlalchemy.ext.compiler import compiles
  5. from sqlalchemy.dialects.mysql import \
  6. BIGINT, BINARY, BIT, BLOB, BOOLEAN, CHAR, DATE, \
  7. DATETIME, DECIMAL, DECIMAL, DOUBLE, ENUM, FLOAT, INTEGER, \
  8. LONGBLOB, LONGTEXT, MEDIUMBLOB, MEDIUMINT, MEDIUMTEXT, NCHAR, \
  9. NUMERIC, NVARCHAR, REAL, SET, SMALLINT, TEXT, TIME, TIMESTAMP, \
  10. TINYBLOB, TINYINT, TINYTEXT, VARBINARY, VARCHAR, YEAR
  11. import sqlalchemy as sa
  12. #以上是导包
  13.  
  14. metadata = MetaData()
  15. userTable = Table(
  16. "jonny_user",metadata,
  17. Column('user_id', Integer, primary_key=True),
  18. Column('user_name', VARCHAR(50), unique=True, nullable=False),
  19. Column('password', VARCHAR(40), nullable=True)
  20. )
  21. #下面这个数据库是连接MySQL数据库的语句
  22. #mysql_db = create_engine('mysql://root:xxxxxxxxx@127.0.0.1:3306/jonny')
  23.  
  24. #以下这句是连接Firebird数据库的语句,数据库的默认账号是‘sysdba’默认密码是‘masterkey’
  25. dburl=sa.engine.url.URL('firebird',username='sysdba',password='masterkey',database='/tmp/firstdb3.gdb')
  26. mysql_db=sa.create_engine(dburl,encoding='gb2312',echo=False)
  27.  
  28. metadata.create_all(mysql_db)
  29. #建立User类
  30. class User(object):
  31. pass
  32.  
  33. #关联类与表
  34. mapper(User, userTable)
  35.  
  36. #取得session
  37. Session = sessionmaker()
  38. Session.configure(bind=mysql_db)
  39. session = Session()
  40.  
  41. #主函数
  42. def main():
  43. inputTypef = raw_input("inputType:")
  44. if inputTypef == 'insert':
  45. insert()
  46. elif inputTypef == 'find':
  47. find()
  48. elif inputTypef == 'delete':
  49. delete()
  50. else:
  51. print 'Error'
  52. #查找方法
  53. def find():
  54. print 'name'
  55. name = raw_input("name:")
  56. for instance in (session.query(User).filter_by(user_name=name).all()):
  57. print instance.user_name, instance.password
  58. #删除方法
  59. def delete():
  60. print 'name'
  61. name = raw_input("name:")
  62. (session.query(User).filter_by(user_name=name).delete())
  63. session.flush()
  64. session.commit()
  65. print 'deleteSucceed'
  66. #插入方法
  67. def insert():
  68. u = User()
  69. u.user_id = raw_input("id:")
  70. print 'name'
  71. u.user_name = raw_input("name:")
  72. print 'password'
  73. u.password = raw_input("password:")
  74. session.add(u)
  75. session.flush()
  76. session.commit()
  77. session.close()
  78.  
  79. if __name__ == '__main__':
  80. main()

用上面的例子来演示一下对于Firebird数据库的一个简单的增删改查功能,先这样记录下来,对于InterBase及Firebird的一些后续了解再总结一下再记录了。

使用SQLAlchemy对Firebird数据库进行操作的更多相关文章

  1. Firebird数据库相关操作

    Firebird常用SQL 一.分页写法小例: 1 select first 10 templateid,code,name from template ; 2 select first 10 ski ...

  2. python使用sqlalchemy连接mysql数据库

    环境:centos7+python2.7.5+sqlalchemy sqlalchemy是python当中比较出名的orm程序.在python中,使用sqlalchemy连接mysql数据库进行操作非 ...

  3. sqlalchemy数据库分层操作

    在学习sqlalchemy操作中,最常见的就是如下的示例,一个文件基本上包含了数据库的增删改查.sqlalchemy的具体操作我就不再详细说明了.流程大概是: 定义表 创建数据库引擎 创建表 插入数据 ...

  4. Python3:sqlalchemy对sybase数据库操作,非sql语句

    Python3:sqlalchemy对sybase数据库操作,非sql语句 # python3 # author lizm # datetime 2018-02-01 10:00:00 # -*- c ...

  5. Python3:sqlalchemy对mysql数据库操作,非sql语句

    Python3:sqlalchemy对mysql数据库操作,非sql语句 # python3 # author lizm # datetime 2018-02-01 10:00:00 # -*- co ...

  6. Flask学习笔记:数据库ORM操作MySQL+pymysql/mysql-python+SQLAlchemy/Flask-SQLAlchemy

    Python中使用sqlalchemy插件可以实现ORM(Object Relationship Mapping,模型关系映射)框架,而Flask中的flask-sqlalchemy其实就是在sqla ...

  7. Flask对数据库的操作-----

    首先得做好做基本的框架 # -*- encoding: utf-8 -*- from flask import Flask,render_template #导入第三方连接库sql点金术 from f ...

  8. python使用sqlalchemy连接pymysql数据库

    python使用sqlalchemy连接mysql数据库 字数833 阅读461 评论0 喜欢1 sqlalchemy是python当中比较出名的orm程序. 什么是orm? orm英文全称objec ...

  9. mysql数据库----python操作mysql ------pymysql和SQLAchemy

    本篇对于Python操作MySQL主要使用两种方式: 原生模块 pymsql ORM框架 SQLAchemy 一.pymysql pymsql是Python中操作MySQL的模块,其使用方法和MySQ ...

随机推荐

  1. Java代码实现excel数据导入到Oracle

    1.首先需要两个jar包jxl.jar,ojdbc.jar(注意版本,版本不合适会报版本错误)2.代码: Java代码   import java.io.File; import java.io.Fi ...

  2. wp8 入门到精通 生命周期

  3. 如何实现Outlook 2010 下载邮件后自动删除服务器上的邮件

    outlook2010---文件---信息---账户设置---选中要设置的帐号---双击点选要设置的邮箱---其他设置---高级---在服务器上保留邮件的副本---14天后删除服务器上的邮件副本,修改 ...

  4. Shell脚本获取C语言可执行程序返回值

    #!/bin/sh #./test是c程序,该程序 返回0 ./test OP_MODE=$? echo $OP_MODE # $? 显示最后命令的退出状态.0表示没有错误,其他任何值表明有错误.

  5. 配置ogg异构oracle-mysql(1)基础环境配置

    一.环境描述: 192.168.0.164 ( Oracle ) —> 192.168.0.165 (Mysql ) 版本: 操作系统:redhat5.8 Oracle:  11.2.0.3 M ...

  6. Sublime Text3 配置Node.js运行命令

    ­ 在Sublime Text中可以很容易配置新的编译运行命令,下面的截图是汉化版的中文菜单,英文菜单请直接对照. 首先需要在本地安装Node,默认的Node会加入到系统的环境变量,这样执行Node命 ...

  7. python web编程-概念预热篇

    互联网正在引发一场革命??不喜欢看概念的跳过,注意这里仅仅是一些从python核心编程一书的摘抄 这正是最激动人心的一部分了,web编程 Web 客户端和服务器端交互使用的“语言”,Web 交互的标准 ...

  8. free store VS heap(自由存储区VS堆)

    1. free store VS heap free store (自由存储区)和 heap (堆),在C/C++中经常会遇到.他们是否有区别呢? 偶最早发现这两个概念性问题是在<Excepti ...

  9. PHP学习之常量

    1.常量是一个简单值的标识符,该值在脚本中不能改变: 2.一个常量由英文字母,下划线,和数字组成,但数字不能作为首字母出现:(常量名中不需要加$修饰符) 3.常量在整个脚本中都可以使用: 4.设置PH ...

  10. 2016.8.21 JavaScript 入门

    1.JavaScript的数据类型: ①undefined ②null ③boolean ④string ⑤symbol ⑥number,    object 2.在JavaScript中所有的变量和 ...