MYSQL的CRUD语句(含c++代码)

一.MySQl表的创建与删除

创建语句与删除语句

注意:
主键的数据类型,不可以是变长度类型需要()限制长度,表名字需要使用``符号来包围。

二.MySQl数据插入

 

 
三.MySQl数据删除

四.MySQl数据更新

 使用语句

SET SQL_SAFE_UPDATES = 0;
show variables like 'SQL_SAFE_UPDATES';

当要哦

第一次修改后:

第二次修改后:

注意:WHERE里面可以使用AND以外,还可以使用OR,来合并多个条件,形成一个更为复杂的条件。

五 .MYSQL数据查询

附录:代码

#include <iostream>
#include <mysql.h>void show_result(MYSQL_RES* result) {//获取结果集列的数量unsigned nFiles = mysql_num_fields(result);//获取结果集行的数量my_ulonglong nRows = mysql_num_rows(result);//获取每一列的定义接口:MYSQL_FIELD* fields = mysql_fetch_fields(result);for (unsigned i = 0; i < nRows; i++) {  //遍历每一行MYSQL_ROW row = mysql_fetch_row(result);//获取每一行结果if (row != NULL) {for (unsigned j = 0; j < nFiles; j++) {//对于每一行遍历每列的信息std::cout << "type:" << fields[j].type << " " << fields[j].name << " : " << row[j] << std::endl;  //对应存储数据的值}}std::cout << "==================" << std::endl;}}int creat_user(MYSQL* pDB){   //创建新用户std::string sql = "CREATE USER 'fc'@'localhost' IDENTIFIED BY ''";int ret = mysql_real_query(pDB, sql.c_str(), (unsigned long)sql.size());if (ret != 0) {std::cout << "mysql error:" << mysql_error(pDB) << std::endl;return -1;}return 0;
}int grant_userpower(MYSQL* pDB) {  //授予用户权限std::string sql = "GRANT ALL PRIVILEGES ON *.* TO 'fc'@'localhost' with grant option";int ret = mysql_real_query(pDB, sql.c_str(), (unsigned long)sql.size());if (ret != 0) {std::cout << "mysql error:" << mysql_error(pDB) << std::endl;return -1;}return 0;
}int creat_database(MYSQL* pDB) {  //创建数据仓库std::string sql = "CREATE DATABASE hello";int ret = mysql_real_query(pDB, sql.c_str(), (unsigned long)sql.size());if (ret != 0) {std::cout << "mysql error:" << mysql_error(pDB) << std::endl;return -1;}return 0;
}int use_database(MYSQL* pDB) {  //选择数据仓库std::string sql = "use hello;";int ret = mysql_real_query(pDB, sql.c_str(), (unsigned long)sql.size());if (ret != 0) {std::cout << "mysql error:" << mysql_error(pDB) << std::endl;return -1;}return 0;
}int grant_database_power(MYSQL* pDB) {  //授予仓库权限std::string sql = "GRANT ALL ON hello.* TO 'fc'@'localhost'";int ret = mysql_real_query(pDB, sql.c_str(), (unsigned long)sql.size());if (ret != 0) {std::cout << "mysql error:" << mysql_error(pDB) << std::endl;return -1;}return 0;
}int create_table(MYSQL* pDB) {   //创建数据库的表std::string sql = "CREATE TABLE IF NOT EXISTS `hello` (`num` char(16) PRIMARY KEY)engine=InnoDB default charset=UTF8MB4;";int ret = mysql_real_query(pDB, sql.c_str(), (unsigned long)sql.size());if (ret != 0) {std::cout << "mysql error:" << mysql_error(pDB) << std::endl;return -1;}return 0;}int insert_data(MYSQL* pDB) {   //插入数据库数据std::string sql = "insert into `hello` (`编号`) values (\"9527\");";int ret = mysql_real_query(pDB, sql.c_str(), (unsigned long)sql.size());if (ret != 0) {std::cout << "mysql error:" << mysql_error(pDB) << std::endl;return -1;}return 0;}int delete_data(MYSQL* pDB) {  //删除所筛选的数据std::string sql = "delete from `hello` where `编号`=\"9527\";";int ret = mysql_real_query(pDB, sql.c_str(), (unsigned long)sql.size());if (ret != 0) {std::cout << "mysql error:" << mysql_error(pDB) << std::endl;return -1;}return 0;
}int up_data(MYSQL* pDB) {  //修改所筛选的数据std::string sql = "update `hello` set age=30 where `编号`=\"9527\";";int ret = mysql_real_query(pDB, sql.c_str(), (unsigned long)sql.size());if (ret != 0) {std::cout << "mysql error:" << mysql_error(pDB) << std::endl;return -1;}return 0;
}int make_query(MYSQL* pDB) {  //查询数据库中的数值std::string sql = "select * from `hello`;";int ret = mysql_real_query(pDB, sql.c_str(), (unsigned long)sql.size());if (ret != 0) {std::cout << "mysql error:" << mysql_error(pDB) << std::endl;return -1;}MYSQL_RES* result = mysql_store_result(pDB);if (result != NULL) {show_result(result);    //展示数据mysql_free_result(result);   //释放结果,与use_result相互对应}return 0;
}int fe() {setlocale(LC_ALL, "en_GB.UTF-8"); //设置控制台编码MYSQL* mysql = new MYSQL();MYSQL* pDB = mysql_init(mysql);  //初始化mysql对象//这里两个变量 mysql和pDB 两个变量记录(指向)同一个值避免初始化失败后返回NULL指针内存泄漏的风险if (pDB == NULL) {std::cout << "mysql_init failed!" << std::endl;return -1;}pDB = mysql_real_connect(pDB, "localhost", "root", "1234", "mysql", 3306, NULL, 0);//连接数据库std::cout << pDB << std::endl;if (pDB) {//creat_user(pDB);//grant_userpower(pDB);//creat_database(pDB);//grant_database_power(pDB);//获取SQL的数据//use_database(pDB);//make_query(pDB);}mysql_close(pDB);delete(mysql);return 0;}int main()
{fe();return 0;}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/124284.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL优化、锁、总结常见问题

慢 SQL 如何定位呢&#xff1f; 慢 SQL 的监控主要通过两个途径&#xff1a; 慢查询日志&#xff1a;开启 MySQL 的慢查询日志&#xff0c;再通过一些工具比如 mysqldumpslow 去分析对应的慢查询日志&#xff0c;当然现在一般的云厂商都提供了可视化的平台。服务监控&#xf…

Python数据透视表

Python数据透视表 1、Excel数据透视表2、Python数据透视表 1、Excel数据透视表 数据透视表&#xff08;Pivot Table&#xff09;是一种交互式的表&#xff0c;可以进行某些计算&#xff0c;如求和与计数等。所进行的计算与数据跟数据透视表中的排列有关 之所以称为数据透视表…

知识图谱-Neo4j使用详解

neo4j应用场景 知识图谱欺诈检测实时推荐引擎反洗钱主数据管理供应链管理增强网络和IT运营管理能力数据谱系身份和访问管理材料清单 图数据库neo4j简介 关系查询&#xff1a;mysql和neo4j性能对比 neo4j的特性和优点&#xff1a; Neo4j-CQL简介 neo4j的Cypher语言是为处理图…

智能合约漏洞,Dyna 事件分析

智能合约漏洞&#xff0c;Dyna 事件分析 1. 漏洞简介 https://twitter.com/BlockSecTeam/status/1628319536117153794 https://twitter.com/BeosinAlert/status/1628301635834486784 2. 相关地址或交易 攻击交易 1&#xff1a; https://bscscan.com/tx/0x7fa89d869fd1b89e…

Hadoop启动后jps发现没有DateNode解决办法

多次使用 Hadoop namenode -format 格式化节点后DateNode丢失 找到hadoop配置文件core-site.xml查找tmp路径 进入该路径&#xff0c;使用rm -rf data删除data文件 再次使用Hadoop namenode -format 格式化后jps后出现DateNode节点

【Java 进阶篇】MySQL启动与关闭、目录结构以及 SQL 相关概念

MySQL 服务启动与关闭 MySQL是一个常用的关系型数据库管理系统&#xff0c;通过启动和关闭MySQL服务&#xff0c;可以控制数据库的运行状态。本节将介绍如何在Windows和Linux系统上启动和关闭MySQL服务。 在Windows上启动和关闭MySQL服务 启动MySQL服务 在Windows上&#x…

java使用数据库连接池

我的jar包名字 这些包都可以去搜索,有很多小伙伴会用网盘给我们.导入jar包就是复制然后粘贴就好了

论文笔记(整理):轨迹相似度顶会论文中使用的数据集

0 汇总 数据类型数据名称数据处理出租车数据波尔图 原始数据&#xff1a;2013年7月到2014年6月&#xff0c;170万条数据 ICDE 2023 Contrastive Trajectory Similarity Learning with Dual-Feature Attention 过滤位于城市&#xff08;或国家&#xff09;区域之外的轨迹 过…

Transformer学习-self-attention

这里写自定义目录标题 Self-attentionMulti-head self-attention用self-attention解决其他问题 Self-attention 用Wq、Wk、Wv分别乘输入向量得到q、k、v向量 用每个q向量乘所有的k向量得到对应项的attention&#xff0c;即用每项的query向量去匹配所有的key向量&#xff0c;得…

python模拟表格任意输入位置

在表格里输入数值&#xff0c;要任意位置&#xff0c;我找到了好方法&#xff1a; input输入 1. 行 2. 列输入&#xff1a;1 excel每行输入文字input输入位置 3.2 表示输入位置在&#xff1a;3行个列是要实现一个类似于 Excel 表格的输入功能&#xff0c;并且希望能够指定输入…

基于Java的水果生鲜购物网站设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序&#xff08;小蔡coding&#xff09;有保障的售后福利 代码参考源码获取 前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作…

【Spring】Bean作用域和生命周期

Bean作用域和生命周期 一. Bean 的作用域1. Bean 的 6 种作⽤域&#xff1a;①. singleton②. prototype③. request④. session⑤. application⑥. websocket单例作用域(singleton) VS 全局作⽤域(application) 2. 设置作用域 二. Spring 执行流程和 Bean 的生命周期1. Spring…