-------------------------------------------
操作系统:winxp-32bit
数据库:MySQL Server 5.5
(安装路径:D:\ProgramFiles\MySQL\MySQL Server 5.5)
IDE: Microsoft Visual Studio 2010 untimate/Professional
(以上东西都是完整安装的)
-------------------------------------------
下载MySQL 5.5.13正式版:http://www.xiazaiba.com/html/361.html
一、VC设置
1、新建一个工程,随便写一个helloworld,目的是就是让工程下的“debug”文件夹出现
2、把D:\Program Files\MySQL\MySQL Server 5.5\lib下面的libmysql.dll复制到工程的debug文件夹里面
3、接下来要设置一些引用文件的环境变量,首先,点击项目->属性->vc++目录。
然后“include目录”那把“D:\ProgramFiles\MySQL\MySQL Server 5.5\include”给加进来
再然后“lib目录”那里把“D:\ProgramFiles\MySQL\MySQL Server 5.5\lib”也一起加进来
VC6.0设置:
(1)打开VC6.0 工具栏Tools菜单下的Options选项,在Directories的标签页中右边的“Show directories for:”下拉列表中选中“Includefiles”,然后在中间列表框中添加你本地安装MySQL的include目录路径。(我的是D:\Program Files\MySQL\MySQL Server 5.5\include)。
(2)在上面说到的“Showdirectories for:”下拉列表中选中“Library files”,然后添加你本地安装MySQL的Lib目录路径。Lib目录下有debug目录,选debug。(我的是D:\ProgramFiles\MySQL\MySQL Server 5.5\lib\debug)。
4、然后在项目->属性窗口下点击:连接器->输入->附加依赖项,把"libmysql.lib"写进去
VC6.0设置:在“Projectsettings->Link:Object/library modules”里面添加“libmysql.lib”。
使用VC++编译时再添加以下项:
5、在stdafx.h里面添加如下的内容:
#include "mysql.h"
#include "winsock.h" // 如果编译出错,则把该行放到#include "mysql.h"之前#pragmacomment(lib,"libmySQL.lib") // 如果在附加依赖项里已增加,则就不要添加了
二、数据库的相关操作
1、打开“开始->所有程序->MySQL->MySQLServer 5.5->MySQL Command Line Client.exe”,如果有密码就输入密码,没有设置密码就直接按回车,会提示服务器启动成功。
2、显示所有的数据库
mysql> show databases;注意一定要 敲“;”后再按回车
3、创建数据库mydb
mysql> create database mydb;
4、选择你所创建的数据库mydb
mysql> use mydb;
5、显示数据库中的表
mysql> show tables;
因为是新创建的数据库,所以为空
6、创建一个表
mysql> create table tettable (id int(3)auto_increment not null primary key,timedatetime,name char(10) notnull,addressvarchar(20),year date,s1 char(11) ,s2 int default
‘1’ )
注:在建表中:
(1)将ID设为长度为3的数字字段:int(3)并让它每个记录自动加一:auto_increment并不能为空:not null,而且让他成为主字段primary key。
(2)将time设为日期时间字段。
(3)将NAME设为长度为10的字符字段。并不能为空:not null
(4)将ADDRESS设为长度20的字符字段,而且缺省值为深圳。varchar和char有什么区别呢,只有等以后的文章再说了。
(4)将YEAR设为日期字段。
(5)将S1设为长度为11的字符字段
(6)将S2设为数字字段int,而且缺省值为1
7、显示表的结构
mysql> describe testtable;
8、实现添加数据到表
mysql> insert into testtablevalues('1','2010-10-08', 'bj','深圳一中','2010-10-08','MySQLTest',20);
mysql> insert into testtablevalues('2','2010-10-08', 'jj','深圳二中','2010-10-08','MySQLTest2',20);
9、显示表中的记录
mysql> select * from testtable;
mysql> select * from testtable wherename =
“bj”;
10、实现修改功能
mysql> update testtable set address ="桃园县一中" where name = "jj";
mysql> select * from testtable;
11、实现删除功能
mysql> delete from testtable where name ="jj";
mysql> delete from testtable where id>4;
mysql> delete from testtable where id>4 andid<9;
12、删库和删表:
drop database 库名;
drop table 表名;
13、将表中记录清空:
delete from 表名;
14、将文本数据转到数据库中
1、文本数据应符合的格式:字段数据之间用tab键隔开,null值用\n来代替.
例:
3 1976-10-10 rose 深圳二中 1976-10-10 mysql1 22
4 1976-10-10 mike 深圳一中 1975-12-23 mysql2 24
2、数据传入命令 load data local infile "文件名" into table 表名;
注意:你最好将文件复制到\mysql\bin目录下,并且要先用use命令打表所在的库。
15、备份数据库:(命令在DOS的\mysql\bin目录下执行)
mysqldump --opt 数据库或表名 -u root -p密码 > F:\mydb.bbb
mysqldump --opt mydb -u root -p111 > F:\mydb.sql
注释:将数据库mydb备份到F盘mydb.bbb文件,mydb.sql是一个文本文件,文件名任取,打开看看你会有新发现。-u后空格,指定用户名,必需,-p指定密码,注意后面直接跟密码不能空格,如果不填密码,再在后面输入即可。
16、导入数据库
从e:\MySQL\mydb2.sql中将文件中的SQL语句导入数据库中:
1.从命令行进入MySQL,然后用命令CREATEDATABASE mydb2;创建数据库mydb2。
2.退出MySQL 可以输入命令exit;或者quit;
3.在CMD中输入下列命令:
c:\>MySQL -h localhost -u root -p mydb2 < e:\MySQL\mydb2.sql
17、MySql密码修改
格式:mysqladmin -u用户名 -p旧密码 password 新密码
1、给root加个密码ab12。首先在DOS下进入目录mysql\bin,然后键入以下命令
mysqladmin -u root -password ab12
注:因为开始时root没有密码,所以-p旧密码一项就可以省略了。
2、再将root的密码改为djg345。
mysqladmin -u root -pab12 password djg345
(注意:和上面不同,下面的因为是MYSQL环境中的命令,所以后面都带一个分号作为命令结束符)
3、命令行修改root密码:
>use mysql
>update user set password=password(”djg345”) where user=”root”;
>flush privileges;
重新杀 MySQL ,用正常方法启动MySQL 。
4、显示当前的user:
mysql> SELECT USER();
MYSQL增加用户
命令方式的.注意每行后边都跟个; 表示一个命令语句结束.
格式:grant select on 数据库.* to 用户名@登录主机identified by "密码"
例1、增加一个用户user密码为1234,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入MYSQL,然后键入以下命令:
grantselect,insert,update,delete on *.* touser@"%" identified by"1234";
但例1增加的用户是十分危险的,你想如某个人知道test1的密码,那么他就可以在internet上的任何一台电脑上登录你的mysql数据库并对你的数据可以为所欲为了,解决办法见例2。
例2、增加一个用户user密码为1234,让他只可以在localhost上登录,并可以对数据库mydb进行查询、插入、修改、删除的操作 (localhost指本地主机,即MYSQL数据库所在的那台主机),这样用户即使用知道user的密码,他也无法从internet上直接访问数据 库,只能通过MYSQL主机上的web页来访问了。
grantselect,insert,update,delete on *.* touser@localhostidentifiedby "1234";
grant select,insert,update,delete on mydb.* touser@localhostidentifiedby "1234";
如果你不想test2有密码,可以再打一个命令将密码消掉。
grantselect,insert,update,delete on *.* touser@localhostidentified by "";
grant select,insert,update,delete on mydb.* touser@localhostidentifiedby "";
18、关于排序与选择
1)em_site_access
表信息如下:
2)按字段USER_ID递增排序
select * from em_site_access order by USER_ID; 递增排序
3)按字段USER_ID递减排序,在后面添加desc就行了
select * from em_site_access order by USER_ID desc; 递减排序
4)按字段USER_ID,SITE_CODE递减排序
select * from em_site_access order by USER_ID desc,SITE_CODEdesc;
5)选择字段值为SITE_CODE=00060项并按字段USER_ID递增排序
select * from em_site_access where SITE_CODE=00060 order by USER_ID;
6)选择字段值同时满足SITE_CODE=00060和USER_ID=922项
select * from em_site_access where SITE_CODE=00060 and USER_ID=922;
1 linux平台及windows平台mysql重启方法
Linux下重启MySQL的正确方法:
1.启动:/etc/init.d/mysqld start
2.停止:/etc/init.d/mysqld stop
3.重启:/etc/init.d/mysqldrestart
启动:# service mysqld start
停止:# service mysqld stop
重启:# service mysqld restart
Windows
1.点击“开始”->“运行”(快捷键Win+R)。
2.启动:输入 net stop mysql
3.停止:输入 net start mysql
* Windows下不能直接重启(restart),只能先停止,再启动。
后记:其实MYSQL的对数据库的操作与其它的SQL类数据库大同小异,最好找本将SQL的书看看。在这里只介绍一些基本的。最好的MYSQL教程还是"晏子"译的"MYSQL中文参考手册"不仅免费,每个相关网站都有下载,而且它是最权威的。(down load here)">">附件
三、C++编程
#include<Windows.h>
#include<string>
#include<iostream>
#include<mysql.h>
#include<stdio.h>
int main()
{
//connectionparams
char *host = "localhost";
char *user = "root";
char *pass = "111";//你的mysql服务器密码
char *db = "MySql";
unsignedint port = 3306; //server port
MYSQL *sock;
MYSQL_RES *res;
MYSQL_FIELD * fd;
MYSQL_ROW row;
char szSqlText[500]="";
inti;
inttcreate=0;
sock=mysql_init(0);
if(sock &&mysql_real_connect(sock,host,user,pass,db,0,NULL,0))
{
std::cout<<"connect mysqlsucceed!"<<std::endl;
//mysql_set_character_set(sock,"utf8");
mysql_query(sock, "set namesgb2312");
//mysql_query(sock, "SET NAMESGBK"); //设置编码格式,否则在cmd下无法显示中文
//connectioncharacter set
//waitfor possibility to checksystem/mysqlmysqlets
if(tcreate)
{
sprintf(szSqlText,"create table datatable (id int(3) auto_increment not null primarykey,timedatetime,name char(10) not null,addressvarchar(20),year date,s1char(11) ,s2 int default '1') CHARACTER SET utf8");//构造SQL语句 新建一张表
std::cout<<"Create table tttable!"<<std::endl;
tcreate = 1;
if(mysql_query(sock,szSqlText))//执行Dsql语句,并判断是否出错
{
std::cout<<"can't createtable:"<<mysql_error(sock)<<std::endl;
//tcreate = 0;
mysql_close(sock);
return FALSE;
}
}
sprintf(szSqlText,//向mytable这个表插入数据 注意时间格式
"insert intodatatable values('1','2010-10-08', 'bj','深圳一中','2010-10-08','MySQLTest',20)");
std::cout<<"Insert data totable!"<<std::endl;
if(mysql_query( sock, szSqlText))
{
std::cout<<"Can'tinsert data to table"<<mysql_error(sock)<<std::endl;
mysql_close( sock);
return FALSE ;
}
sprintf(szSqlText, "select* from datatable");
std::cout<<"select* fromdatatable!"<<std::endl;
if(mysql_query( sock, szSqlText))//进行数据检索并检查有无错误
{
mysql_close( sock);
return FALSE ;
}
else
{
std::cout<<"mysql_store_result!"<<std::endl;
res=mysql_store_result( sock) ;//取得查询结果,保存查询到的数据到res
i = (int)mysql_num_rows(res ) ;//取得有效记录数
std::cout<<"Query:"<<szSqlText<<"\n"<<i<<" recordsfound:"<<std::endl;
for( i = 0 ; fd =mysql_fetch_field( res ); i++ )//获取列名
std::cout<<fd->name<<"\t";
std::cout<<std::endl;//输出各字段名
while(row =mysql_fetch_row( res))//获取具体的数据,依次读取各条记录
std::cout<<row[0]<<"\t"<<row[1]<<"\t"<<row[2]<<"\t"<<row[3]<<"\t"<<row[4]<<std::endl;
mysql_free_result(res ); //释放结果资源
}
}
else//连接数据库出错
{
std::cout<<"cannot connect tothe sock sever "<<mysql_error(sock)<<std::endl;
mysql_close(sock);
return FALSE;
}
mysql_close(sock);//断开连接
system("pause");
return TRUE;
}
关于添加中文后编译出错问题的解决
比如utf8,big5,gb2312.
在 MySQL 4.1 或更新版本, 如果你要使用中文,则必须用 UTF-8。 你要用 utf8 charset 来建立数据库:
mysql> CREATE DATABASE bugzero_db CHARACTER SET utf8;
或者,如果非utf8 数据库已经建立,你可用alter来改变:
mysql> ALTER DATABASE bugzero_db CHARACTER SETutf-8;
注意,只有没有任何 tables 的情况下,ALTER DATABASE 才有效。
当然,如果 utf8 已经是你mysqlserver的默认charset,那么,上面步骤就不需要了
四、VC编程
MYSQL mysql; //数据库连接句柄mysql_init(&mysql);if(!mysql_real_connect(&mysql,"localhost","root",NULL,"mydb",3306,NULL,0)){//mydb为你所创建的数据库,3306为端口号,可自行设定 AfxMessageBox("数据库连接失败"); returnFALSE;}
(1)实现添加功能
CStringstrUsername,strList,strRemark,strSQL;strSQL.Format("insertinto mytable(username,visitelist,remark) values(\'%s\',\'%s\',\'%s\')",strUsername,strList,strRemark);//注意一定要写在一行,而且必须要有\'\'if(mysql_real_query(&mysql,(char*)(LPCTSTR)strSQL,(UINT)strSQL.GetLength())!=0){AfxMessageBox("增添失败");
}
(2)实现修改功能
CStringstrUsername,strList,strRemark,strSQL,str_PreName;//str_PreName用于记录想要修改的行,详情请看源代码strSQL.Format("updatemytable set username=\'%s\',visitelist=\'%s\', remark=\'%s\' whereusername=\'%s\'",strUsername,strList,strRemark,str_PreName);if(mysql_real_query(&mysql,(char*)(LPCTSTR)strSQL,(UINT)strSQL.GetLength())!=0){AfxMessageBox("修改失败");
}
(3)实现删除功能
CStringstrSQL;strSQL.Format("delete frommytable where username=\'%s\'",str_PreName);//必须要有\'\'if(mysql_real_query(&mysql,(char*)(LPCTSTR)strSQL,(UINT)strSQL.GetLength())!=0){AfxMessageBox("删除失败");
}
(4)读取表格内容到CListCtrl控件m_list
m_list.DeleteAllItems();char*ch_query;ch_query="select * from mytable";if(mysql_real_query(&mysql,ch_query,(UINT)strlen(ch_query))!=0){AfxMessageBox("数据库中表格出错"); }CStringstr;MYSQL_RES*result;MYSQL_ROWrow;if(!(result=mysql_use_result(&mysql))){AfxMessageBox("读取数据集失败");
}inti=0;while(row=mysql_fetch_row(result)){str.Format("%s",row[0]);m_list.InsertItem(i,str);str.Format("%s",row[1]);m_list.SetItemText(i,1,str);str.Format("%s",row[2]);m_list.SetItemText(i,2,str);i++;}mysql_free_result(result);
做一些添加:
while (row=mysql_fetch_row(result))
{num=mysql_num_fields(result);
for (int j=0;j<num;j++)
...}
mysql_fetch_row依次获取受影响的行,当结束时返回NULL,mysql_num_fields获取该行的列数。注意,这里的row是char** 类型,即row[i]是char*类型。
(5)关闭数据库
mysql_close(&mysql);//最好写到OnDestroy()函数中
分享到:
相关推荐
这个“vs2010连接mysql数据库方法.rar”压缩包文件很可能是提供了一种详细的教程或指南,帮助用户了解如何在VS2010中配置和使用MySQL数据库。 首先,为了在VS2010中连接到MySQL数据库,你需要确保已经安装了以下...
### VS2010连接MySQL数据库方法详解 #### 一、前言 随着软件开发项目的日益复杂化,数据库管理成为了必不可少的一部分。Visual Studio 2010作为一种强大的集成开发环境,支持多种数据库连接方式,包括MySQL。本文将...
本文档旨在介绍如何使用VS2010连接MySQL数据库,並提供了安装和配置MySQL的步骤,以及使用VS2010中的API连接MySQL数据库的方法。 一、安装MySQL MySQL的安装有两种方式:使用图形化安装方式和使用zip压缩包安装...
Informatica 连接 Mysql 数据库案例 Informatica 是一个功能强大的数据集成平台,支持多种数据源的连接和集成,本文档将详细介绍 Informatica 连接 Mysql 数据库的步骤和配置。 Informatica 连接 Mysql 数据库的...
下面我们将深入探讨如何在VS中连接MySQL数据库,以及相关的知识点。 首先,要实现VS连接MySQL,我们需要安装几个关键组件: 1. **MySQL for Visual Studio**:这是MySQL官方提供的一个插件,它允许开发者在VS中...
java jsp 连接 mysql 数据库 jar包java jsp 连接 mysql 数据库 jar包java jsp 连接 mysql 数据库 jar包java jsp 连接 mysql 数据库 jar包java jsp 连接 mysql 数据库 jar包java jsp 连接 mysql 数据库 jar包
本文将详细地介绍新手如何使用VB6.0连接MySQL数据库,并提供清晰的步骤。 首先,要使VB6.0能够连接到MySQL数据库,需要在VB6.0的应用程序中引用MySQL的数据库引擎。由于VB6.0本身并不直接支持MySQL,所以一般需要...
1、在MyEclipse中连接MySQL数据库:依次点击window–>show view–>other–>MyEclipse Database–>DB Browser 图一:找到数据库连接选项 2、选中DB Browser,右键单击,并选择New一个数据连接的菜单,新建一个MySQL...
MySQLDriverCS是一个专门用于C#(Unity3D支持的语言)连接MySQL数据库的库。要实现这一连接,首先需要下载并安装MySQLDriverCS,随后找到安装目录下的MySQLDriver.dll文件,并将其添加到Unity项目的 Assets 文件夹中...
首先,连接MySQL数据库的关键在于创建QSqlDatabase实例。我们可以使用`addDatabase()`静态方法来添加一个新的数据库连接,并指定连接类型为'QMYSQL',对应MySQL驱动。然后,设置主机名、数据库名、用户名和密码。...
在VB6(Visual Basic 6)中连接MySQL数据库是一项基础且重要的技能,尤其对于初学者而言。本实例将提供一个完整的解决方案,包括所需的驱动程序和源代码,帮助开发者理解如何在VB6环境中与MySQL数据库进行交互。 ...
"Eclipse连接MySQL数据库详细指南" 本文档将详细介绍如何使用Eclipse连接MySQL数据库,包括安装MySQL、创建数据库和表、使用JDBC驱动连接数据库、执行SQL语句、插入数据等内容。 一、安装MySQL 在开始使用Eclipse...
使用VFP 9.0想连接MYSQL 数据库,连接串都正确了,安装了ODBC但一直接不上,原来 是ODBC版本的问题。64位电脑安装这个ODBC驱动后,VFP就可以连接到MYSQL了。
### C#连接MySql数据库的两种方法 #### 一、使用 MySQLDriverCS 连接 MySQL 数据库 **1. 下载与安装 MySQLDriverCS** 为了使用 MySQLDriverCS 来连接 MySQL 数据库,首先需要下载并安装 MySQLDriverCS。可以从...