Mysql数据库:操作方法与C++接口

1. 安装

sudo apt-get install mysql-server mysql-client libmysql++-dev

2. 查看默认登录信息

sudo cat /etc/mysql/debian.cnf

输出:

# Automatically generated for Debian scripts. DO NOT TOUCH!
[client]
host     = localhost
user     = debian-sys-maint
password = cPzSgabV9LvjWwi0
socket   = /var/run/mysqld/mysqld.sock
[mysql_upgrade]
host     = localhost
user     = debian-sys-maint
password = cPzSgabV9LvjWwi0
socket   = /var/run/mysqld/mysqld.sock

  上面输出信息的hostuserpassword是Mysql默认的主机地址、用户名、密码。这些在使用C++连接数据库的函数mysql_real_connect时会用到。

3.终端操作数据库

  1. 登录数据库
    sudo mysql -u root -p
    
  2. 查看已有数据库列表
    show databases;
    
  3. 创建名字为library的数据库
    CREATE DATABASE library;
    
  4. 使用名字为library的数据库
    use library;
    
    • 查看名字为library的数据库包含哪些表
      show tables;
      
    • 创建名字为book和reader的两个表
      CREATE TABLE book(name char(20), author char(20));
      CREATE TABLE reader(name char(20), date int(10), sex char(5));
      
    • 查看名字为book的表的内容
      SELECT * FROM book;
      
    • 向名字为book的表中插入内容
      INSERT INTO book VALUES('c language', 'niuren');
      
    • 向名字为reader的表中插入内容
      INSERT INTO reader VALUES('kumata', 20180530, 'man');
      
    • 向名字为reader的表中插入缺省内容
      INSERT INTO reader(name, sex) VALUES('kusada', 'man');
      
    • 查看名字为book的表的结构
      desc book;
      
    • 删除名字为book的表
      DROP TABLE book;
      
  5. 删除名字为library的数据库
    drop database library;
    
  6. 从终端退出
    exit
    

[参考][参考]

4. 使用C++读取数据库

#include <iostream>
#include <mysql/mysql.h>
#include <stdlib.h>
#include <iomanip>
 
using namespace std;
 
int main(int argc, char* argv[]) {
	MYSQL mysql;
	mysql_init(&mysql);
	// 连接数据库library
	if(mysql_real_connect(&mysql, "localhost", "debian-sys-maint", "cPzSgabV9LvjWwi0", "library", 3306, NULL, 0) == NULL) {
		cout << "Connect Error: " << mysql_error(&mysql) << endl;
		exit(0);
	}
	// 查看library数据库的reader表的内容
	string sql = "select * from reader;";
	if(mysql_query(&mysql, sql.c_str()) != NULL) {
		cout << "Query Error: " << mysql_error(&mysql) << endl;
		exit(0);
	}
	// 获取查询结果
	MYSQL_RES *res = mysql_store_result(&mysql);
	if(res == NULL) {
		cout << "Query nothing: " << mysql_error(&mysql) << endl;
		exit(0);
	}
	// 输出查询结果
	MYSQL_ROW row;
	while(row = mysql_fetch_row(res)) {
		for(int i=0; i<mysql_num_fields(res); i++)
			cout << left << setw(10) << row[i] << left << setw(3) << ' ';
		cout << endl;
	}

	mysql_free_result(res);
	mysql_close(&mysql);
	return 0;
}

[参考][参考]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值