1.C语言连接mysql,读,写
2.视图,索引,事务
端口:3306
一.基本操作
1.源码安装
2.命令安装 :sudo su -> apt install mysql-server
查看进程是否再运行 service mysql status
停止数据库运行:service mysql stop
数据库开始运行:service mysql start
重启:service mysql restart
3.关系型数据库:
用关系模型(二位表格)组织数据的数据库
4.非关系性数据库:
非关系型的,分布的的数据库
5.安装后第一次登录:
sudo su ->mysql -uroot -p
6.更改密码:
ALTER user 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
7.远程登录:
在windows上装mysql的客户端的前提:mysql -uroot -hip地址 -p
7.1条件:
1.创建原创登录的用户
2.修改mysql配置文件,允许远程连接
8.创建远程登录用户:
create user 'root'@'%identified WTTH mysql_native_pasword by '111111;
9.查看用户和登录方式:
select user,host from mysql.user;
二.命令
1.show databases ; 显示数据库库
2.select version(); 显示当前版本
3.select now(); 显示时间
4.create database 数据库名5; 创建数据库
5.show create database 数据库名5; 查看创建三数据库时的命令
三.C语言链接数据库
1.链接数据库
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <mysql/mysql.h>
int main()
{
MYSQL mysql_con;//连接句柄
MYSQL * mysql = mysql_init(&mysql_con);
if( mysql == NULL)
{
printf("mysql init err\n");
exit(1);
}
if ( mysql_real_connect(mysql,"127.0.0.1","root","123456","c2208db",3306,NULL,0) == NULL)
{
printf("connect err\n");
exit(1);
}
printf("连接成功\n");
//char* sql = "insert into student values(1003,'小李',33)";
//char* sql = "update student set age=99 where id=1003";
char* sql = "delete from student where id=1003";
if ( mysql_query(mysql,sql) != 0 )
{
printf("执行sql语句失败\n");
}
mysql_close(mysql);
exit(0);
}
2.增加访问
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <mysql/mysql.h>
int main()
{
MYSQL mysql_con;
MYSQL * mysql = mysql_init(&mysql_con);
if ( mysql == NULL )
{
printf("mysql init err\n");
exit(1);
}
if ( mysql_real_connect(mysql,"127.0.0.1","root","123456","c2208db",3306,NULL,0) == NULL )
{
printf("connect err\n");
exit(1);
}
printf("连接成功\n");
char * sql = "select name from student where age < 18";
if ( mysql_query(mysql,sql) != 0 )
{
printf("query err\n");
mysql_close(mysql);
exit(1);
}
MYSQL_RES * r = mysql_store_result(mysql);
if ( r == NULL )
{
printf("获取结果集失败\n");
mysql_close(mysql);
exit(1);
}
int num = mysql_num_rows(r);
if( num == 0)
{
printf("没有记录\n");
}
else
{
printf("有%d条记录\n",num);
}
int count = mysql_field_count(mysql);
printf("列数:%d\n",count);
for(int i = 0; i < num; i++ )
{
MYSQL_ROW row = mysql_fetch_row(r);
for(int j = 0; j < count; j++)
{
printf("%s ",row[j]);
}
printf("\n");
}
mysql_free_result(r);
mysql_close(mysql);
exit(0);
}