学习笔记12

学习笔记12

教材知识点总结

14.1 MySQL简介

  • 关系数据库系统:数据存储在表中,表由多个行和列组成

  • 表之间互相关联,关系结构使得可在表上查询来检索信息并修改数据库中的数据

  • MySQL:开源数据库管理系统,有服务器和客户机组成

14.2 安装MySQL

  • Ubuntu Linux:

  • sudo apt-get install mysql-server:mysql-server包包括一个MySOL服务器和一个客户机。在安装MySOL时它会询问根用户密码。用户可以使用与Ubuntu相同的登录密码。安装MySOL后,可通过运行脚本对其进行配置以获得更好的安全性。

  • mysql secure installation:要得到简单和标准的安全设置,可以按 Y,然后按 ENTER,以接受所有问题的默认值。

  • Slackware Linux

  1. 设置mycnf:MySQL在启动时加载一个名为mycnf的配置文件
  2. 安装所需数据库:MySQL需要一个所需数据库集,用于用户识别等。
  3. 设置所需的系统权限:该步骤确保mysql用户拥有mysql系统的所有权。
  4. 通过以下操作使/etc/rcd/rcmysqld 可执行:chmod 755 /etc/rcd/rc.mysqld

14.3 使用MySQL

  • 连接到MySQL服务器:使用MySOL的第一步是运行MySQL客户机程序。从X-window终端输人MySQL客户机命令mysql,它连接到同一台计算机上默认本地主机上的MySQL服务器。

  • 连接到MySOL服务器后,即可访问MySQLshell,如mysq>提示符所示。MySQLshell类似于普通的shell。它会显示一个mysql>提示符,要求用户输入可供MySQL服务器执行的 SOL命令

  • 与普通sh类似,它还维护一个命令历史记录,允许用户通过箭头键回忆和修改先前的命令。然而,它只接受MySQL命令或MySOL脚本

  • 注意几点:

所有的 MySQL命令行末尾必须是分号
MySOL命令行不区分大小写

  • 显示数据库:

  • 新建数据库:

  • 删除数据库:

  • 选择数据库:

  • 创建表:

  • 删除表

  • 插入行:

  • 删除行:

  • 更新表

  • 修改表:

  • 关联表:

  • 连接操作:

  • 数据库关系图:

  • 脚本:与普通Unix/Linuxsh一样,MySQLshell也可以接受和执行脚本文。MySQL脚本文件的后缀是sql。它们包含MySQL 服务器要执行的MySQL命令。我们可以使用MySQI脚本来创建数据库,在数据库中创建表,插入表条目和修改表内容,而不是手动输入命令行。

14.4

  • 使用C语言构建 MySQL客户机程序
  • 使用C语言连接 MySQL服务器
  1. 将MYSQL对象con定义为连接柄。它的作用类似于网络编程中的套接字。几乎所有的MySOLCAPI函数都需要这个对象指针作为参数。
  2. 调用mysql init(&con)来初始化con对象这是规定操作。它会返回初始化对象的地址。大多数其他MySOLAPI函数会返回0,表示成功,返回非0,表示错误。
  3. 调用mysql real connect0,以连接到远程服务器。
  • 使用c语言构建MySQL数据库
  • 使用c语言检索MySQL查询结果

代码实现

  • 服务器客户端连接
#include<stdio.h>
#include<pthread.h>
#define NUM 5
void *print_msg(void *);
int main()
{
    pthread_t t1,t2;
    pthread_create(&t1,NULL,print_msg,(void*)"hello");
    pthread_create(&t2,NULL,print_msg,(void*)"world\n");
    pthread_join(t1,NULL);
    pthread_join(t2,NULL);
    printf("t1,t2 finished!\n");
    return 0;
}
void *print_msg(void *msg)
{
    char *cp = (char *) msg;
    int i;
    for(i=0;i<NUM;i++)
    {
        printf("%s",cp);
        fflush(stdout);
        sleep(1);
    }
    return NULL;
}

  • MySQL
#include <stdio.h>
#include <stdlib.h>
#include <mysql.h>

int main() {
  MYSQL *conn;
  MYSQL_RES *res;
  MYSQL_ROW row;

  // 连接到 MySQL 数据库
  conn = mysql_init(NULL);
  if (conn == NULL) {
    fprintf(stderr, "%s\n", mysql_error(conn));
    exit(1);
  }

  if (!mysql_real_connect(conn, "localhost", "user_name", "password", "database_name", 0, NULL, 0)) {
    fprintf(stderr, "%s\n", mysql_error(conn));
    mysql_close(conn);
    exit(1);
  }

  // 执行 SQL 查询
  if (mysql_query(conn, "SELECT * FROM my_table")) {
    fprintf(stderr, "%s\n", mysql_error(conn));
    mysql_close(conn);
    exit(1);
  }

  // 获取查询结果
  res = mysql_use_result(conn);

  // 输出结果
  while ((row = mysql_fetch_row(res)) != NULL) {
    printf("%s %s %s\n", row[0], row[1], row[2]);
  }

  // 释放资源
  mysql_free_result(res);
  mysql_close(conn);

  return 0;
}

苏格拉底挑战

  • MySQL



  • c语言编程





posted @ 2023-12-03 12:36  20211301郑润芃  阅读(1)  评论(0编辑  收藏  举报