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


    目录

    一.MySQl表的创建与删除

    二.MySQl数据插入

    三.MySQl数据删除​编辑​编辑

    四.MySQl数据更新

    五 .MYSQL数据查询

    六.创建索引

    附录:代码


    一.MySQl表的创建与删除

    创建语句与删除语句

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

    二.MySQl数据插入

     

     

     

    三.MySQl数据删除

    四.MySQl数据更新

     使用语句

    1. SET SQL_SAFE_UPDATES = 0;
    2. show variables like 'SQL_SAFE_UPDATES';

    当要哦

    第一次修改后:

    第二次修改后:

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

    五 .MYSQL数据查询

    六.创建索引

    附录:代码

    1. #include
    2. #include
    3. void show_result(MYSQL_RES* result) {
    4. //获取结果集列的数量
    5. unsigned nFiles = mysql_num_fields(result);
    6. //获取结果集行的数量
    7. my_ulonglong nRows = mysql_num_rows(result);
    8. //获取每一列的定义接口:
    9. MYSQL_FIELD* fields = mysql_fetch_fields(result);
    10. for (unsigned i = 0; i < nRows; i++) { //遍历每一行
    11. MYSQL_ROW row = mysql_fetch_row(result);
    12. //获取每一行结果
    13. if (row != NULL) {
    14. for (unsigned j = 0; j < nFiles; j++) {
    15. //对于每一行遍历每列的信息
    16. std::cout << "type:" << fields[j].type << " " << fields[j].name << " : " << row[j] << std::endl; //对应存储数据的值
    17. }
    18. }
    19. std::cout << "==================" << std::endl;
    20. }
    21. }
    22. int creat_user(MYSQL* pDB){ //创建新用户
    23. std::string sql = "CREATE USER 'fc'@'localhost' IDENTIFIED BY ''";
    24. int ret = mysql_real_query(pDB, sql.c_str(), (unsigned long)sql.size());
    25. if (ret != 0) {
    26. std::cout << "mysql error:" << mysql_error(pDB) << std::endl;
    27. return -1;
    28. }
    29. return 0;
    30. }
    31. int grant_userpower(MYSQL* pDB) { //授予用户权限
    32. std::string sql = "GRANT ALL PRIVILEGES ON *.* TO 'fc'@'localhost' with grant option";
    33. int ret = mysql_real_query(pDB, sql.c_str(), (unsigned long)sql.size());
    34. if (ret != 0) {
    35. std::cout << "mysql error:" << mysql_error(pDB) << std::endl;
    36. return -1;
    37. }
    38. return 0;
    39. }
    40. int creat_database(MYSQL* pDB) { //创建数据仓库
    41. std::string sql = "CREATE DATABASE hello";
    42. int ret = mysql_real_query(pDB, sql.c_str(), (unsigned long)sql.size());
    43. if (ret != 0) {
    44. std::cout << "mysql error:" << mysql_error(pDB) << std::endl;
    45. return -1;
    46. }
    47. return 0;
    48. }
    49. int use_database(MYSQL* pDB) { //选择数据仓库
    50. std::string sql = "use hello;";
    51. int ret = mysql_real_query(pDB, sql.c_str(), (unsigned long)sql.size());
    52. if (ret != 0) {
    53. std::cout << "mysql error:" << mysql_error(pDB) << std::endl;
    54. return -1;
    55. }
    56. return 0;
    57. }
    58. int grant_database_power(MYSQL* pDB) { //授予仓库权限
    59. std::string sql = "GRANT ALL ON hello.* TO 'fc'@'localhost'";
    60. int ret = mysql_real_query(pDB, sql.c_str(), (unsigned long)sql.size());
    61. if (ret != 0) {
    62. std::cout << "mysql error:" << mysql_error(pDB) << std::endl;
    63. return -1;
    64. }
    65. return 0;
    66. }
    67. int create_table(MYSQL* pDB) { //创建数据库的表
    68. std::string sql = "CREATE TABLE IF NOT EXISTS `hello` (`num` char(16) PRIMARY KEY)engine=InnoDB default charset=UTF8MB4;";
    69. int ret = mysql_real_query(pDB, sql.c_str(), (unsigned long)sql.size());
    70. if (ret != 0) {
    71. std::cout << "mysql error:" << mysql_error(pDB) << std::endl;
    72. return -1;
    73. }
    74. return 0;
    75. }
    76. int insert_data(MYSQL* pDB) { //插入数据库数据
    77. std::string sql = "insert into `hello` (`编号`) values (\"9527\");";
    78. int ret = mysql_real_query(pDB, sql.c_str(), (unsigned long)sql.size());
    79. if (ret != 0) {
    80. std::cout << "mysql error:" << mysql_error(pDB) << std::endl;
    81. return -1;
    82. }
    83. return 0;
    84. }
    85. int delete_data(MYSQL* pDB) { //删除所筛选的数据
    86. std::string sql = "delete from `hello` where `编号`=\"9527\";";
    87. int ret = mysql_real_query(pDB, sql.c_str(), (unsigned long)sql.size());
    88. if (ret != 0) {
    89. std::cout << "mysql error:" << mysql_error(pDB) << std::endl;
    90. return -1;
    91. }
    92. return 0;
    93. }
    94. int up_data(MYSQL* pDB) { //修改所筛选的数据
    95. std::string sql = "update `hello` set age=30 where `编号`=\"9527\";";
    96. int ret = mysql_real_query(pDB, sql.c_str(), (unsigned long)sql.size());
    97. if (ret != 0) {
    98. std::cout << "mysql error:" << mysql_error(pDB) << std::endl;
    99. return -1;
    100. }
    101. return 0;
    102. }
    103. int make_query(MYSQL* pDB) { //查询数据库中的数值
    104. std::string sql = "select * from `hello`;";
    105. int ret = mysql_real_query(pDB, sql.c_str(), (unsigned long)sql.size());
    106. if (ret != 0) {
    107. std::cout << "mysql error:" << mysql_error(pDB) << std::endl;
    108. return -1;
    109. }
    110. MYSQL_RES* result = mysql_store_result(pDB);
    111. if (result != NULL) {
    112. show_result(result); //展示数据
    113. mysql_free_result(result); //释放结果,与use_result相互对应
    114. }
    115. return 0;
    116. }
    117. int fe() {
    118. setlocale(LC_ALL, "en_GB.UTF-8"); //设置控制台编码
    119. MYSQL* mysql = new MYSQL();
    120. MYSQL* pDB = mysql_init(mysql); //初始化mysql对象
    121. //这里两个变量 mysql和pDB 两个变量记录(指向)同一个值避免初始化失败后返回NULL指针内存泄漏的风险
    122. if (pDB == NULL) {
    123. std::cout << "mysql_init failed!" << std::endl;
    124. return -1;
    125. }
    126. pDB = mysql_real_connect(pDB, "localhost", "root", "1234", "mysql", 3306, NULL, 0);
    127. //连接数据库
    128. std::cout << pDB << std::endl;
    129. if (pDB) {
    130. //creat_user(pDB);
    131. //grant_userpower(pDB);
    132. //creat_database(pDB);
    133. //grant_database_power(pDB);
    134. //获取SQL的数据
    135. //use_database(pDB);
    136. //make_query(pDB);
    137. }
    138. mysql_close(pDB);
    139. delete(mysql);
    140. return 0;
    141. }
    142. int main()
    143. {
    144. fe();
    145. return 0;
    146. }

     

  • 相关阅读:
    基于DBACAN的道路轨迹点聚类
    欧洲汽车制造商押注电力合成燃料 | 2023中国可持续燃料峰会
    MTK刷机工具 SP Flash Tool linux 版本安装失败
    C++中的Vector容器:动态数组的魅力
    Deepin常用环境配置
    Squid代理服务器应用
    [架构之路-59]:目标系统 - 平台软件 - 基础中间件 - POSIX(可移植操作系统接口)与标准库函数libc
    PHP 定时任务获取微信 access_token
    信奥中的数学之入门组(面向小学四年级至六年级以及初一学生)
    Oracle-执行计划
  • 原文地址:https://blog.csdn.net/nidayededaye2/article/details/133321838