Linux_C连接数据库
内容
- C/C++连接数据库 – C/S结构通式
- 基本sql语句
- 视图、索引、事务
数据库的构成
- 数据文件–存在磁盘上
- 数据库管理系统
基本模式
基本模式就是用客户端连接数据库服务器,使用TCP连接。
- 首先要启动数据库服务,即先把TCP服务端运行起来
- 通过客户端连接数据库
相关命令
linux命令
1 | service mysql status # 查看状态 |
连接数据库命令
1 | mysql -uroot -p |
mysql命令
1 | select user,host,plugin from mysql.user; |
创建数据库
1 | create database xcg charset=utf8; |
创建数据表
1 | ``` |
- 创建用户
1 | #创建用户示例 |
远程登录
条件有二
- 有远程登陆方式的用户以及设置了密码
- 配置文件中要设置可以远程登陆
配置文件位置在如下位置,需要修改可以用vi打开。注意,修改前需要切换为管理员模式。
1 | vi /etc/mysql/mysql.conf.d/mysqld.cnf |
修改完后,需要重启mysql服务器
1 | service mysql restart |
C语言访问mysql
-
连接数据库使用的头文件和库文件
1
注意,程序中使用了访问mysql的有关函数接口,需要在代码链接时指定库名: -lmysqlclient
-
初始化连接句柄
1
MYSQL *mysql_init(MYSQL *mysql);
-
连接数据库
1
2
3
4
5MYSQL *mysql_real_connect(MYSQL *mysql, const char* host,
const char* user, const char* passwd
const char* db, unsigned int port
const char* unix_socket,
unsigned long clientflag);
读
-
指定select语句
1
2
3
4
5
6char * sql = "select * from student";
if(n != 0)
{
mysql_close(mysql);
exit(1);
} -
获取结果集
1
2
3
4
5
6MYSQL_RES * res = mysql_store_result(mysql);
if(res == NULL)
{
mysql_close(mysql);
exit(1);
} -
获取结果集的行数、列数
1
2int num = mysql_num_rows(res);
int count = mysql_field_count(mysql); -
遍历
1
2
3
4
5
6
7
8
9for(int i = 0; i<num; ++i)
{
MYSQL_ROW row = mysql_fetch_row(res);
for(int j = 0; j<count; ++j)
{
printf("%s\t",row[j]);
}
printf("\n");
} -
收尾工作
1
2
3mysql_free_result(res);
mysql_close(mysql);
exit(0);
视图
事务
索引
创建索引
1 | create index t_index on test_index(title(20)); |