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.一行:delete from user_data where name = "wen";
2.整张表:drop table user_data;
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)
描述:
分配或初始化与mysql_real_connect()相适应的MYSQL对象。如果mysql是NULL指针,该函数将分配、初始化、并返回新对象。否则,将初始化对象,并返回对象的地址。如果mysql_init()分配了新的对象,当调用mysql_close()来关闭连接时。将释放该对象。
返回值:
初始化的MYSQL*句柄。如果无足够内存以分配新的对象,返回NULL。
错误:
在内存不足的情况下,返回NULL。
2.mysql_real_connect
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)
描述:
mysql_real_connect()尝试与运行在主机上的MySQL数据库引擎建立连接。
参数:
第1个参数应是已有MYSQL结构的地址。
“host”的值必须是主机名或IP地址。
“user”参数包含用户的MySQL登录ID。
“passwd”参数包含用户的密码。
“db”是数据库名称。
最后三个填0,NULL,0
3.mysql_real_query
int mysql_real_query(MYSQL *mysql, const char *query, unsigned long length)
描述:
执行由“query”指向的SQL查询,它应是字符串长度字节“long”。
如果希望知道查询是否应返回结果集,可使用mysql_field_count()进行检查
返回值:
如果查询成功,返回0。如果出现错误,返回非0值。
4.mysql_store_result
MYSQL_RES *mysql_store_result(MYSQL *mysql)
描述:
对于成功检索了数据的每个查询(SELECT、SHOW、DESCRIBE、EXPLAIN、CHECK TABLE等),必须调用mysql_store_result()。
可以调用mysql_fetch_row()来获取结果集中的行,或调用mysql_row_seek()和mysql_row_tell()来获取或设置结果集中的当前行位置。
一旦完成了对结果集的操作,必须调用mysql_free_result()。
返回值:
具有多个结果的MYSQL_RES结果集合。如果出现错误,返回NULL。
5.mysql-num_rows
my_ulonglong mysql_num_rows(MYSQL_RES *result)
描述:
返回结果集中的行数。
如果使用了mysql_store_result(),可以立刻调用mysql_num_rows()。
返回值:
结果集中的行数。
6.mysql_fetch_row
MYSQL_ROW mysql_fetch_row(MYSQL_RES *result)
描述:
检索结果集的下一行。
行内值的数目由mysql_num_fields(result)给出。
可以通过调用mysql_fetch_lengths()来获得行中字段值的长度。对于空字段以及包含NULL的字段,长度为0。
返回值:
下一行的MYSQL_ROW结构。如果没有更多要检索的行或出现了错误,返回NULL。
三、关于聊天室的数据库
1.数据库 chatroom
我一共建立了四张表。
2.表 off_records
储存还未读到的消息记录,在读到后会再次表中删除
3.表 records
储存消息记录
4.表 friends
储存人与人、人与群之间的关系
1:好友
2:屏蔽
3:群成员
4:群主
5:群管理员
5.表 user_data
储存用户名和用户密码
三、数据库优点
1、实现数据共享:数据共享包含所有用户可同时存取数据库中的数据,也包括用户可以用各种方式通过接口使用数据库,并提供数据共享。
2、减少数据的冗余度:同文件系统相比,由于数据库实现了数据共享,从而避免了用户各自建立应用文件。减少了大量重复数据,减少了数据冗余,维护了数据的一致性。
3、保持数据的独立性:数据的独立性包括逻辑独立性(数据库中数据库的逻辑结构和应用程序相互独立)和物理独立性(数据物理结构的变化不影响数据的逻辑结构)。
4、数据实现集中控制:文件管理方式中,数据处于一种分散的状态,不同的用户或同一用户在不同处理中其文件之间毫无关系。利用数据库可对数据进行集中控制和管理,并通过数据模型表示各种数据的组织以及数据间的联系。
5、数据一致性和可维护性,以确保数据的安全性和可靠性:主要包括:安全性控制、完整性控制、并发控制,使在同一时间周期内,允许对数据实现多路存取,又能防止用户之间的不正常交互作用。
6、故障恢复:由数据库管理系统提供一套方法,可及时发现故障和修复故障,从而防止数据被破坏。数据库系统能尽快恢复数据库系统运行时出现的故障,可能是物理上或是逻辑上的错误。比如对系统的误操作造成的数据错误等。