mysql数据库编程
1.功能强大 MySQL 中提供了多种数据库存储引擎,各引擎各有所长,适用于不同的应用场合,...
2.支持跨平台 MySQL 支持至少 20 种以上的开发平台,包括 Linux、W...
3.运行速度快 高速是 MySQL 的显着特性。在 MySQL 中,使用了极快的 B ...
4.支持面向对象 PHP 支持混合编程方式。编程方式可分为纯粹面向对象、纯粹面向过程..
B. 编程向MySql数据库中插入一条记录,并通过表单显示结果
前端需要两个页面,一个是录入,另一个是查询,后端提供两个接口,前后端交互可以用servlet和action表单提交和ajax请求,后端可以简单的通过JDBC连接数据库进行数据持久化操作和select,也可以使用数据库连接池,使用现成的框架实现。
C. 如何用C语言连接MYSQL数据库
1、配置ODBC数据源。
2、使用SQL函数进行连接。
对于1、配置数据源,配置完以后就可以编程操作数据库了。
对于2、使用SQL函数进行连接,参考代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include<windows.h>
#include<sql.h>
#include<sqlext.h>
void
main()
{
HENV
henv;
//环境句柄
HDBC
hdbc;
//数据源句柄
HSTMT
hstmt;
//执行语句句柄
unsigned
char
datasource[]="数据源名称";
//即源中设置的源名称
unsigned
char
user[]=
"用户名";
//数据库的帐户名
unsigned
char
pwd[]=
"密码";
//数据库的密码
unsigned
char
search[]="select
xm
from
stu
where
xh=0";
SQLRETURN
retcode;
//记录各SQL函数的返回情况
//
分配环境句柄
retcode=
SQLAllocEnv(&henv);
//
等介于
SQLAllocHandle(SQL_HANDLE_ENV,
SQL_NULL
,
&henv);
//
设置ODBC环境版本号为3.0
retcode=
SQLSetEnvAttr(henv,
SQL_ATTR_ODBC_VERSION,
(void*)SQL_OV_ODBC3,
0);
//
分配连接句柄
retcode=
SQLAllocConnect(henv,&hdbc);
//
等介于
SQLAllocHandle(SQL_HANDLE_DBC,
henv,
&hdbc);
//设置连接属性,登录超时为*rgbValue秒(可以没有)
//
SQLSetConnectAttr(hdbc,
SQL_LOGIN_TIMEOUT,
(SQLPOINTER)(rgbValue),
0);
//直接连接数据源
//
如果是windows身份验证,第二、三参数可以是
D. 使用mingw编程,如何操作mysql 数据库,最好有例程。
下载一个mingw的utils包,用0.3版本,0.41版本有问题。
拷贝mysql/lib/opt下的libmysql.lib文件到mingw的home/$user目录下,拷贝mysql/lib/opt/libmysql.dll文件到mingw的bin目录下.
把utils的包解压,把bin目录下的文件拷贝到mingw的bin目录下.
进行mingw的环境,执行
reimp -d libmysql.lib
dlltool -k -d libmysql.def -l libmysql.a
把生成的libmysql.a拷贝到mingw的lib下
把mysql/include下的全部文件拷贝到mingw/include下(省事)
在mysql中创建数据库test,创建表mt(id int , content varchar(20));
写c代码,m.cc
#include <iostream>
#include <windows.h>
#include <cstdlib>
#include <cstdio>
#include <mysql.h>
using namespace std;
MYSQL *conn;
int main() {
MYSQL_RES * res_set;
MYSQL_ROW row;
unsigned int i, ret;
MYSQL_FIELD * field;
unsigned int num_fields;
conn = mysql_init(NULL);
if(conn != NULL)
cout << "mysql_init success!" << endl;
else {
printf("failed ! ");
return 0;
}
ret = mysql_options(conn, MYSQL_SET_CHARSET_NAME, "gbk");//最好与数据库charset一致
if(ret == 0)
cout << "mysql_options success!" << endl;
else printf("failed ! ");
if(mysql_real_connect(conn, "localhost", "root","root", "test", 0, NULL, 0) != NULL)
cout << "mysql_real_connect success!" << endl;
else printf("failed ! ");
mysql_query(conn, "INSERT INTO mt VALUES (1,'ABCDEF'),(2,'汉字支持');");
printf("insert affect %d sentences ", mysql_affected_rows(conn));
if(mysql_query(conn,"SELECT * FROM mt"))
cout << "mysql query failed! ";
res_set = mysql_store_result(conn);
if (res_set == NULL)
cout << "res_set is null" << endl;
num_fields = mysql_num_fields(res_set);
for(i = 0; i < num_fields; i++)
{
field = mysql_fetch_field_direct(res_set, i);
printf("%s ", field->name);
}
cout << endl;
while ((row = mysql_fetch_row(res_set)) != NULL)
{
for (i = 0; i < mysql_num_fields(res_set); i ++)
{
printf("%s ",row[i] != NULL ? row[i] : "NULL");
}
printf(" ");
}
mysql_close(conn);
return 0;
}
编译:g++ -lmysql -o m m.cc
E. 关于数据库(MYSQL)时间段的拆分问题,怎么样编程实现
可以看下时间函数
对日期时间进行加减法运算
(ADDDATE()和SUBDATE()是DATE_ADD()和DATE_SUB()的同义词,也可以用运算符 和-而不是函数
date是一个DATETIME或DATE值,expr对date进行加减法的一个表达式字符串type指明表达式expr应该如何被解释
[type值 含义 期望的expr格式]:
SECOND 秒 SECONDS
MINUTE 分钟 MINUTES
HOUR 时间 HOURS
DAY 天 DAYS
MONTH 月 MONTHS
YEAR 年 YEARS
MINUTE_SECOND 分钟和秒 "MINUTES:SECONDS"
HOUR_MINUTE 小时和分钟 "HOURS:MINUTES"
DAY_HOUR 天和小时 "DAYS HOURS"
YEAR_MONTH 年和月 "YEARS-MONTHS"
HOUR_SECOND 小时, 分钟, "HOURS:MINUTES:SECONDS"
DAY_MINUTE 天, 小时, 分钟 "DAYS HOURS:MINUTES"
DAY_SECOND 天, 小时, 分钟, 秒 "DAYS HOURS:MINUTES:SECONDS"
expr中允许任何标点做分隔符,如果所有是DATE值时结果是一个DATE值,否则结果是一个DATETIME值)
如果type关键词不完整,则MySQL从右端取值,DAY_SECOND因为缺少小时分钟等于MINUTE_SECOND)
如果增加MONTH、YEAR_MONTH或YEAR,天数大于结果月份的最大天数则使用最大天数)
mysql> SELECT "1997-12-31 23:59:59" INTERVAL 1 SECOND;
-> 1998-01-01 00:00:00
mysql> SELECT INTERVAL 1 DAY "1997-12-31";
-> 1998-01-01
mysql> SELECT "1998-01-01" - INTERVAL 1 SECOND;
-> 1997-12-31 23:59:59
mysql> SELECT DATE_ADD("1997-12-31 23:59:59",INTERVAL 1 SECOND);
-> 1998-01-01 00:00:00
mysql> SELECT DATE_ADD("1997-12-31 23:59:59",INTERVAL 1 DAY);
-> 1998-01-01 23:59:59
mysql> SELECT DATE_ADD("1997-12-31 23:59:59",INTERVAL "1:1" MINUTE_SECOND);
-> 1998-01-01 00:01:00
mysql> SELECT DATE_SUB("1998-01-01 00:00:00",INTERVAL "1 1:1:1" DAY_SECOND);
-> 1997-12-30 22:58:59
mysql> SELECT DATE_ADD("1998-01-01 00:00:00", INTERVAL "-1 10" DAY_HOUR);
-> 1997-12-30 14:00:00
mysql> SELECT DATE_SUB("1998-01-02", INTERVAL 31 DAY);
-> 1997-12-02
mysql> SELECT EXTRACT(YEAR FROM "1999-07-02");
-> 1999
mysql> SELECT EXTRACT(YEAR_MONTH FROM "1999-07-02 01:02:03");
-> 199907
mysql> SELECT EXTRACT(DAY_MINUTE FROM "1999-07-02 01:02:03");
-> 20102
TO_DAYS(date)
返回日期date是西元0年至今多少天(不计算1582年以前)
mysql> select TO_DAYS(950501);
-> 728779
mysql> select TO_DAYS('1997-10-07');
-> 729669
FROM_DAYS(N)
给出西元0年至今多少天返回DATE值(不计算1582年以前)
mysql> select FROM_DAYS(729669);
-> '1997-10-07'
本文来自CSDN博客,转载请标明出处:http://www.cnblogs.com/zeroone/archive/2010/05/05/1727659.html
F. 二级MySQL数据库程序设计的考试内容
一、基本概念与方法 1.数据库的基本概念和特点 2.数据库系统的结构 3.数据模型 4.数据库设计方法 二、MySQL平台下的SQL交互操作 1.数据库、表、索引和视图的相关概念 2.数据库、表、索引和视图的创建及维护方法 3.数据完整性约束的概念、定义及使用方法 4.表和视图的查询及数据更新操作 三、MySQL的数据库编程 1.触发器、事件、存储过程和存储函数的概念及作用 2.触发器的创建及使用 3.事件的创建及使用 4.存储过程和存储函数的创建及使用 四、MySQL的管理与维护 1.MySQL的安装与配置 2.MySQL用户账号管理的作用及方法 3.MySQL账户权限管理的作用及方法 4.MySQL数据库备份与恢复的概念及方法 5.二进制日志文件的使用 五、MySQL的应用编程 1.PHP语言的基本使用方法 2.MySQL平台下编制PHP简单应用程序

