数据库
C++程序员Carea
十年一线开发经验,热爱 C++ ,热爱编程
展开
-
让我们看看垃圾代码长什么样子(以及重构的思路)
下面的代码实现连接数据库的功能,但是用的是全局函数实现。函数也就罢了,里面的变量又用到了全局变量来访问数据库,由于多线程调用,所以还要支持多线程。多线程访问全局变量就要支持并发,加临界区(或者说Guard)。访问数据库又有可能出错,出错又要退出,退出又要在流程上处理错误处理,临界区控制更麻烦。只要哪里写的不完备,你懂的,多线程临界区出了问题,多个线程的调用全局变量,这些线程就会像一...原创 2020-01-21 11:15:09 · 1214 阅读 · 0 评论 -
SQL UNION 和 UNION ALL 操作符
http://www.w3school.com.cn/sql/sql_union.asp转载 2015-10-12 13:52:48 · 1334 阅读 · 0 评论 -
INSERT INTO SELECT
http://www.cnblogs.com/freshman0216/archive/2008/08/15/1268316.html Insert是T-sql中常用语句,Insert INTO table(field1,field2,...) values(value1,value2,...)这种形式的在应用程序开发中必不可少。但我们在开发、测试过程中,经常会遇到需要表复制的情况,转载 2015-10-13 19:15:18 · 1885 阅读 · 0 评论 -
【四】ODB - C++ 单表更新(V1.11)
单表更新主要用的是用db->update(type)来更新记录这里分两种情况: (1)通过db->load(key)主键key来更新一条记录,之后修改记录,再更新记录 (2)通过db->query_one(bool)查询条件查询一条记录,之后修改记录,再更新记录(1)通过主键更新的代码如下:// driver.cxx//#include <memory> // std::auto_ptr翻译 2015-11-04 13:45:52 · 1836 阅读 · 0 评论 -
各种join一目了然: join 、inner join、left join 、right join、full join
各种join一幅图一目了然 一下每幅图都是指: A * join B on A.id = B.in 这个帖子也很形象,比较好:http://www.phpddt.com/db/inner_join-outer-join.html 说明: full join主要用来生成两个集合的并集, inner join通常用来生成有效的数据 left join和right join使用的场景偏原创 2015-06-29 12:34:31 · 7006 阅读 · 0 评论 -
三种数据库日期转字符串对比sql server、oracle、mysql(V4.11)
SELECT CONVERT(varchar(100),GETDATE(), 23) ; -- 2015-07-07SELECT CONVERT(char(6),GETDATE(), 112) ; -- 201507原创 2015-07-07 11:48:14 · 8185 阅读 · 0 评论 -
常用SQL语句汇总
SQL取整、四舍五入SQL UPDATESQL空值替换 ISNULLCASE WHEN 两种用法GROUP BY分组与聚合函数* join日期与字符转换 SQL中的空值NULLCREATE TABLE创建表SQL UNION 和 UNION ALL 操作符 INSERT INTO SELECT原创 2016-03-03 11:25:21 · 698 阅读 · 0 评论 -
SQL常用语句
SQL删除重复数据只保留一条原创 2016-03-07 09:01:17 · 601 阅读 · 0 评论 -
【一】ODB - C++ 访问数据库的利器--Hello World On Windows(Version-24)
ODB首页:http://www.codesynthesis.com/products/odb/下载:编译运行Hello World:翻译 2015-10-29 15:26:31 · 14390 阅读 · 5 评论 -
create table:使用SELECT语句创建表
参考:http://blog.itpub.net/24237320/viewspace-1098689/oracle下直接create table xxx as select * from ...即可。 sqlserver的语法是 : select * into xxx from ...原创 2015-10-10 11:18:07 · 27848 阅读 · 0 评论 -
SQL DELETE 语句
DELETE FROM Person WHERE LastName = 'Wilson'原创 2015-08-16 12:06:07 · 1297 阅读 · 0 评论 -
Sql Server 里的向上取整、向下取整、四舍五入取整的实例!
http://xitong.iteye.com/blog/1865788==================================================== 【四舍五入取整截取】 select round(54.56,0) ==================================================== 【向下取整截取】 SELECT FLOOR(5转载 2015-09-11 09:54:10 · 5565 阅读 · 0 评论 -
SQL空值替换 ISNULL
使用指定的值替换 NULL ISNULL用来判断当所选列是空值的时候你打算用什么值去替换ISNULL ( check_expression , replacement_value )SELECT CASE WHEN m.[办结日期] IS NULL THEN 1900 ELSE YEAR(m.[办结日期]) END AS 合作结算明细_办结年份,ISNULL(m.[付款金额], 0)原创 2015-07-20 16:46:44 · 7085 阅读 · 0 评论 -
SQL中的空值NULL
需要注意下面三点: (1)空值不参与比较 (2)空值和自己也不能比较: = NULL 【BOUND】 (3)判断空值只能单独判断:IS NULL (4)空字符串参与比较 : = ” 下面举例为证: 全部数据 证明(1)空值不参与比较,【编号】为4的学生【科目】是空,并未被选出来SELECT * FROM t1 t WHERE t.`subject` <> '语文' 证明(2)原创 2015-09-14 11:40:25 · 3240 阅读 · 0 评论 -
Kettle定时任务(V4.1)
Kettle定时任务是通过操作系统的定时计划来实现的,以Windows8为例:操作系统定时任务触发BAT文件执行,BAT文件调用job从而实现定时任务的功能。控制面板》管理工具》任务计划程序》任务计划程序库》创建基本任务》输入【任务名称】》下一步》【每天】》下一步》【每隔1天】》下一步》启动程序》下一步》程序或脚本》浏览》选择你创建的BAT(后面说明对BAT的要求)》起始于:设置为【Kettle S原创 2015-10-10 11:45:43 · 3562 阅读 · 0 评论 -
【三】ODB - C++ 单表查询(V1.02)
查询person表中年龄大于30岁的人,并简单的打印这些人的信息: 源代码:// driver.cxx//#include <memory> // std::auto_ptr#include <iostream>#include <odb/database.hxx>#include <odb/transaction.hxx>#include <odb/mysql/database.hxx翻译 2015-11-03 12:33:34 · 2638 阅读 · 0 评论 -
【二】ODB - C++ 单表插入(V1.02)
插入数据主要有如下几个步骤: (1)创建数据库连接对象 (2)创建本地对象 (3)插入数据到表 (4)统一提交// driver.cxx//#include <memory> // std::auto_ptr#include <iostream>#include <odb/database.hxx>#include <odb/transaction.hxx>#include <o翻译 2015-11-02 17:41:33 · 1321 阅读 · 0 评论 -
列举C++数据库开源工具
优秀数据库插件的特点: (1)不需要创建内建类型:不应该要求开发人员每次select出的结果都要有个C++类与之对应,OTL就是这样,而且还要重写操作符,这样以来对于复杂业务,开发量是非常大的。 (2)不需要内建字段:开发人员应该只需要关注SQL语句本身,而不应该关心数据库中各个字段的类型,更不应该用C++对应的类型与之对应才能读写数据库,这样以来,每个SQL语句都要写一堆细节,开发量大,容易出原创 2015-06-09 23:15:09 · 2656 阅读 · 0 评论