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

#安装firebird数据库

sudo apt-get install firebird-super

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

sudo dpkg-reconfigure firebird2.-super

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

gsec -user sysdba -password masterkey

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

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

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

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

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

from sqlalchemy.orm import mapper, sessionmaker
from sqlalchemy import create_engine, Table, Column, Integer, String, MetaData
from sqlalchemy.sql.expression import Cast
from sqlalchemy.ext.compiler import compiles
from sqlalchemy.dialects.mysql import \
BIGINT, BINARY, BIT, BLOB, BOOLEAN, CHAR, DATE, \
DATETIME, DECIMAL, DECIMAL, DOUBLE, ENUM, FLOAT, INTEGER, \
LONGBLOB, LONGTEXT, MEDIUMBLOB, MEDIUMINT, MEDIUMTEXT, NCHAR, \
NUMERIC, NVARCHAR, REAL, SET, SMALLINT, TEXT, TIME, TIMESTAMP, \
TINYBLOB, TINYINT, TINYTEXT, VARBINARY, VARCHAR, YEAR
import sqlalchemy as sa
#以上是导包 metadata = MetaData()
userTable = Table(
"jonny_user",metadata,
Column('user_id', Integer, primary_key=True),
Column('user_name', VARCHAR(50), unique=True, nullable=False),
Column('password', VARCHAR(40), nullable=True)
)
#下面这个数据库是连接MySQL数据库的语句
#mysql_db = create_engine('mysql://root:xxxxxxxxx@127.0.0.1:3306/jonny') #以下这句是连接Firebird数据库的语句,数据库的默认账号是‘sysdba’默认密码是‘masterkey’
dburl=sa.engine.url.URL('firebird',username='sysdba',password='masterkey',database='/tmp/firstdb3.gdb')
mysql_db=sa.create_engine(dburl,encoding='gb2312',echo=False) metadata.create_all(mysql_db)
#建立User类
class User(object):
pass #关联类与表
mapper(User, userTable) #取得session
Session = sessionmaker()
Session.configure(bind=mysql_db)
session = Session() #主函数
def main():
inputTypef = raw_input("inputType:")
if inputTypef == 'insert':
insert()
elif inputTypef == 'find':
find()
elif inputTypef == 'delete':
delete()
else:
print 'Error'
#查找方法
def find():
print 'name'
name = raw_input("name:")
for instance in (session.query(User).filter_by(user_name=name).all()):
print instance.user_name, instance.password
#删除方法
def delete():
print 'name'
name = raw_input("name:")
(session.query(User).filter_by(user_name=name).delete())
session.flush()
session.commit()
print 'deleteSucceed'
#插入方法
def insert():
u = User()
u.user_id = raw_input("id:")
print 'name'
u.user_name = raw_input("name:")
print 'password'
u.password = raw_input("password:")
session.add(u)
session.flush()
session.commit()
session.close() if __name__ == '__main__':
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. 在RedHat.Enterprise.Linux_v6.3系统中安装Oracle_11gR2教程

    在RedHat.Enterprise.Linux_v6.3系统中安装Oracle_11gR2教程 本教程提供PDF格式下载: 在RedHat.Enterprise.Linux_v6.3系统中安装Ora ...

  2. 【JAVA网络流之URL】

    一.URL URL对象可以认为是URLConnection对象+Socket对象. Java.lang.Object |-Java.net.URL 常用构造方法: URL(String spec)   ...

  3. python多线程之Event(事件)

    #!/usr/bin/env python # -*- coding: utf-8 -*- import time from threading import Thread, Event import ...

  4. <转>Hibernate的优、缺点(局限性)

    本文原文链接:http://hi.baidu.com/ko22223/item/dd9f6900015adc036d904877 一.Hibernate是JDBC的轻量级的对象封装,它是一个独立的对象 ...

  5. 使用zookeeper实现分布式锁

    简介: 核心是解决资源竞争的问题 分布式系统中经常需要协调多进程或者多台机器之间的同步问题,得益于zookeeper,实现了一个分布式的共享锁,方便在多台服务器之间竞争资源时,来协调各系统之间的协作和 ...

  6. C# DatrgridView表格控件的一些用法

    public class useDatrgrivView { string conn = null; string sqlComm = null; DataSet das = null; DataGr ...

  7. 在Salesforce中对Object实现Trigger的绑定

    Trigger的相关属性详细解读请看如下链接: http://www.salesforce.com/us/developer/docs/apexcode/Content/apex_triggers_c ...

  8. 用PowerShell脚本实现对SharePoint页面Title的修改

    存在这样一种情况,对应的page已经部署到product的SharePoint环境中,那么在部署下一个版本的时候就不允许把已经创建好的page删除再创建,因此page中修改过的属性就不能再次部署到Sh ...

  9. Arduino101学习笔记(九)—— 中断函数

    1.设置中断函数 //***************************************************************************************** ...

  10. 汇编学习(三)——汇编语言程序入门

    一.寻址方式 1.概念: 一条指令由操作码和操作数构成,操作码是系统定义好的符号,执行指定的操作,操作数即是指令的对象,而寻址方式就是操作数的指定方式 操作码 目的操作数,源操作数 2.寻址方式的三种 ...