G. MYSQL数据库语句编写
UPDATE
表名 SET 字段名=‘内容’
[WHERE ‘条件’]
注意:[
]中的内容可有可无。
举例:表名=ZHXX(账户信息)
,需要修改其中的DLMM(登陆密码),条件是DLMC(登陆名称)=soso.
UPDATE
ZHXX SET DLMM='123' WHERE DLMC='soso'
H. 用C语言如何对MySQL数据库进行操作
里的大部分代码参考了MySQL发行包里面的.c源文件,大家也可以去里面找找相关的代码,下面这段代码实现了连接到本地MySQL服务器上9tmd_bbs_utf8数据库,从数据表tbb_user中根据输入的userid取得该用户的用户名并打印输出到终端。
if defined(_WIN32) || defined(_WIN64)为了支持windows平台上的编译
#include <windows.h> #endif #include <stdio.h> #include <stdlib.h> #include "mysql.h"
我的机器上该文件在/usr/local/include/mysql下
定义MySQL数据库操作的宏,也可以不定义留着后面直接写进代码
define SELECT_QUERY "select username from tbb_user where userid = %d" int main(int argc, char **argv)char **argv 相当于 char *argv[] {
MYSQL mysql,*sock;定义数据库连接的句柄,它被用于几乎所有的MySQL函数
MYSQL_RES *res;查询结果集,结构类型
MYSQL_FIELD *fd ;包含字段信息的结构
MYSQL_ROW row ;存放一行查询结果的字符串数组
char qbuf[160];存放查询sql语句字符串
if (argc != 2) { //检查输入参数 fprintf(stderr,"usage : mysql_select <userid>\n\n"); exit(1); } mysql_init(&mysql); if (!(sock = mysql_real_connect(&mysql,"localhost","dbuser","dbpwd","9tmd_bbs_utf8",0,NULL,0))) { fprintf(stderr,"Couldn't connect to engine!\n%s\n\n",mysql_error(&mysql)); perror(""); exit(1); } sprintf(qbuf,SELECT_QUERY,atoi(argv[1])); if(mysql_query(sock,qbuf)) { fprintf(stderr,"Query failed (%s)\n",mysql_error(sock)); exit(1); } if (!(res=mysql_store_result(sock))) { fprintf(stderr,"Couldn't get result from %s\n", mysql_error(sock)); exit(1); } printf("number of fields returned: %d\n",mysql_num_fields(res)); while (row = mysql_fetch_row(res)) { printf("Ther userid #%d 's username is: %s\n", atoi(argv[1]),(((row[0]==NULL)&&(!strlen(row[0]))) ? "NULL" : row[0])) ; puts( "query ok !\n" ) ; } mysql_free_result(res); mysql_close(sock); exit(0); return 0;
为了兼容大部分的编译器加入此行
}
编译的时候,使用下面的命令
gcc -o mysql_select ./mysql_select.c -I/usr/local/include/mysql -L/usr/local/lib/mysql -lmysqlclient (-lz) (-lm) 后面两个选项可选,根据您的环境情况运行的时候,执行下面的命令
./mysql_select 1
将返回如下结果:
number of fields returned: 1 Ther userid #1 's username is: Michael query ok !
上面的代码我想大部分都能看明白,不明白的可以参考一下MySQL提供的有关C语言API部分文档,各个函数都有详细说明,有时间我整理一份常用的API说明出来。
I. MySQl数据库程序设计是干嘛用的好学嘛
数据库其实不难,就是学起来很枯燥,说白了数据库就是一种特殊的文件管理系统,学数据库就是学“增、删、改、查”的语句,就是这么简单。
