LINUX中MYSQL的使用

LINUX中MYSQL的使用

MYSQL的数据类型

bool: 布尔类型 0 或者 1

CHAR: 单字符的字符

CHAR(n):多字节字符

VARCHAR(n):可变长度的字符型

TINYINT : 单字节整型

SMALLINT: 双字节整型

MEDIUMINT: 三字节整型

INT: 四字节整型

BIGINT: 八字节整型

FLOAT: 浮点型

DOUBLE: 双精度浮点型

DATE: 日期类型

​ 2025-06-17

​ yyyy-mm-dd

时间类型

​ 10:19:20

​ HH:MM:SS

日期时间类型

​ 2025-06-17 10:19:20

​ yyyy-mm-dd HH:MM:SS

mysql 的常用词汇

database 数据库

table 表

row 行

column 列

from 来自于

select 选择

show 显示

insert 插入

delete 删除

drop 删除

where 条件

change 更改

update 更新

mysql 的显示

进入数据库

mysql -u root -p

显示数据库

show databases;

切换数据库

use + 数据库的名字;

显示表

show tables from sys;
show tables from 数据的名字;

显示列

show colums from x$waits_global_by_latency;
show columns from +表的名字;

mysql 的查找(重要)

查找表里的所有的数据

select * from x$waits_global_by_latency;
select * from 表的名字

查找部分列的信息

select events,total from x$waits_global_by_latency;
select 列名 1,列名 2 from 表名;

按照条件查找

select * from x$waits_global_by_latency where total=50;
select * from 表名 where 条件;

mysql 表的插入和创建()

数据库的创建

create database mypet;
create database 数据库的名字;

表的创建

create table mytest (name varchar(10),colour varchar(2),birth date);
create table 表名(第一列的名字 第一列的类型,第二列名 第二列的类型 ..)

插入数据到表里

顺序插入

insert into mytest values("xiaohua","b","2024-06-17");
insert into 表名 values(第一列的值,第二列的值,第三列);

乱序插入

insert into mytest (colour,name,birth)values("r","xiao","2024-07-17");
insert into 表名(列名 3,列名 1,列名 2) values(第三列值,第一列值,第二列值)

mysql 的修改

修改表的名字

alter table mytest rename test;
alter table 旧的表的名字 rename 新的表的名字;

修改列的名字

alter table test change colour new_colour varchar(10);
alter table 表名 change 旧的列名 新的列名 新的列名的格式

新增列

alter table test add sex varchar(5);
alter table 表名 add 要新增的列的名字 要新增的列的格式

删除列

alter table test drop sex1;
alter table 表名 drop 要删除的列名字;

mysql 的更新

更新数据

update test set age=1,sex="f" where new_colour="r";
update 表名 set 要设置的列=xxx 条件;

mysql 的删除

删除数据

delete from test where name="hua";
delete from 表名 条件;

删除表

drop table 表名;

删除数据库

drop database 数据库的名字

mysql 的排序

升序(默认)

select * from test order by age ASC;
select *from 表名 order by 列名 ASC;

降序

select * from test order by age DESC;
select * from 表名 order by 列名 DESC;

C 语言操作数据库

初始化数据库核心结构体

函数的功能

初始化数据库的核心结构体

函数的头文件

mysql/mysql.h

函数的原型

MYSQL *mysql_init(MYSQL *mysql)

函数的参数

MYSQL *mysql:mysql 的核心结构体指针

函数的返回值

成功返回 mysql 的核心结构体指针

失败返回 NULL

链接数据库

函数的功能

连接 mysql 数据库

函数的头文件

mysql/mysql.h

函数的原型

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 *mysql, mysql 的核心结构体

const char *host, localhost//本地

const char *user, 用户名 root

const char *passwd, 密码 1

const char *db, 数据库

unsigned int port, 端口号 0

const char *unix_socket, 套接字 NULL

unsigned long client_flag 标志 0

函数的返回值

成功返回 mysql 的核心结构体

失败返回 NULL

执行 sql 语句

函数的功能

执行 mysql 的语句

函数的原型

int mysql_query(MYSQL *mysql, const char *query)

