今天太狗屎了,喝饮料,害我闹肚子.最近食堂饭怎么那么难吃啊!!!我的天啊,自从图书馆建好了,食堂的饭就再没能吃过.我不求好吃啊,只求能吃啊.这个要求都这么难么?!必须吐嘈一下..今天又见识了一下高西老师,叼炸天的感觉,膜拜之!高西老师也确实是挺厉害的.讲软件设计与体系结构.有兴趣的同学可以去听听他讲课,没有讲什么太深的专业知识,就是整节课聊天一样.但是又能让你有所收获.高西老师自嘲之:我是桂电三院最差劲的老师......
今天,学习linux程序设计第八章, Mysql 数据库编程
1.Mysql安装,就不说了,基本每个linux发行版都有.如何确定自己的系统上是否已经运行了mysql服务器.
用这条命令即可:ps -el | grep mysqld .如果看到一个mysqld或者多个,正在运行,那么表示服务器已经启动.配置文件通常放在/etc/mysql/my.cnf.
我们可以用mysqladmin -u root version. 来检查服务器运行状态和相应的版本号.
mysqladmin variables ,里面输出一些设置,其中datadir告诉你mysql在哪里存储数据,have_innodb表示服务器支持innodb存储引擎.如果想让你的mysql默认存储引擎为innodb,可以在配置文件中加入:
default-storage-engine=INNOD.
2.首先,我们可以使用mysqladmin -u root password www.这条命令,将sql的管理员口令更改为www,这个时候,可以用mysql -u root -p登录,在输入密码后,登录数据库.也可用参数--password=www,来登录.这里有一些实用工具,但是我好像不会会用的样子....
3.介绍一些mysql命令.
grant命令:授权命令,用法几乎完全遵循sql92的语法.话说这个sql92是什么语法....
常用格式为:grant <privilege> on <object> to <user> [identified by user-password] [with grant option];
revoke命令:revoke < a_privilege> on <an_object> from <a_user>.
4.创建数据库
假设我们进入一个用户,然后输入CREATE DATABASE rick,这就创建了rick数据库.如果要用它,就用use rick来使用新的数据库.这里有一些数据类型,我好像记不下的样子...其实不都一样么...
5.创建表.
基本语法是:CREATE TABLE children(childno INTEGER AUTO_INCREMENT NOT NULL PRIMARY KEY,
fname VARCHAR(30),age INTEGER);
创建表之后,我们添加数据:INSERT INTO children(fname,age) VALUES("Jenny",21);
INSERT INTO children(fname,age) VALUES("wz",21);
添加成功之后,我们来查找看看:select * from children;(mysql 每当输入一个语句,要用;表示结束,然后开始执行这个语句)
6.我们来介绍一些图形化工具,一是mysql管理器,二是mysql查询浏览器.具体下载,可以通过新立得或者软件中心,都能下载得到.这个使用方法就不赘述了...在hostname那里填写localhost就行了.
7.我们来介绍C语言链接mysql数据库,这里只关注C语言.
这里我们给出一个实例:
#include<stdio.h>
#include<stdlib.h>
#include<mysql/mysql.h>
int main(int argc,char *argv[])
{
MYSQL *conn_ptr; //一个连接句柄结构的指针
conn_ptr = mysql_init(NULL); //初始化函数,如果参数给它一个已有的mysql结构,它将初始化这个结构,如果给他一个空值,他将返回一个mysql结构,当然,自动返回的这个结构,在关掉数据库的时候,会消亡.
if(!conn_ptr)
{
fprintf(stderr,"mysql_init failed \n");
return EXIT_FAILURE;
}
//其中这个函数才是真正连接sql的.conn_ptr 是刚才的结构,注意一定要经过初始化."localhost"表示用的是本地服务器."wz"是用户名."1234"是密码."rick"是数据库的名陈.接下来的三个参数分别是,port_number和unix_socket_name,默认就可以了.0和NULL.最后的标志,其实都没什么用处..
conn_ptr = mysql_real_connect(conn_ptr,"localhost","wz","1234","rick",0,NULL,0);
if(conn_ptr)
{
printf("connection success\n");
}
else
{
printf("connection failed\n");
}
mysql_close(conn_ptr); //关闭连接.
return EXIT_SUCCESS;
}
编译这个程序,要看你自己机器上的一些设置.还有库是否安装了,需要安装一个libmysqlclient-dev的库.另外,在编译的时候,要注意指定外部库的路径.我的机子上,是这么编译的.
gcc connect1.c -o connect1 -L/usr/lib/mysql -lmysqlclient
最后执行.
8.错误处理
可以用两个函数.
unsigned int mysql_errno(MYSQL *connection);
返回一个错误码,定义在errmsg.h或mysqld_error.h中.前者关注客户端,后者关注服务端.
char *mysql_error(MYSQL *connection);他提供一些有意义的错误文本信息,而不是单调的错误码.如果connection结构不是动态分配的(就是说传入的指针不是NULL的时候).错误信息即使在链接不上数据库的时候,仍能清楚显示.下面是错误实例:我们故意输错密码.
#include<stdio.h>
#include<stdlib.h>
#include<mysql/mysql.h>
int main()
{
MYSQL my_connection;
mysql_init(&my_connection);
if(mysql_real_connect(&my_connection,"localhost","wz","1342","rick",0,NULL,0))
{
printf("success\n");
}
else
{
fprintf(stderr,"connection failed\n");
if(mysql_errno(&my_connection))
{
fprintf(stderr,"connection error %d : %s \n",
mysql_errno(&my_connection),mysql_error(&my_connection));
}
}
return EXIT_SUCCESS;
}
9.执行sql语句
我们已经能够连接数据库,并且能够错误处理,是时候展现真正的技术了.执行sql语句的主要API函数被命名为:
int mysql_query(MYSQL *connection,const char *query);这个函数接受有效的sql语句(不包括分号).如果成功,就返回0,
这里有很多的函数,我就不一一介绍了,反正也记不住..用到的时候,去查吧,你能想到的,别人都已经帮你实现好了.程序设计在目前,实现永远不值钱,值钱的是想法.
结束我们的第八章.
今天大山炮睡得可傻逼了.偷偷拍照了,我就不上传了.以免活不到明天.
今天,学习linux程序设计第八章, Mysql 数据库编程
1.Mysql安装,就不说了,基本每个linux发行版都有.如何确定自己的系统上是否已经运行了mysql服务器.
用这条命令即可:ps -el | grep mysqld .如果看到一个mysqld或者多个,正在运行,那么表示服务器已经启动.配置文件通常放在/etc/mysql/my.cnf.
我们可以用mysqladmin -u root version. 来检查服务器运行状态和相应的版本号.
mysqladmin variables ,里面输出一些设置,其中datadir告诉你mysql在哪里存储数据,have_innodb表示服务器支持innodb存储引擎.如果想让你的mysql默认存储引擎为innodb,可以在配置文件中加入:
default-storage-engine=INNOD.
2.首先,我们可以使用mysqladmin -u root password www.这条命令,将sql的管理员口令更改为www,这个时候,可以用mysql -u root -p登录,在输入密码后,登录数据库.也可用参数--password=www,来登录.这里有一些实用工具,但是我好像不会会用的样子....
3.介绍一些mysql命令.
grant命令:授权命令,用法几乎完全遵循sql92的语法.话说这个sql92是什么语法....
常用格式为:grant <privilege> on <object> to <user> [identified by user-password] [with grant option];
revoke命令:revoke < a_privilege> on <an_object> from <a_user>.
4.创建数据库
假设我们进入一个用户,然后输入CREATE DATABASE rick,这就创建了rick数据库.如果要用它,就用use rick来使用新的数据库.这里有一些数据类型,我好像记不下的样子...其实不都一样么...
5.创建表.
基本语法是:CREATE TABLE children(childno INTEGER AUTO_INCREMENT NOT NULL PRIMARY KEY,
fname VARCHAR(30),age INTEGER);
创建表之后,我们添加数据:INSERT INTO children(fname,age) VALUES("Jenny",21);
INSERT INTO children(fname,age) VALUES("wz",21);
添加成功之后,我们来查找看看:select * from children;(mysql 每当输入一个语句,要用;表示结束,然后开始执行这个语句)
6.我们来介绍一些图形化工具,一是mysql管理器,二是mysql查询浏览器.具体下载,可以通过新立得或者软件中心,都能下载得到.这个使用方法就不赘述了...在hostname那里填写localhost就行了.
7.我们来介绍C语言链接mysql数据库,这里只关注C语言.
这里我们给出一个实例:
#include<stdio.h>
#include<stdlib.h>
#include<mysql/mysql.h>
int main(int argc,char *argv[])
{
MYSQL *conn_ptr; //一个连接句柄结构的指针
conn_ptr = mysql_init(NULL); //初始化函数,如果参数给它一个已有的mysql结构,它将初始化这个结构,如果给他一个空值,他将返回一个mysql结构,当然,自动返回的这个结构,在关掉数据库的时候,会消亡.
if(!conn_ptr)
{
fprintf(stderr,"mysql_init failed \n");
return EXIT_FAILURE;
}
//其中这个函数才是真正连接sql的.conn_ptr 是刚才的结构,注意一定要经过初始化."localhost"表示用的是本地服务器."wz"是用户名."1234"是密码."rick"是数据库的名陈.接下来的三个参数分别是,port_number和unix_socket_name,默认就可以了.0和NULL.最后的标志,其实都没什么用处..
conn_ptr = mysql_real_connect(conn_ptr,"localhost","wz","1234","rick",0,NULL,0);
if(conn_ptr)
{
printf("connection success\n");
}
else
{
printf("connection failed\n");
}
mysql_close(conn_ptr); //关闭连接.
return EXIT_SUCCESS;
}
编译这个程序,要看你自己机器上的一些设置.还有库是否安装了,需要安装一个libmysqlclient-dev的库.另外,在编译的时候,要注意指定外部库的路径.我的机子上,是这么编译的.
gcc connect1.c -o connect1 -L/usr/lib/mysql -lmysqlclient
最后执行.
8.错误处理
可以用两个函数.
unsigned int mysql_errno(MYSQL *connection);
返回一个错误码,定义在errmsg.h或mysqld_error.h中.前者关注客户端,后者关注服务端.
char *mysql_error(MYSQL *connection);他提供一些有意义的错误文本信息,而不是单调的错误码.如果connection结构不是动态分配的(就是说传入的指针不是NULL的时候).错误信息即使在链接不上数据库的时候,仍能清楚显示.下面是错误实例:我们故意输错密码.
#include<stdio.h>
#include<stdlib.h>
#include<mysql/mysql.h>
int main()
{
MYSQL my_connection;
mysql_init(&my_connection);
if(mysql_real_connect(&my_connection,"localhost","wz","1342","rick",0,NULL,0))
{
printf("success\n");
}
else
{
fprintf(stderr,"connection failed\n");
if(mysql_errno(&my_connection))
{
fprintf(stderr,"connection error %d : %s \n",
mysql_errno(&my_connection),mysql_error(&my_connection));
}
}
return EXIT_SUCCESS;
}
9.执行sql语句
我们已经能够连接数据库,并且能够错误处理,是时候展现真正的技术了.执行sql语句的主要API函数被命名为:
int mysql_query(MYSQL *connection,const char *query);这个函数接受有效的sql语句(不包括分号).如果成功,就返回0,
这里有很多的函数,我就不一一介绍了,反正也记不住..用到的时候,去查吧,你能想到的,别人都已经帮你实现好了.程序设计在目前,实现永远不值钱,值钱的是想法.
结束我们的第八章.
今天大山炮睡得可傻逼了.偷偷拍照了,我就不上传了.以免活不到明天.
本文介绍了在Linux环境下进行MySQL数据库编程的基础知识,包括安装配置MySQL服务器、使用命令行工具管理数据库、创建数据库和表、执行SQL语句等内容,并提供了C语言链接MySQL数据库的示例代码。

被折叠的 条评论
为什么被折叠?



