-
介绍一个针对C++程序的MySQL访问库soci
一直以来,笔者都在不停寻找一种更人性化的数据库访问方式(并不是说默认的方式不好,而是有时候的确在模块化设计中不太方便)。后来有幸在php中找到codeigniter的ActiveReord,详细参考这篇文章: 抽离CodeIgniter的数据库访问类!然而c++却始终用着最原始的方式,昨天趁着项目要用的机会,在网上搜索了好久,总算让我找到两套c++的数据库访问框架: soci litesq
-
介绍一个针对C++程序的MySQL访问库soci
一直以来,笔者都在不停寻找一种更人性化的数据库访问方式(并不是说默认的方式不好,而是有时候的确在模块化设计中不太方便)。后来有幸在php中找到codeigniter的ActiveReord,详细参考这篇文章: 抽离CodeIgniter的数据库访问类!然而c++却始终用着最原始的方式,昨天趁着项目要用的机会,在网上搜索了好久,总算让我找到两套c++的数据库访问框架: soci litesq
MongoDB简介 MongoDB五大特色
MongoDB是一种强大,灵活,可扩展的数据存储方式.它扩展了关系型数据库的众多有用功能,如辅助索引,范围查询和排序.MongoDB的功能非常丰富,比如:内置的对MapReduce式聚合的支持,以及对地理空间索引的支持.1.1丰富的数据模型MongoDB是面向文档的数据库,不是关系型数据库.放弃关系模型的主要原因就是为了获得更加方便的扩展性,还有其他的好处.基本思路就是将原来"行"(row)的观念
MongoDB简介 MongoDB五大特色
MongoDB是一种强大,灵活,可扩展的数据存储方式.它扩展了关系型数据库的众多有用功能,如辅助索引,范围查询和排序.MongoDB的功能非常丰富,比如:内置的对MapReduce式聚合的支持,以及对地理空间索引的支持.1.1丰富的数据模型MongoDB是面向文档的数据库,不是关系型数据库.放弃关系模型的主要原因就是为了获得更加方便的扩展性,还有其他的好处.基本思路就是将原来"行"(row)的观念
详细解读MySQL中的权限
一、前言 很多文章中会说,数据库的权限按最小权限为原则,这句话本身没有错,但是却是一句空话。因为最小权限,这个东西太抽象,很多时候你并弄不清楚具体他需要哪些权限。 现在很多mysql用着root账户在操作,并不是大家不知道用root权限太大不安全,而是很多人并不知道该给予什么样的权限既安全又能保证正常运行。所以,本文更多的是考虑这种情况下,我们该如何简单的配置一个安全的mysql。注:本文测试
详细解读MySQL中的权限
一、前言 很多文章中会说,数据库的权限按最小权限为原则,这句话本身没有错,但是却是一句空话。因为最小权限,这个东西太抽象,很多时候你并弄不清楚具体他需要哪些权限。 现在很多mysql用着root账户在操作,并不是大家不知道用root权限太大不安全,而是很多人并不知道该给予什么样的权限既安全又能保证正常运行。所以,本文更多的是考虑这种情况下,我们该如何简单的配置一个安全的mysql。注:本文测试
MongoDB数据库的特色和优点介绍
2011年将被记住,因为这一年SQL将死;这一年,关系数据库从一线退下;这一年开发人员发现他们没必要为了持久化数据,而将每个对象转化为表格结构。2011年是文档数据库的一年,尽管一直在稳步发展势头,通过过去八年多的发展,现在有各种稳定的文档数据库----从基于亚马逊和谷歌的云,到各种开放源码工具,尤其是MongoDB。那么,MongoDB是什么?这里的五件事是每个开发人员应该知道的:1) Mong
MongoDB数据库的特色和优点介绍
2011年将被记住,因为这一年SQL将死;这一年,关系数据库从一线退下;这一年开发人员发现他们没必要为了持久化数据,而将每个对象转化为表格结构。2011年是文档数据库的一年,尽管一直在稳步发展势头,通过过去八年多的发展,现在有各种稳定的文档数据库----从基于亚马逊和谷歌的云,到各种开放源码工具,尤其是MongoDB。那么,MongoDB是什么?这里的五件事是每个开发人员应该知道的:1) Mong
SQLite教程(十二):锁和并发控制详解
一、概述: 在SQLite中,锁和并发控制机制都是由pager_module模块负责处理的,如ACID(Atomic, Consistent, Isolated, and Durable)。在含有数据修改的事务中,该模块将确保或者所有的数据修改全部提交,或者全部回滚。与此同时,该模块还提供了一些磁盘文件的内存Cache功能。 事实上,pager_module模块并不关心数据库存储的细节
SQLite教程(十二):锁和并发控制详解
一、概述: 在SQLite中,锁和并发控制机制都是由pager_module模块负责处理的,如ACID(Atomic, Consistent, Isolated, and Durable)。在含有数据修改的事务中,该模块将确保或者所有的数据修改全部提交,或者全部回滚。与此同时,该模块还提供了一些磁盘文件的内存Cache功能。 事实上,pager_module模块并不关心数据库存储的细节
浅谈MySQL中的触发器
在很多时候,干得利索不如想的明白。方案应该根据场景来设计,不是盲目的依靠经验,当然这也算新经验! 需求是把公司的几套公共系统做成通过邮箱用户名和密码认证,只需记住一对用户名密码,简单为上,只允许用户在ExtMail的web页面修改密码!在做论坛认证的时候,由于论坛的复杂性,想到了如下的几个方案: 通过OAuth2.0做认证,或者自己写接口,问题是只听过,没玩过! 在邮箱修改时,也提
浅谈MySQL中的触发器
在很多时候,干得利索不如想的明白。方案应该根据场景来设计,不是盲目的依靠经验,当然这也算新经验! 需求是把公司的几套公共系统做成通过邮箱用户名和密码认证,只需记住一对用户名密码,简单为上,只允许用户在ExtMail的web页面修改密码!在做论坛认证的时候,由于论坛的复杂性,想到了如下的几个方案: 通过OAuth2.0做认证,或者自己写接口,问题是只听过,没玩过! 在邮箱修改时,也提
对学Oracle数据库初学者的开场篇
前言:因为项目原因,近期开始学习Oracle数据库。Oracle是目前最流行的数据库之一,功能强大,性能卓越,相对的学习的难度还是不小。我打算将自己的学习过程记录下来,做个积累,方便自己和其他的学习者。 写在学习前面的话,主要是: 1、把一些常见问题的问答分享一哈; 2、对学习路线的一个安排; 3、预期的结果展望。1、Oracle数据库学习常见问题问答Question1: Ora
对学Oracle数据库初学者的开场篇
前言:因为项目原因,近期开始学习Oracle数据库。Oracle是目前最流行的数据库之一,功能强大,性能卓越,相对的学习的难度还是不小。我打算将自己的学习过程记录下来,做个积累,方便自己和其他的学习者。 写在学习前面的话,主要是: 1、把一些常见问题的问答分享一哈; 2、对学习路线的一个安排; 3、预期的结果展望。1、Oracle数据库学习常见问题问答Question1: Ora
MySQL中查询的有关英文字母大小写问题的分析
mysql数据库在做查询时候,有时候是英文字母大小写敏感的,有时候又不是的,主要是由mysql的字符校验规则的设置决定的,通常默认是不支持的大小写字母敏感的。 1. 什么是字符集和校验规则?字符集是一套符号和编码。校对规则是在字符集内用于比较字符的一套规则。任何一个给定的字符集至少有一个校对规则,它可能有几个校对规则。要想列出一个字符集的校对规则,使用SHOW COLLATION语句。校对规则一般
MySQL中查询的有关英文字母大小写问题的分析
mysql数据库在做查询时候,有时候是英文字母大小写敏感的,有时候又不是的,主要是由mysql的字符校验规则的设置决定的,通常默认是不支持的大小写字母敏感的。 1. 什么是字符集和校验规则?字符集是一套符号和编码。校对规则是在字符集内用于比较字符的一套规则。任何一个给定的字符集至少有一个校对规则,它可能有几个校对规则。要想列出一个字符集的校对规则,使用SHOW COLLATION语句。校对规则一般
MongoDB系列教程(二):MongoDB简介
MongoDB介绍 MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常的松散,是类似json的bjson格式,因此可以存储比较复杂的数据类型。MongoDB最大的特点是他支持的查询语言是非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引
MongoDB系列教程(二):MongoDB简介
MongoDB介绍 MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常的松散,是类似json的bjson格式,因此可以存储比较复杂的数据类型。MongoDB最大的特点是他支持的查询语言是非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引
MongoDB系列教程(一):NoSQL起源
为什么出现NoSQL?随着互联网的发展,当我们把一台服务器一台服务器变成两台服务器,当我们开始建立数据备份,当我们需要加一个缓冲层,来调整所有的查询,投入更多的硬件。最后,需要将数据切分多个集群上,并重构大量的应用逻辑以适应这种切分。不久之后,你就会发现被自己数月前的设计数据结构限制住了。随着web2.0的兴起,关系型数据库本身无法克服的缺陷越来越明显,主要表现为如下几点。1、对数据高并发读写的需
MongoDB系列教程(一):NoSQL起源
为什么出现NoSQL?随着互联网的发展,当我们把一台服务器一台服务器变成两台服务器,当我们开始建立数据备份,当我们需要加一个缓冲层,来调整所有的查询,投入更多的硬件。最后,需要将数据切分多个集群上,并重构大量的应用逻辑以适应这种切分。不久之后,你就会发现被自己数月前的设计数据结构限制住了。随着web2.0的兴起,关系型数据库本身无法克服的缺陷越来越明显,主要表现为如下几点。1、对数据高并发读写的需
MongoDB系列教程(三):Windows中下载和安装MongoDB
软件下载 下载mongodb最新的包:http://www.mongodb.org/downloads 下载mongodb可视化界面,mongovue:http://download.csdn.net/detail/lovesummerforever/8036417 软件安装 mongodb服务端安装步骤如下所示: 1、遵守mongodb规范,选择自己的磁盘创建文件夹,在这
MongoDB系列教程(三):Windows中下载和安装MongoDB
软件下载 下载mongodb最新的包:http://www.mongodb.org/downloads 下载mongodb可视化界面,mongovue:http://download.csdn.net/detail/lovesummerforever/8036417 软件安装 mongodb服务端安装步骤如下所示: 1、遵守mongodb规范,选择自己的磁盘创建文件夹,在这
MongoDB系列教程(四):设置用户访问权限
我们知道mysql在安装的时候需要我们设置一个数据库默认的用户名和密码,mongodb也不例外,不过mongodb是默认的没有设置访问限制的,不需要输入用户名和密码都可以访问的,但是这样会十分的不安全,我们需要手动的为mongodb加上权限限制命令。 首先建立一个默认的账户 复制代码 代码如下: Use admin Db.addUser('sa','sa') 这样我们建立了一个
MongoDB系列教程(四):设置用户访问权限
我们知道mysql在安装的时候需要我们设置一个数据库默认的用户名和密码,mongodb也不例外,不过mongodb是默认的没有设置访问限制的,不需要输入用户名和密码都可以访问的,但是这样会十分的不安全,我们需要手动的为mongodb加上权限限制命令。 首先建立一个默认的账户 复制代码 代码如下: Use admin Db.addUser('sa','sa') 这样我们建立了一个
MongoDB系列教程(七):MongoDb数据结构详解
首先,向数据库插入一条bjson数据首先是定义文档,然后使用admin用户名密码登录,进入test数据库,向test数据库中插入此文档(“表名称和表中的记录”)插入结果,查看mongovue如下图所示从上图可以看出系统自带的三个数据库,local,admin,test,在加入一条记录的时候,会自动生成_id的自动标识。我们再添加图片,可以使用mongoVUE添加,如下图所示。Collections
MongoDB系列教程(七):MongoDb数据结构详解
首先,向数据库插入一条bjson数据首先是定义文档,然后使用admin用户名密码登录,进入test数据库,向test数据库中插入此文档(“表名称和表中的记录”)插入结果,查看mongovue如下图所示从上图可以看出系统自带的三个数据库,local,admin,test,在加入一条记录的时候,会自动生成_id的自动标识。我们再添加图片,可以使用mongoVUE添加,如下图所示。Collections
PostgreSQL教程(十八):客户端命令(2)
七、pg_dump: pg_dump是一个用于备份PostgreSQL数据库的工具。它甚至可以在数据库正在并发使用时进行完整一致的备份,而不会阻塞其它用户对数据库的访问。该工具生成的转储格式可以分为两种,脚本和归档文件。其中脚本格式是包含许多SQL命令的纯文本格式,这些SQL命令可以用于重建该数据库并将之恢复到生成此脚本时的状态,该操作需要使用psql来完成。至于归档格式,如果需要重建数据库
PostgreSQL教程(十八):客户端命令(2)
七、pg_dump: pg_dump是一个用于备份PostgreSQL数据库的工具。它甚至可以在数据库正在并发使用时进行完整一致的备份,而不会阻塞其它用户对数据库的访问。该工具生成的转储格式可以分为两种,脚本和归档文件。其中脚本格式是包含许多SQL命令的纯文本格式,这些SQL命令可以用于重建该数据库并将之恢复到生成此脚本时的状态,该操作需要使用psql来完成。至于归档格式,如果需要重建数据库
SQLite教程(一):SQLite数据库介绍
一、简介: SQLite是目前最流行的开源嵌入式数据库,和很多其他嵌入式存储引擎相比(NoSQL),如Berkelwww.cppcns.comeyDB、MemBASE等,SQLite可以很好的支持关系型数据库所具备的一些基本特征,如标准SQL语法、事务、数据表和索引等。事实上,尽管SQLite拥有诸多关系型数据库的基本特征,然而由于应用场景的不同,它们之间并没有更多的可比性。下面我们将列举一
SQLite教程(一):SQLite数据库介绍
一、简介: SQLite是目前最流行的开源嵌入式数据库,和很多其他嵌入式存储引擎相比(NoSQL),如Berkelwww.cppcns.comeyDB、MemBASE等,SQLite可以很好的支持关系型数据库所具备的一些基本特征,如标准SQL语法、事务、数据表和索引等。事实上,尽管SQLite拥有诸多关系型数据库的基本特征,然而由于应用场景的不同,它们之间并没有更多的可比性。下面我们将列举一
PostgreSQL教程(十七):客户端命令(1)
零、口令文件: 在给出其它PostgreSQL客户端命令之前,我们需要先介绍一下PostgreSQL中的口令文件。之所以在这里提前说明该文件,是因为我们在后面的示例代码中会大量应用该文件,从而保证我们的脚本能够自动化完成。换句话说,如果在客户端命令执行时没有提供该文件,PostgreSQL的所有客户端命令均会被口令输入提示中断。 在当前用户的HOME目录下,我们需要手工创建文件名为 .
PostgreSQL教程(十七):客户端命令(1)
零、口令文件: 在给出其它PostgreSQL客户端命令之前,我们需要先介绍一下PostgreSQL中的口令文件。之所以在这里提前说明该文件,是因为我们在后面的示例代码中会大量应用该文件,从而保证我们的脚本能够自动化完成。换句话说,如果在客户端命令执行时没有提供该文件,PostgreSQL的所有客户端命令均会被口令输入提示中断。 在当前用户的HOME目录下,我们需要手工创建文件名为 .
SQLite教程(五):索引和数据分析/清理
一、创建索引: 在SQLite中,创建索引的SQL语法和其他大多数关系型数据库基本相同,因为这里也仅仅是给出示例用法: 复制代码 代码如下: sqlite> CREATE TABLE testtable (first_col integer,second_col integer); --创建最简单的索引,该索引基于某个表的一个字段。 sqlite> CREATE INDEX
SQLite教程(五):索引和数据分析/清理
一、创建索引: 在SQLite中,创建索引的SQL语法和其他大多数关系型数据库基本相同,因为这里也仅仅是给出示例用法: 复制代码 代码如下: sqlite> CREATE TABLE testtable (first_col integer,second_col integer); --创建最简单的索引,该索引基于某个表的一个字段。 sqlite> CREATE INDEX
SQLite教程(五):数据库和事务
一、Attach数据库: ATTACH DATABASE语句添加另外一个数据库文件到当前的连接中,如果文件名为":memory:",我们可以将其视为内存数据库,内存数据库无法持久化到磁盘文件上。如果操作Attached数据库中的表,则需要在表名前加数据库名,如dbname.table_name。最后需要说明的是,如果一个事务包含多个Attached数据库操作,那么该事务仍然是原子的。见如下
SQLite教程(五):数据库和事务
一、Attach数据库: ATTACH DATABASE语句添加另外一个数据库文件到当前的连接中,如果文件名为":memory:",我们可以将其视为内存数据库,内存数据库无法持久化到磁盘文件上。如果操作Attached数据库中的表,则需要在表名前加数据库名,如dbname.table_name。最后需要说明的是,如果一个事务包含多个Attached数据库操作,那么该事务仍然是原子的。见如下
SQLite教程(十一):临时文件
一、简介: 尽管SQLite的数据库是由单一文件构成,然而事实上在SQLite运行时却存在着一些隐含的临时文件,这些临时文件是出于不同的目的而存在的,对于开发者而言,它们是透明的,因此在开发的过程中我们并不需要关注它们的存在。尽管如此,如果能对这些临时文件的产生机制和应用场景有着很好的理解,那么对我们今后应用程序的优化和维护都是极有帮助的。在SQLite中主要产生以下七种临时文件,如:
SQLite教程(十一):临时文件
一、简介: 尽管SQLite的数据库是由单一文件构成,然而事实上在SQLite运行时却存在着一些隐含的临时文件,这些临时文件是出于不同的目的而存在的,对于开发者而言,它们是透明的,因此在开发的过程中我们并不需要关注它们的存在。尽管如此,如果能对这些临时文件的产生机制和应用场景有着很好的理解,那么对我们今后应用程序的优化和维护都是极有帮助的。在SQLite中主要产生以下七种临时文件,如:
MongoDB教程之入门基础知识
一、文档的注意事项:1. 键值对是有序的,如:{ "name" : "stephen", "genda" : "male" } 不等于 { "genda" : "male", "name" : "stephen" }2. 文档信息是大小写敏感的,如:{ "name" : "stephen" } 不等于 { "Name" : "stephen" }3. 文档信息是区分类型的,如:{ "age"
MongoDB教程之入门基础知识
一、文档的注意事项:1. 键值对是有序的,如:{ "name" : "stephen", "genda" : "male" } 不等于 { "genda" : "male", "name" : "stephen" }2. 文档信息是大小写敏感的,如:{ "name" : "stephen" } 不等于 { "Name" : "stephen" }3. 文档信息是区分类型的,如:{ "age"
SQLite教程(八):命令行工具介绍
工欲善其事,必先利其器。学好SQLite的命令行工具,对于我们学习SQLite本身而言是非常非常有帮助的。最基本的一条就是,它让我们学习SQLite的过程更加轻松愉快。言归正传吧,在SQLite的官方下载网站,提供了支持多个平台的命令行工具,使用该工具我们可以完成大多数常用的SQLite操作,就像sqlplus之于Oracle。以下列表给出了该工具的内置命令: 命令名
SQLite教程(八):命令行工具介绍
工欲善其事,必先利其器。学好SQLite的命令行工具,对于我们学习SQLite本身而言是非常非常有帮助的。最基本的一条就是,它让我们学习SQLite的过程更加轻松愉快。言归正传吧,在SQLite的官方下载网站,提供了支持多个平台的命令行工具,使用该工具我们可以完成大多数常用的SQLite操作,就像sqlplus之于Oracle。以下列表给出了该工具的内置命令: 命令名
SQLite教程(十):内存数据库和临时数据库
一、内存数据库: 在SQLite中,数据库通常是存储在磁盘文件中的。然而在有些情况下,我们可以让数据库始终驻留在内存中。最常用的一种方式是在调用sqlite3_open()的时候,数据库文件名参数传递":memory:",如: 复制代码 代码如下: rc = sqlite3_open(":memory:", &db); 在调用完以上函数后,不会有任何磁盘文件被生成,取而代之的是
SQLite教程(十):内存数据库和临时数据库
一、内存数据库: 在SQLite中,数据库通常是存储在磁盘文件中的。然而在有些情况下,我们可以让数据库始终驻留在内存中。最常用的一种方式是在调用sqlite3_open()的时候,数据库文件名参数传递":memory:",如: 复制代码 代码如下: rc = sqlite3_open(":memory:", &db); 在调用完以上函数后,不会有任何磁盘文件被生成,取而代之的是
SQLite教程(九):在线备份
一、常用备份: 下面的方法是比较简单且常用的SQLite数据库备份方式,见如下步骤: 1). 使用SQLite API或Shell工具在源数据库文件上加共享锁。 2). 使用Shell工具(cp或copy)拷贝数据库文件到备份目录。 3). 解除数据库文件上的共享锁。 以上3个步骤可以应用于大多数场景,而且速度也比较快,然而却存在一定的刚性缺陷,如: 1). 所
SQLite教程(九):在线备份
一、常用备份: 下面的方法是比较简单且常用的SQLite数据库备份方式,见如下步骤: 1). 使用SQLite API或Shell工具在源数据库文件上加共享锁。 2). 使用Shell工具(cp或copy)拷贝数据库文件到备份目录。 3). 解除数据库文件上的共享锁。 以上3个步骤可以应用于大多数场景,而且速度也比较快,然而却存在一定的刚性缺陷,如: 1). 所
简单的连接MySQL与Python的Bottle框架的方法
python关于mysql的连接插件众多,Bottle下也有人专门开发的插件:bottle-mysql具体使用方法见官方,总共感觉其用法限制太多,其使用起来不方便,最适合的当然是,mySQL官网给Python提供的通用官方驱动,用起来很顺手:mysql-connector 具体操作如下: # -*- coding: utf-8 -*-#!/usr/bin/python# filename: lo
简单的连接MySQL与Python的Bottle框架的方法
python关于mysql的连接插件众多,Bottle下也有人专门开发的插件:bottle-mysql具体使用方法见官方,总共感觉其用法限制太多,其使用起来不方便,最适合的当然是,mySQL官网给Python提供的通用官方驱动,用起来很顺手:mysql-connector 具体操作如下: # -*- coding: utf-8 -*-#!/usr/bin/python# filename: lo
PostgreSQL教程(十二):角色和权限管理介绍
PostgreSQL是通过角色来管理数据库访问权限的,我们可以将一个角色看成是一个数据库用户,或者一组数据库用户。角色可以拥有数据库对象,如表、索引,也可以把这些对象上的权限赋予其它角色,以控制哪些用户对哪些对象拥有哪些权限。 一、数据库角色: 1. 创建角色: 复制代码 代码如下: CREATE ROLE role_name; 2. 删除角色: 复制代码 代码如下:
PostgreSQL教程(十二):角色和权限管理介绍
PostgreSQL是通过角色来管理数据库访问权限的,我们可以将一个角色看成是一个数据库用户,或者一组数据库用户。角色可以拥有数据库对象,如表、索引,也可以把这些对象上的权限赋予其它角色,以控制哪些用户对哪些对象拥有哪些权限。 一、数据库角色: 1. 创建角色: 复制代码 代码如下: CREATE ROLE role_name; 2. 删除角色: 复制代码 代码如下:
分类点击榜
-
栏目ID=0的表不存在(操作类型=0)
分类评论榜
-
栏目ID=0的表不存在(操作类型=0)