当前位置:   article > 正文

MYSQL操作+C语言API_c mysql api

c mysql api

MYSQL

一、基础用法

1.登陆

mysql -u root -p

2.建数据库

create database try default charset=utf8;

default charset=utf8使数据库可以使用中文。

3.进入数据库

use chatroom;

4.建表

create table user_data(name varchar(20),password varchar(20));

5.查看

select *from user_data;

6.删除

  1. 1.一行:delete from user_data where name = "wen";
  2. 2.整张表:drop table user_data;
  3. 3.数据库:drop database chatroom;

7.插入

insert into user_data values("lin","1234");

8.更新

update user_data set passwd = 111 where name = "lin";

二、C语言API

1.mysql_init

MYSQL *mysql_init(MYSQL *mysql)
  1. 描述:
  2. 分配或初始化与mysql_real_connect()相适应的MYSQL对象。如果mysql是NULL指针,该函数将分配、初始化、并返回新对象。否则,将初始化对象,并返回对象的地址。如果mysql_init()分配了新的对象,当调用mysql_close()来关闭连接时。将释放该对象。
  3. 返回值:
  4. 初始化的MYSQL*句柄。如果无足够内存以分配新的对象,返回NULL
  5. 错误:
  6. 在内存不足的情况下,返回NULL

2.mysql_real_connect

  1. MYSQL *mysql_real_connect(MYSQL *mysql, const char *host, const char *user, const char *passwd, const char *db, unsigned int port, const char *unix_socket, unsigned long client_flag)
  1. 描述:
  2. mysql_real_connect()尝试与运行在主机上的MySQL数据库引擎建立连接。
  3. 参数:
  4. 1个参数应是已有MYSQL结构的地址。
  5. “host”的值必须是主机名或IP地址。
  6. “user”参数包含用户的MySQL登录ID。
  7. “passwd”参数包含用户的密码。
  8. “db”是数据库名称。
  9. 最后三个填0NULL0

3.mysql_real_query

  1. int mysql_real_query(MYSQL *mysql, const char *query, unsigned long length)
  1. 描述:
  2. 执行由“query”指向的SQL查询,它应是字符串长度字节“long”。
  3. 如果希望知道查询是否应返回结果集,可使用mysql_field_count()进行检查
  4. 返回值:
  5. 如果查询成功,返回0。如果出现错误,返回非0值。

4.mysql_store_result

MYSQL_RES *mysql_store_result(MYSQL *mysql)
  1. 描述:
  2. 对于成功检索了数据的每个查询(SELECTSHOWDESCRIBE、EXPLAIN、CHECK TABLE等),必须调用mysql_store_result()。
  3. 可以调用mysql_fetch_row()来获取结果集中的行,或调用mysql_row_seek()和mysql_row_tell()来获取或设置结果集中的当前行位置。
  4. 一旦完成了对结果集的操作,必须调用mysql_free_result()。
  5. 返回值:
  6. 具有多个结果的MYSQL_RES结果集合。如果出现错误,返回NULL

5.mysql-num_rows

my_ulonglong mysql_num_rows(MYSQL_RES *result)
  1. 描述:
  2. 返回结果集中的行数。
  3. 如果使用了mysql_store_result(),可以立刻调用mysql_num_rows()。
  4. 返回值:
  5. 结果集中的行数。

6.mysql_fetch_row

MYSQL_ROW mysql_fetch_row(MYSQL_RES *result)
  1. 描述:
  2. 检索结果集的下一行。
  3. 行内值的数目由mysql_num_fields(result)给出。
  4. 可以通过调用mysql_fetch_lengths()来获得行中字段值的长度。对于空字段以及包含NULL的字段,长度为0
  5. 返回值:
  6. 下一行的MYSQL_ROW结构。如果没有更多要检索的行或出现了错误,返回NULL

三、关于聊天室的数据库

1.数据库 chatroom

我一共建立了四张表。
在这里插入图片描述

2.表 off_records

储存还未读到的消息记录,在读到后会再次表中删除
在这里插入图片描述

3.表 records

储存消息记录
在这里插入图片描述

4.表 friends

储存人与人、人与群之间的关系

  1. 1:好友
  2. 2:屏蔽
  3. 3:群成员
  4. 4:群主
  5. 5:群管理员

在这里插入图片描述

5.表 user_data

储存用户名和用户密码
在这里插入图片描述

三、数据库优点

1、实现数据共享:数据共享包含所有用户可同时存取数据库中的数据,也包括用户可以用各种方式通过接口使用数据库,并提供数据共享。

2、减少数据的冗余度:同文件系统相比,由于数据库实现了数据共享,从而避免了用户各自建立应用文件。减少了大量重复数据,减少了数据冗余,维护了数据的一致性。

3、保持数据的独立性:数据的独立性包括逻辑独立性(数据库中数据库的逻辑结构和应用程序相互独立)和物理独立性(数据物理结构的变化不影响数据的逻辑结构)。

4、数据实现集中控制:文件管理方式中,数据处于一种分散的状态,不同的用户或同一用户在不同处理中其文件之间毫无关系。利用数据库可对数据进行集中控制和管理,并通过数据模型表示各种数据的组织以及数据间的联系。

5、数据一致性和可维护性,以确保数据的安全性和可靠性:主要包括:安全性控制、完整性控制、并发控制,使在同一时间周期内,允许对数据实现多路存取,又能防止用户之间的不正常交互作用。

6、故障恢复:由数据库管理系统提供一套方法,可及时发现故障和修复故障,从而防止数据被破坏。数据库系统能尽快恢复数据库系统运行时出现的故障,可能是物理上或是逻辑上的错误。比如对系统的误操作造成的数据错误等。

(501条消息) MYSQL操作+C语言API_Nubula-Stars的博客-CSDN博客

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/582719
推荐阅读
相关标签
  

闽ICP备14008679号