函数的参数

MYSQL *mysql, mysql 的核心结构体

const char *query 要执行的 mysql 的语句

函数的返回值

成功返回 0

失败返回 非零

存储 sql 执行结果

函数的功能

存储 mysql 的执行结果

函数的头文件

mysql/mysql.h

函数的原型

MYSQL_RES *mysql_store_result(MYSQL *mysql)

函数的参数

MYSQL *mysql: mysql的核心结构体

函数的返回值

成功返回 mysql 结果集合结构体

失败返回 NULL

对 mysql 结果集合的操作函数

获取结果集合里的列的数目

unsigned int mysql_num_fields(MYSQL_RES* res)

获取结果集合里行的数目

my_ulonglong mysql_num_rows(MYSQL_RES *result)

获取列的信息

MYSQL_FIELD *mysql_fetch_field(MYSQL_RES *result)

获取行的数据

MYSQL_ROW mysql_fetch_row(MYSQL_RES *result)

释放 mysql 的查询的结果集合结构体

函数的功能

释放结果集合结构体

函数的头文件

mysql/mysql.h

函数的原型

void mysql_free_result(MYSQL_RES *result)

函数的参数

MYSQL_RES *result:结果集合结构体

函数的返回值

关闭数据库

函数的功能

关闭数据库

函数的头文件

mysql/mysql.h

函数的原型

void mysql_close(MYSQL *mysql) 

函数的参数

MYSQL *mysql:mysql 的核心结构体

函数的返回值

实例

