1.首先连接MySQL默认的数据库mysql

// 参数说明:
// strIP: MySQL数据库的IP地址
// nPort: MySQL数据库的端口号
// strDBName: 要连接的数据库(mysql)
// strUserName: 连接MySQL数据库的用户名
// strPassword: 连接MySQL数据库的密码
bool Connect( const std::string& strIP, int nPort, const std::string& strDBName,
const std::string& strUserName, const std::string& strPassword )
{
if ( nullptr == (m_hMysql = mysql_init(nullptr)) )
{
printf("mysql_init() failed!");
return false;
} if( nullptr == mysql_real_connect( m_hMysql, strIP.c_str(), strUserName.c_str(),
strPassword.c_str(), strDBName.c_str(), nPort, nullptr, ) )
{
printf("mysql_real_connect() failed!");
return false;
}
return true;
}

调用示例:

    bool ret = Connect("127.0.0.1", , "mysql", "test", "test"); // 注意:"mysql"是MySQL自己的数据库
if (!ret)
{
printf("connect mysql failed\n");
}

2.创建自己的数据库test

bool CreateDatabase(const std::string& strSQL)
{
if (nullptr == m_hMysql || strSQL.empty())
{
return false;
} if (MYSQL_OK != mysql_query(m_hMysql, strSQL.c_str()))
{
printf("mysql_query failed, sql:%s\n", strSQL.c_str());
return false;
}
return true;
}

调用示例:

bool ret = CreateDatabase("CREATE DATABASE IF NOT EXISTS test DEFAULT CHARSET utf8 COLLATE utf8_general_ci");
if (!ret)
{
printf("CreateDatabase failed\n");
}

3.切换到自己的数据库test

bool ChangeDatabase(const std::string& strSQL)
{
if (nullptr == m_hMysql || strSQL.empty())
{
return false;
} if (MYSQL_OK != mysql_query(m_hMysql, strSQL.c_str()))
{
printf("mysql_query failed, sql:%s\n", strSQL.c_str());
return false;
}
return true;
}

调用示例:

bool ret = ChangeDatabase("USE test");
if (!ret)
{
printf("ChangeDatabase failed\n");
}

4.创建数据库表t_data

bool CreateTable(const std::string& strSQL)
{
if (nullptr == m_hMysql || strSQL.empty())
{
return false;
} if (MYSQL_OK != mysql_query(m_hMysql, strSQL.c_str()))
{
printf("mysql_query failed, sql:%s\n", strSQL.c_str());
return false;
}
return true;
}

调用示例:

bool ret = CreateTable("CREATE TABLE IF NOT EXISTS t_data ( Id BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '自增ID', DATA VARCHAR(256) NOT NULL COMMENT '数据位置', PRIMARY KEY (Id) ) ENGINE=INNODB DEFAULT CHARSET=utf8");
if (!ret)
{
printf("create table failed\n");
}

