MySQL子查询
什么是子查询
子查询是一条循环中嵌套着一条查询,类似于递归。
子查询基本语法
查询学生表中成绩高于85分的学生信息:
12select * from student where id = (select stuid from score where score >= 85)# 注意:查询条件表达式处用=时,只能接受子查询中返回一条记录
子查询常用关键字
in和not in
1select * from student where id [not] in(select stuid from score where score >= 85)
exists和not exists
1select * from studnet where id [not] exists(select stuid from scre where score >= 85)
MySQL多表查询
MySQL多表查询的主要关键字。
union联合查询
作用:在一条查询语句中进行多个查询。
12select age, gender from info all/distinct union select 'name', phone from teacher# all默认自带且省略,distinct自加,用于去重
inner join内连接
inner join即内连接,要分清表的主次,主键对应外键。
1select name, score from student innner join score on student.id = score.stuid
inner join注意事项:
多表查询以相同的公共字段作为基准查询;
其中一个表没有的则不统计。
left join左连接
左连接就是以左表某字段为基准,左边的必须要有,右边的可以为空,类似于军训向……看齐排队。
作用:防止空数据不统计。
right join右连接
类似于左连接,以右表字段为基准。
cross join交叉连接
12select * from t1 cross join t3 w ...
MySQL单表查询
MySQL单表查询主要关键字。
select
1select '内容/实体' (as) 字段名/属性 #as 取别名用
from
from ??? 来自哪张表
多表查询结果是笛卡尔积
dual(伪表)
123select 2*7 (as) res from dual;# 等价于select 2*7 (as) res
where(筛选)
符号:< <= >= = ……
in
in(‘’), not in(‘’)等价于 = 和!=
1select * from t4 where address in('Beijing', 'Shanghai');
between…and
where age >= 15 and age <= 20等价于where age between 15 and 20
is null
1select * from t3 where age is not null
聚合函数(自带函数)
1select sum(chinese) from score
函数:
sum ...
PostgreSQL数据库操作
一、源代码说明
freecplus是一个Linux系统下的C/C++开源框架,源代码请前往C语言技术网(www.freecplus.net)下载。
本文介绍的是freecplus框架中采用connection和sqlstatement类操作PostgreSQL数据库。
类的声明文件是freecplus/db/postgresql/_postgresql.h。
类的定义文件是freecplus/db/postgresql/_postgresql.cpp。
示例程序位于freecplus/db/postgresql目录中。
编译规则文件是freecplus/db/postgresql/makefile。
二、概述
本文不会介绍PostgreSQL数据库、SQL语言和C/C的基础知识,您应该是一个职业的C/C程序员,在阅读本文之前,您已经掌握了PostgreSQL数据库和SQL语言的基础知识。
freecplus框架把PostgreSQL提供的库函数封装成了connection和sqlstatement类,采用封装后的类操作PostgreSQL数据库,代码简洁优雅,性能卓越。
接下来我先 ...
MySQL数据库操作
一、源代码说明
freecplus是一个Linux系统下的C/C++开源框架,源代码请前往C语言技术网(www.freecplus.net)下载。
本文介绍的是freecplus框架中采用connection和sqlstatement类操作MySQL数据库。
类的声明文件是freecplus/db/mysql/_mysql.h。
类的定义文件是freecplus/db/mysql/_mysql.cpp。
示例程序位于freecplus/db/mysql目录中。
编译规则文件是freecplus/db/mysql/makefile。
二、概述
本文不会介绍MySQL数据库、SQL语言和C/C的基础知识,您应该是一个职业的C/C程序员,在阅读本文之前,您已经掌握了MySQL数据库和SQL语言的基础知识。
freecplus框架把MySQL提供的库函数封装成了connection和sqlstatement类,采用封装后的类操作MySQL数据库,代码简洁优雅,性能卓越。
接下来我先列出connection和sqlstatement类的声明,然后通过流程图和示例程序介绍它位的用法。
三、c ...
Oracle数据库操作
一、源代码说明
freecplus是一个Linux系统下的C/C++开源框架,源代码请前往C语言技术网(www.freecplus.net)下载。
本文介绍的是freecplus框架中采用connection和sqlstatement类操作Oracle数据库。
类的声明文件是freecplus/db/oracle/_ooci.h。
类的定义文件是freecplus/db/oracle/_ooci.cpp。
示例程序位于freecplus/db/oracle目录中。
编译规则文件是freecplus/db/oracle/makefile。
二、概述
本文不会介绍Oracle数据库、SQL语言和C/C的基础知识,您应该是一个职业的C/C程序员,在阅读本文之前,您已经掌握了Oracle数据库和SQL语言的基础知识。
Oracle数据库功能强大,性能卓越,无与伦比,并提供了数据访问接口OCI,OCI非常强大,强大到了普通C/C++程序员难以驾驭。
freecplus框架把OCI(Oracle Call Interface)封装成了connection和sqlstatement类,采用封装后 ...
ftp客户端
一、源代码说明
freecplus是一个Linux系统下的C/C++开源框架,源代码请前往C语言技术网(www.freecplus.net)下载。
本文介绍的是freecplus框架的ftp客户端Cftp类。
Cftp类的声明文件是freecplus/_ftp.h。
Cftp类的定义文件是freecplus/_ftp.cpp。
示例程序位于freecplus/demo目录中。
编译规则文件是freecplus/demo/makefile。
Cftp类是在ftplib开源库的基础之上做了二次封装,ftplib开源库的头文件是freecplus/ftplib.h,函数定义文件是freecplus/ftplib.c。
ftplib是C代码,用gcc先编译成lib库文件后,再用g++和_ftp.cpp以及目标文件一起编译。
二、概述
本文不会介绍ftp协议的基础知识和ftp命令,在阅读本文之前,您必须熟悉ftp协议和命令才能看懂本文的内容。
三、Cftp类
类的声明:
123456789101112131415161718192021222324252627282930313233343 ...
tcp网络通信
一、源代码说明
freecplus是一个Linux系统下的C/C++开源框架,源代码请前往C语言技术网(www.freecplus.net)下载。
本文介绍的是freecplus框架的TCP/IP协议网络通信的函数和类。
函数和类的声明文件是freecplus/_freecplus.h。
函数和类的定义文件是freecplus/_freecplus.cpp。
示例程序位于freecplus/demo目录中。
编译规则文件是freecplus/demo/makefile。
二、概述
freecplus框架对socket通信封装如下:
CTcpClient类:socket通信的客户端类。
CTcpServer类:socket通信的服务端类。
TcpRead函数:接收socket的对端发送过来的数据。
TcpWrite函数:向socket的对端发送数据。
Readn函数:从已经准备好的socket中读取数据。
Writen函数:向已经准备好的socket中写入数据。
在阅读本文章之前,您必须熟悉TCP/IP协议和socket通信,本文是介绍的是freecplus框架中网络通信的类和函数的 ...
加载参数文件
一、源代码说明
freecplus是一个Linux系统下的C/C++开源框架,源代码请前往C语言技术网(www.freecplus.net)下载。
本文介绍的是freecplus框架中加载参数文件的方法。
函数和类的声明文件是freecplus/_freecplus.h。
函数和类的定义文件是freecplus/_freecplus.cpp。
示例程序位于freecplus/demo目录中。
编译规则文件是freecplus/demo/makefile。
二、参数文件的意义
在项目开发中,一个完整的系统由多个C/C++服务程序组成,这些服务程序有共同的参数,例如数据库的连接参数、日志文件存放的目录、数据文件存放的目录等。
传统的方法是把参数放在文本文件中,例如hssms.ini,格式如下:
123456logpath=/log/hssms # 日志文件存放的目录。connstr=hssms/smspwd@hssmszx # 数据库连接参数。datapath=/data/hssms # 数据文件存放的根目录。serverip=192. ...
日志文件操作
一、源代码说明
freecplus是一个Linux系统下的C/C++开源框架,源代码请前往C语言技术网(www.freecplus.net)下载。
本文介绍的是freecplus框架中日志文件操作的方法。
函数和类的声明文件是freecplus/_freecplus.h。
函数和类的定义文件是freecplus/_freecplus.cpp。
示例程序位于freecplus/demo目录中。
编译规则文件是freecplus/demo/makefile。
二、日志文件的意义
对于C/C++服务程序来说,程序运行在后台,没有操作界面,无人值守,程序运行的状态、数据处理的日志、程序的异常等必须记录在日志文件中,运维人员根据日志文件的内容,查看程序运行和数据处理的情况。
三、CLogFile类
CLogFile类用于服务程序记录程序的运行日志。
1、类的声明
123456789101112131415161718192021222324252627282930313233343536// 日志文件操作类class CLogFile{public: FILE *m_tr ...