文章目录
- 数据库的介绍
- 有关数据库的操作
- 有关数据表的操作
- C语言访问mysql
- 事务
- 视图
- 索引
数据库的介绍
mysql数据库模型:
关系型数据库与非关系型数据库:
关系型数据库:指采用了关系模型来组织数据的数据库,关系模型就是指二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。
关系型数据库核心元素:数据行(一条记录),数据列(字段), 数据表(数据行的集合),数据库(数据表的集合)。
非关系型数据库: 指非关系型的,分布式的,且一般不保证遵循ACID原则的数据存储系统。非关系型数据库以键值对存储,且结构不固定。(ACID,指 原子性,一致性,隔离性,持久性)
有关数据库的操作
在Linux系统下连接mysql数据库:
查看所有数据库:
show databases;
创建数据库:
create database Student
使用某个数据库:
use Student;
删除数据库:
drop database Student;
有关数据表的操作
查看当前数据库中的数据表
show tables;
创建数据表
数值类型
字符串类型
日期类型:
create table student(name varchar(30),age int,num int);
查看表结构也就是的各个字段的信息
desc student;
查询表中所有数据
像表中插入、更新、删除数据
插入:insert into student value(“xiaohong”,12,01);
更新:update student set name=“xiaowang” where num=1;
删除:delete student from student where id=1;
C语言访问mysql
#include<stdlib.h>
#include<stdio.h>
#include<unistd.h>
#include<mysql/mysql.h>
#include<string.h>
int main()
{
MYSQL mysql_con;
MYSQL *mysql=mysql_init(&mysql_con);
if(mysql==NULL)
{
printf("mysql init err\n");
exit(0);
}
//连接服务器端
mysql=mysql_real_connect(mysql,"127.0.0.1","root","123456","c2203db",3306,NULL,0);
if(NULL==mysql)
{
printf("connect err\n");
exit(1);
}
//char *sql="insert into student values(1005,'小明',21)";
char *sql="select *from student ";
int res=mysql_query(mysql,sql);
if(res!=0)
{
printf("query err\n");
exit(1);
}
//获取结果集
MYSQL_RES* r=mysql_store_result(mysql);
if(NULL==r)
{
printf("result err\n");
exit(1);
}
//获取结果集有多少行记录
int num=mysql_num_rows(r);
printf("hang:%d\n",num);
int count=mysql_field_count(mysql);
printf("lie:%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);
}