mysql-connetor-c 自动创建数据库、数据库表的命令的更多相关文章

  1. mysql 按照月份自动创建表,以年和月为表明,动态生成。

    需求:mysql5.5 数据库,想要根据月份自动创建表,每个月创建一张表,需要数据库自动创建,并根据当前年和月动态生成表名称. 解决办法:1 连接数据库工具为Navicat  2  首先创建存储过程, ...

  2. MySQL数据库 | 数据表-查询命令详细记录

    本篇专门记录数据库增删改查中最常用.花招最多的 查. [文章结构] 一.数据的准备 二.基本的查询功能 三.条件查询 四.查询排序 五.聚合函数 六.分组查询 七.分页查询 八.连接查询 九.子查询 ...

  3. mysql/mariadb学习记录——创建删除数据库、表的基本命令

    查看已有的数据库: mysql> show databases; +--------------------+ | Database | +--------------------+ | inf ...

  4. mysql使用存储过程,自动生成新的表单

    use mydb; delimiter // CREATE procedure create_table(In imax int) BEGIN DECLARE `@i` int(11);      D ...

  5. Mysql分区表及自动创建分区Partition

    Range分区表建表语句如下,其中分区键必须和id构成主键和唯一键 CREATE TABLE `test1` ( `id` char(32) COLLATE utf8mb4_unicode_ci NO ...

  6. MySQL数据库以及表的管理

    MySQL数据库以及表的管理 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 今天我们探讨的话题就是如何使用MySQL做开发,我们运维的主要工作不是去开发SQL的,但尽管如此,我们有 ...

  7. MySql数据库2【常用命令行】

    (一) 连接MYSQL: 格式: mysql -h主机地址 -u用户名 -p用户密码 1.连接到本机上的MYSQL 进入mysql安装目录下的bin目录下,再键入命令mysql -uroot -p,回 ...

  8. Oracle_创建和管理表

    创建和管理表 常见的数据库对象 Oracle 数据库中的表 查询数据字典 命名规则 CREATE TABLE 语句 数据类型 使用子查询创建表 ALTER TABLE 语句 删除表 清空表 改变对象的 ...

  9. oracle中用SQL语句创建和管理表

    表名和列名的命名规则: 必须以字母开头 必须在1-30个字符之间 只能包含A-Z,a-z,0-9,_,$,# 不能与用户定义的其它对象重名 不能使用ORACLE的保留字 创建前具备的条件: CREAT ...

  10. Oracle——创建和管理表

    一.常见的数据库对象 对象 描述 表 基本的数据存储集合,由行和列组成 视图 从表中抽出的逻辑上相关的数据集合 序列 提供有规律的数值 索引 提高查询的效率 同以词 给对象起别名 二.Oracle 数 ...

随机推荐

  1. PostgreSQL——启动脚本

    <仅供参考,执行結果受环境影响> 如下: pgpath='/usr/local/pgsql/bin' pgdata='/usr/local/pgsql/data' #以 postgres ...

  2. vs设置html的模板快

    打开vs编辑器,点击文件-->首选项-->用户代码片段 之后选择先对应的编辑器模板 进入里面编写相对应的代码块 之后直接在编辑器中调用.

  3. phoenix 利用CsvBulkLoadTool 批量带入数据并自动创建索引

    需要先创建表: CREATE TABLE IF NOT EXISTS population ( state CHAR() NOT NULL, city VARCHAR NOT NULL, popula ...

  4. 关于windows一些常用的快捷键使用说明

    犹由于经常使用linux和windows,所以有时候就会觉得windows一点需要点击好多下才能够完成的设定非常的麻烦,这里总结一些常用到的快捷键功能,会随着本小白的工作经验而添加. 1.ctrl+a ...

  5. bzoj3143 游走 期望dp+高斯消元

    题目传送门 题意: 一个无向连通图,顶点从1编号到N,边从1编号到M. 小Z在该图上进行随机游走,初始时小Z在1号顶点,每一步小Z以相等的概率随机选 择当前顶点的某条边,沿着这条边走到下一个顶点,获得 ...

  6. HashMap 1.7 与 1.8 的 区别,说明 1.8 做了哪些优化,如何优化的

    JDK1.7用的链表散列结构,JDK1.8用的红黑树 在扩充HashMap的时候,JDK1.7的重新计算hash, JDK1.7只需要看看原来的hash值新增的那个bit是1还是0就好了,是0的话索引 ...

  7. wpf 解决 WPF SelectionChanged事件向上传递造成重复执行不想执行的函数的问题

    例如 tabcontrol里有一个tabitem tabitem里有一个combox和一个datagrid tabcontrol combox datagrid都有SelectionChanged事件 ...

  8. Kotlin Download

    { https://github.com/JetBrains/kotlin/releases/tag/v1.3.50 }

  9. docker搭建jenkins

    这里是在linux环境下安装docker之后,在doucer内安装jenkins --------------------docker 安装 jenkins---------------------- ...

  10. Vue.js - 路由 vue-router 的使用详解2(参数传递)

    一.使用冒号(:)的形式传递参数 1,路由列表的参数设置 (1)路由列表的 path 是可以带参数的,我们在路由配置文件(router/index.js)里以冒号的形式设置参数. (2)下面样例代码中 ...