#include <stdio.h>
#include <mysql/mysql.h>MYSQL * mysql=NULL;// MySQL 连接句柄MYSQL_RES * mysql_res=NULL;// 查询结果集MYSQL_FIELD * line_msg=NULL;// 字段元数据
int i,j;
int row_num,line_num;// 行数和列数
MYSQL_ROW row_msg={0};// 用于存储每一行的查询结果int main()
{//1初始化数据库mysql = mysql_init(NULL);//会分配一个新的 MYSQL 结构体if (mysql == NULL){perror("mysql_init");return -1;}//2连接到MYSQL的服务mysql = mysql_real_connect(mysql,"localhost" , "root","521125", "mytest", 0, NULL, 0); // 参数依次为:连接句柄、名主机、用户名、密码、数据库名、端口号、套接字、标志//3执行MYSQL的语句mysql_query(mysql,"select * from test;" ); // 调用 mysql_store_result() 获取查询结果集//4存储MYSQL的运行结果 到结构体里mysql_res = mysql_store_result(mysql);if (mysql_res == NULL){perror("mysql_store_result");return -1;}//5从结构体取信息line_num=mysql_num_fields(mysql_res);// 获取结果集中的列数row_num=mysql_num_rows(mysql_res); // 获取结果集中的行数printf("line_num=%d row_num=%d\n",line_num,row_num);printf("+------+--------+------------+------+\n");for(i=0;i<line_num;i++)// 遍历每一列,打印字段名称{if((i+1)==line_num)// 如果是最后一列{line_msg=mysql_fetch_field(mysql_res);// 获取当前字段的元数printf("	|%s",line_msg->name);// 打印字段名称continue;}line_msg=mysql_fetch_field(mysql_res);printf("|%s	",line_msg->name);}printf("\n");printf("+------+--------+------------+------+\n");for(i=0;i<row_num;i++) // 遍历每一行,打印行数据{row_msg=mysql_fetch_row(mysql_res);// 获取当前行的数据for(j=0;j<line_num;j++){if((j+1)==line_num)// 如果是最后一列{printf("|%s  |",row_msg[j]);continue;}printf("|%s	",row_msg[j]);}printf("\n");printf("+------+--------+------------+------+\n");}//6释放结果集合结构体mysql_free_result(mysql_res);// 调用 mysql_free_result() 释放结果集占用的内存//7关闭数据库mysql_close(mysql);// 调用 mysql_close() 关闭 MySQL 连接return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/85075.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/85075.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

打卡第48天:随机函数与广播机制

知识点回顾&#xff1a; 随机张量的生成&#xff1a;torch.randn函数卷积和池化的计算公式&#xff08;可以不掌握&#xff0c;会自动计算的&#xff09;pytorch的广播机制&#xff1a;加法和乘法的广播机制 ps&#xff1a;numpy运算也有类似的广播机制&#xff0c;基本一致 …

学习昇腾开发的第四天--基本指令

1、查看npu当前状态信息 npu-smi info 2、查看NPU的ID npu-smi info -l3、调用python python3 4、修改用户名 su - HwHiAiUser 5、查看cann版本 cat /usr/local/Ascend/ascend-toolkit/latest/compiler/version.info 6、删除文件夹 sudo rm -rf HelloWorld7、在本地环…

vue3 - 自定义hook

自定义hook 简单点来说就是将人物或者订单的所有数据和方法放在一个ts文件里面 这样便于维护 假如一个人只需要管 人物的模块 那他只需要操作usePerson.ts文件就可以了 //useDog.ts import { ref,reactive} from vue; import axios from axios;export default function(){…

【python】bash: !‘: event not found

报错 # 2. 测试smplx是否工作&#xff08;可能不需要chumpy&#xff09; python -c "import smplx; print(✅ smplx works!)"bash: !: event not found 分析 这是bash的历史扩展问题&#xff0c;感叹号被解释为历史命令。用这些方法解决&#xff1a; &#x1f680…

【Python打卡Day47】注意力热力图可视化@浙大疏锦行

可视化空间注意力热力图的意义&#xff1a; 提升模型可解释性 热力图能直观展示模型决策的依据区域&#xff0c;破除深度学习"黑箱"困境。例如在图像识别中&#xff0c;可以看到模型识别"猫"是因为关注了猫耳和胡须区域&#xff0c;识别"禁止通行&qu…

树状数组 2

L - 树状数组 2 洛谷 - P3368 Description 如题&#xff0c;已知一个数列&#xff0c;你需要进行下面两种操作&#xff1a; 将某区间每一个数加上 x&#xff1b; 求出某一个数的值。 Input 第一行包含两个整数 N、M&#xff0c;分别表示该数列数字的个数和操作的总个数。…

YOLOv2 技术详解:目标检测的又一次飞跃

&#x1f9e0; YOLOv2 技术详解&#xff1a;目标检测的又一次飞跃 一、前言 在 YOLOv1 提出后&#xff0c;虽然实现了“实时性 单阶段”的突破&#xff0c;但其在精度和小物体检测方面仍有明显不足。为了弥补这些缺陷&#xff0c;Joseph Redmon 等人在 2017 年提出了 YOLOv2…

JAFAR Jack up Any Feature at Any Resolution

GitHub PaPer JAFAR: Jack up Any Feature at Any Resolution 摘要 基础视觉编码器已成为各种密集视觉任务的核心组件。然而&#xff0c;它们的低分辨率空间特征输出需要特征上采样以产生下游任务所需的高分辨率模式。在这项工作中&#xff0c;我们介绍了 JAFAR——一种轻量级…

SamWaf 开源轻量级网站防火墙源码(源码下载)

SamWaf网站防火墙是一款适用于小公司、工作室和个人网站的开源轻量级网站防火墙&#xff0c;完全私有化部署&#xff0c;数据加密且仅保存本地&#xff0c;一键启动&#xff0c;支持Linux&#xff0c;Windows 64位,Arm64。 主要功能&#xff1a; 代码完全开源 支持私有化部署…

79Qt窗口_QDockWidget的基本使用

目录 4.1 浮动窗⼝的创建 4.2 设置停靠的位置 浮动窗⼝ 在 Qt 中&#xff0c;浮动窗⼝也称之为铆接部件。浮动窗⼝是通过 QDockWidget类 来实现浮动的功能。浮动窗 ⼝⼀般是位于核⼼部件的周围&#xff0c;可以有多个。 4.1 浮动窗⼝的创建 浮动窗⼝的创建是通过 QDockWidget…

UE/Unity/Webgl云渲染推流网址,如何与外部网页嵌套和交互?

需求分析&#xff1a;用threejs开发的数字孪生模型&#xff0c; 但是通过webgl技术网页中使用&#xff0c;因为模型数据量大&#xff0c;加载比较慢&#xff0c;且需要和其他的业务系统进行网页嵌套和交互&#xff0c;使用云渲染技术形成的推流网址&#xff0c;如何与外部网页嵌…

在Termux中搭建完整Python环境(Ubuntu+Miniconda)

蹲坑也能写python? 📱 环境准备🛠 详细搭建步骤步骤1:安装Linux容器工具步骤2:查看可用Linux发行版步骤3:安装Ubuntu系统步骤4:登录Ubuntu环境步骤5:下载Miniconda安装包步骤6:安装Miniconda⚡ 环境验证💡 使用技巧⚠️ 注意事项前言:想在吃饭、通勤甚至休息间隙…

EventSourcing.NetCore:基于事件溯源模式的 .NET Core 库

在现代软件架构中&#xff0c;事件溯源&#xff08;Event Sourcing&#xff09;已经成为一种非常流行的模式&#xff0c;尤其适用于需要高可用性和数据一致性的场景。EventSourcing.NetCore 是一个基于事件溯源模式的 .NET Core 库&#xff0c;旨在帮助开发者更加高效地实现这一…

Linux下的第一个程序——进度条(命令行版本)

文章目录 编写Linux下的第一个小程序——进度条进度条的样式前置知识回车和换行缓冲区对回车、换行、缓冲区、输出的测试代码简单的测试样例倒计时程序 进度条程序理论版本基本框架代码实现 真实版本基础框架 代码实现 编写Linux下的第一个小程序——进度条 在前面的基础开发工…

【项目】仿muduo库one thread one loop式并发服务器前置知识准备

&#x1f4da; 博主的专栏 &#x1f427; Linux | &#x1f5a5;️ C | &#x1f4ca; 数据结构 | &#x1f4a1;C 算法 | &#x1f152; C 语言 | &#x1f310; 计算机网络 |&#x1f5c3;️ mysql 本文介绍了一种基于muduo库实现的主从Reactor模型高并发服务器框架…

steam报网络错误,但电脑是网络连接的

steam报网络错误&#xff0c;但电脑是网络连接的 如&#xff1a; 解决办法&#xff1a; 关闭电脑防火墙和所有杀毒软件&#xff0c;然后重新打开steam开代理&#xff0c;可能国内有时候访问不了 首选1进行尝试 steam安装路径一定要在纯英文路径下 已ok

Vue 组合式 API 与 选项式 API 全面对比教程

一、前言&#xff1a;Vue 的两种 API 风格 Vue 提供了两种编写组件逻辑的方式&#xff1a;组合式 API (Composition API) 和 选项式 API (Options API)。理解这两种方式的区别和适用场景&#xff0c;对于 Vue 开发者至关重要。 为什么会有两种 API&#xff1f; 选项式 API&a…

HarmonyOS 应用模块化设计 - 面试核心知识点

HarmonyOS 应用模块化设计 - 面试核心知识点 在 HarmonyOS 开发面试中&#xff0c;模块化设计是必考知识点。本文从面试官角度深度解析 HarmonyOS 应用模块化设计&#xff0c;涵盖 HAP、HAR、HSP 等核心概念&#xff0c;助你轻松应对技术面试&#xff01; &#x1f3af; 面试高…

Maven高级学习笔记

分模块设计 为什么分模块设计?将项目按照功能拆分成若干个子模块&#xff0c;方便项目的管理维护、扩展&#xff0c;也方便模块间的相互调用&#xff0c;资源共享。 注意事项&#xff1a;分模块开发需要先针对模块功能进行设计&#xff0c;再进行编码。不会先将工程开发完毕&…

[创业之路-423]:经济学 - 大国竞争格局下的多维博弈与科技核心地位

在当今风云变幻的国际舞台上&#xff0c;大国竞争已成为时代的主旋律&#xff0c;其激烈程度与复杂性远超以往。这场全方位的较量&#xff0c;涵盖了制度、思想、文化、经济、科技、军事等诸多关键领域&#xff0c;每一个维度都深刻影响着大国的兴衰成败&#xff0c;而科技在其…