来这个公司已经一周了,度过了开始的无聊日子准备正式准备做点东西了,这几天接触了一下文件数据库InterBase,尝试在Ubuntu上连接其开源版本Firebird,因为公司使用的是SQLAlchemy,所以例子我也就用Python演示了。
#安装firebird数据库
sudo apt-get install firebird-super
2,更改firebird中数据库管理员SYSDBA的密码:
sudo dpkg-reconfigure firebird2.5-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:[email protected]: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的一些后续了解再总结一下再记录了。