MySQL数据库(二):数据库基本操作

      MySQL是一种流行的关系型数据库管理系统,广泛用于Web应用和各种数据存储需求。通过本次介绍,您将学习如何进行MySQL数据库的基本操作,包括创建数据库和表、插入和查询数据、更新和删除记录。这些基础知识将为您打下坚实的数据库操作基础。

目录

一、数据库的登录和退出

 二、查看所有数据库

三、显示数据库版本

四、显示时间

五、创建数据库

六、查看创建数据库的语句

七、查看当前使用的数据库

八、查看当前用户

九、指定使用某个数据库

十、删除数据库

十一、数据表的操作(重点掌握增删改查)

11.0 查看当前数据库中所有表

11.1  创建表

11.2 查看表结构

11.3  向表中插入数据

11.4 更新数据/修改操作

11.5  删除数据

十二、安装开发库

十三、c语言访问mysql

 13.1 连接数据库使用的头文件和库文件

13.2 初始化连接句柄

13.3 连接数据库

13.4 关闭连接

13.5 执行sql语句 

十四、客户端使用libmysqlclient库与mysql数据库进行连接实验

十五、如何使用图形化界面操作数据库


一、数据库的登录和退出

连接数据库: mysql  -u用户名   -h主机地址(省略代表本机)   -p密码  

      注意:这里的mysql就是指mysql的客户端,服务器端是mysqld

 二、查看所有数据库

           命令:show databases; 查看数据库里有哪些小的数据库 ,要注意所有sql语句结尾都有 ‘;’分号

三、显示数据库版本

       命令:select version();显示当前数据库mysql的版本

数据库版本有5.6 、5.7版本,然后直接更新到8.0版本,中间的都没有。有时候需要注意版本问题。

四、显示时间

      命令:select now();查看当前时间

五、创建数据库

创建数据库 创建数据库时可以指定编码,命令:create database 数据库名;或者:create database 数据库名 charset=utf8;

六、查看创建数据库的语句

     命令:show create database 数据库名

七、查看当前使用的数据库

       当我们连接好数据库之后,肯定要指定要对里面的哪个数据库进行操作,这个命令可以方便查看我们处在哪个数据库之中;查看当前使用的是哪个数据库 :select database(); 如下图为null代表没有选择使用的数据库。

八、查看当前用户

      查看当前登录的是哪个用户:select user();

九、指定使用某个数据库

         登录到mysql后,里面创建有很多数据库,选择要使用的某一个数据库,命令为: use 数据库名

十、删除数据库

       删除数据库: drop database 数据库名

十一、数据表的操作(重点掌握增删改查)

11.0 查看当前数据库中所有表

          执行命令: show tables;

11.1  创建表

      我们存储的数据实际上是存储在数据表上的,因此,我们就必须要会创建数据表。创建表时,需要指定各个字段的类型,常见类型如下:

创建表的命令 : create table 数据库表名字 ( 字段 类型 约束 ); 括号里面可以有多个字段,约束可以省略。

11.2 查看表结构

       查看表结构也就是的各个字段的信息。

11.3  向表中插入数据

11.4 更新数据/修改操作

         使用update 更新记录,示例如下:

11.5  删除数据

        使用delete删除表中的行,可以删除指定行,也可以删除所有行

十二、安装开发库

  libmysqlclient是MySQL数据库的客户端库,用于与MySQL服务器进行交互。它包含一组函数,应用程序可以调用这些函数来连接到MySQL服务器、执行SQL查询、获取查询结果以及管理数据库。这些函数提供了底层接口,使开发者能够在多种编程语言(如C、C++、Python、Perl等)中使用MySQL数据库。

具体来说,libmysqlclient的作用包括:

  1. 连接管理:建立和关闭与MySQL服务器的连接。
  2. 执行查询:发送SQL查询到服务器并执行,如SELECTINSERTUPDATEDELETE等。
  3. 处理结果:获取查询结果并处理,例如遍历结果集、获取字段信息等。
  4. 事务控制:开始、提交和回滚事务。
  5. 错误处理:提供错误信息和状态码,帮助开发者处理和调试问题。

总之,libmysqlclient是一个强大的工具,帮助开发者通过编程语言直接与MySQL数据库进行高效交互和管理。

安装开发c/c++的库,命令:apt install libmysqlclient-dev

十三、c语言访问mysql

 13.1 连接数据库使用的头文件和库文件

#include <mysql/mysql.h>
有些也在:#include <mysql.h>

       程序中使用了访问mysql的有关函数接口,需要在编译链接时指定库名: linux平台为 -lmysqlclient

13.2 初始化连接句柄

13.3 连接数据库

13.4 关闭连接

13.5 执行sql语句 

十四、客户端使用libmysqlclient库与mysql数据库进行连接实验

#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <stdlib.h>
#include <mysql/mysql.h>int main()
{//1、创建连接句柄MYSQL mysql_con;//句柄实际是一个结构体//2、初始化连接句柄MYSQL*mysql=mysql_init(&mysql_con);if(mysql==NULL){printf("mysql init err\n");exit(1);}//3、连接数据库服务端:连接句柄、用户名字、密码、ip地址、端口、数据库名字、标志位给0,指针给NULLmysql=mysql_real_connect(mysql,"127.0.0.1","root","111111","c2024db",3306,NULL,0);if(mysql==NULL){printf("连接失败\n");exit(1);}printf("连接成功\n");//关闭连接mysql_close(mysql);exit(0);
}

如果使用代码向数据库加入一条记录,该如何做呢?这就需要使用执行sql语句的函数了

#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <stdlib.h>
#include <mysql/mysql.h>int main()
{//1、创建连接句柄MYSQL mysql_con;//句柄实际是一个结构体//2、初始化连接句柄MYSQL*mysql=mysql_init(&mysql_con);if(mysql==NULL){printf("mysql init err\n");exit(1);}//3、连接数据库服务端:连接句柄、用户名字、密码、ip地址、端口、数据库名字、标志位给0,指针给NULLmysql=mysql_real_connect(mysql,"127.0.0.1","root","111111","c2024db",3306,NULL,0);if(mysql==NULL){printf("连接失败\n");exit(1);}printf("连接成功\n");char*sql="insert into student values(1003,'小王',25)"; //插入一条记录int res=mysql_query(mysql,sql);//执行sql语句if(res!=0){printf("执行sql失败\n");exit(1);}//关闭连接mysql_close(mysql);exit(0);
}

十五、如何使用图形化界面操作数据库

        配置步骤如下:

第一步:创建远程连接用户,并且授权
create user 'root'@'%' identified WITH mysql_native_password by  '123456';
GRANT ALL PRIVILEGES ON c2024db.* To 'root'@'%';第二步:修改配置文件,绑定实际的IP以管理员身份打开配置文件所在,然后修改bind_address第三步:关闭数据库,然后再重启第四步:打开图形化界面,远程连接mysql

总结:

至此,数据库第二节就已经介绍完毕,感谢大家的阅读,更多精彩内容见后期,下期再见!

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

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

相关文章

2023国家最高科学技术奖薛其坤院士:科学家的幸福感来自于哪里

内容来源&#xff1a;量子前哨&#xff08;ID&#xff1a;Qforepost&#xff09; 文丨浪味仙 排版丨沛贤 深度好文&#xff1a;2000字丨8分钟阅读 6 月 24 日&#xff0c;2023 年度国家最高科学技术奖在京揭晓&#xff0c;薛其坤院士荣获中国科技界崇高荣誉&#xff0c;这不…

【软件下载】Camtasia Studio 2024详细安装教程视频

习惯上来说Camtasia Studio是一款简单易用的高清录屏和视频编辑软件&#xff0c;拥有录制屏幕和配音、视频的剪辑和过场动画片、添加说明字幕和水印、制作视频封面和菜单、视频压缩和播放。不得不说Camtasia是一款屏幕录制和视频剪辑软件&#xff0c;教授课程&#xff0c;培训他…

字节跳动联手博通:5nm AI芯片诞生了?

字节跳动联手博通&#xff1a;5nm AI芯片诞生了&#xff1f; 前言 就在6月24日&#xff0c;字节跳动正在与美国博通合作开发一款5纳米工艺的专用集成电路(ASIC) AI处理器。这款芯片旨在降低采购成本并确保高端AI芯片的稳定供应。 根据报道&#xff0c;尽管芯片设计工作进展顺利…

力扣SQL50 即时食物配送 II min函数 嵌套查询

Problem: 1174. 即时食物配送 II &#x1f468;‍&#x1f3eb; 参考题解 Code -- 计算立即配送的订单百分比 select round (-- 计算订单日期与客户偏好配送日期相同的订单数量sum(case when order_date customer_pref_delivery_date then 1 else 0 end) * 100 /-- 计算总订…

【linux学习十六】网络管理

网络管理器(NetworkManager)是一个动态网络的控制器与配置系统&#xff0c;它用于当网络设备可用时保持设备和连接开启并激活 默认情况下&#xff0c;CentOS/RHEL7已安装网络管理器&#xff0c;并处于启用状态。 认识网卡 ens32 ens33 ens34 ens35 一.ip相关 查询网络状态 sy…

2005年下半年软件设计师【下午题】试题及答案

文章目录 2005年下半年软件设计师下午题--试题2005年下半年软件设计师下午题--答案 2005年下半年软件设计师下午题–试题 2005年下半年软件设计师下午题–答案

「全新升级,性能更强大——ONLYOFFICE 桌面编辑器 8.1 深度评测」

文章目录 一、背景二、界面设计与用户体验三、主要新功能亮点3.1 高效协作处理3.2 共同编辑&#xff0c;毫无压力3.3 批注与提及3.4 追踪更改3.5 比较与合并3.6 管理版本历史 四、性能表现4.1 集成 AI 工具4.2 插件强化 五、用户反馈与使用案例 一、背景 Ascensio System SIA -…

JVM-类加载机制

一、基础概念 当我们用java命令运行某个类的main函数启动程序时&#xff0c;首先需要通过类加载器把该类加载到JVM。 其主要流程如下&#xff1a; 1.什么是类加载 那么什么是类加载&#xff1f; Java的类加载&#xff0c;就是把字节码格式“.class”文件加载到JVM的方法区…

48、基于深度学习的离群值输入向量(matlab)

1、基于深度学习的离群值输入向量原理及流程 基于深度学习的离群值检测的输入向量原理是通过神经网络模型对数据进行学习和表示&#xff0c;在该表示中探测异常样本。其流程大致如下&#xff1a; 数据预处理&#xff1a;将数据进行归一化处理&#xff0c;确保神经网络模型能够…

pycharm常用快捷键

详细总结了Pycharm的常用快捷键&#xff0c;下文介绍使用方法和场景, 并不需要记忆这些快捷键, 你只需要知道有这些快捷键, 再需要用的时候查看一下, 用的多了自然也就记住了,需要的朋友可以参考下 1.注释(添加/消除)(Ctrl /)这里说下Python的单行注释是 # , 多行注释是 注释内…

L59---101.对称二叉树(广搜)---Java版

1.题目描述 2.思路和知识点 &#xff08;1)根节点为空&#xff1a; 如果根节点为空&#xff0c;树是对称的。 (2)递归检查&#xff1a; isMirror 方法递归检查两个子树是否是镜像对称的。 (3)辅助函数 isMirror&#xff1a; 1)如果两个节点都为空&#xff0c;它们是镜像对称的…

react笔记-04redux篇

redux和react-redux笔记&#xff0c;以及项目中如何使用&#xff0c;对redux的封装&#xff0c;让其使用类似于vuex一样方便。 一、redux 1. redux工作流程 流程&#xff1a;创建action > dispatch分发action > 交给store > reducer加工数据返回给store 2. redux的…

LabVIEW在核磁共振实验室的应用

​核磁共振&#xff08;NMR&#xff09;实验室在进行复杂的核磁共振实验时&#xff0c;需要一个高效、灵活且易于操作的实验控制和数据采集系统。传统的NMR实验系统往往使用专门的硬件和软件&#xff0c;存在系统封闭、扩展性差、维护成本高等问题。为了解决这些问题&#xff0…

揭秘Redis中的高级数据结构:跳跃表Skiplist

Redis数据结构-跳跃表Skiplist 1. 简介1.1. Redis高性能键值存储数据库1.2. Redis的特点和优势1.3. 跳跃表Skiplist 2. 跳跃表的概念和背景2.1 跳跃表的概念2.2 跳跃表的发展历程和提出背景 3. 跳跃表的基本原理3.1 结构概述3.1.1 跳跃表的结构概述3.1.2 跳跃表的节点结构 3.2 …

Stable Diffusion【进阶篇】:真人漫改之迪士尼风格定制

大家好&#xff0c;我是极客菌 关于真人漫改是一个应用比较多的图片定制方向&#xff0c;本文以及后面的章节我们结合一些具体的大模型或者LORA来更深入的实践一下。 一. 迪士尼风格 在SD的大模型中&#xff0c;实现迪士尼或者皮卡斯风格的图片&#xff0c;首推 Disney Pix…

从零开始构建CNN模型

猫狗分类问题——从零开始构建CNN 我们将使用相同的体系结构&#xff0c;并进行一些小的更改&#xff0c;如下所示。 第一个线性层的输入尺寸发生变化&#xff0c;因为猫和狗的图像尺寸是(256,256)。添加了另一个线性层来为模型学习提供更多的灵活性。 让我们来看看实现网络架…

带你学习PID控制算法

#PID涉及相关知识 开环控制系统&#xff1a;开环系统&#xff0c;无反馈系统&#xff0c;即系统的输入不受输出的影响&#xff0c;在受到外界干扰输出效果减小&#xff0c;此时输入也不会增加&#xff0c;因为输出不会对输入施加影响&#xff0c;像是断开的环一样称为开环&…

二自由度机械臂软件系统(一)urdf和moveit2

一、urdf模型 参考链接&#xff1a;https://blog.csdn.net/weixin_45168199/article/details/105755388 这部分直接看参考链接就可以&#xff0c;主要思路如下 1、把sw中的零散零件按照机器人中连杆的分类整合成几个大零件 2、把几个大零件整合成装配体&#xff0c;并设置若干…

eNSP中静态NAT和动态NAT的配置和使用

一、静态NAT 1.拓扑图 a.新建拓扑图 b.PC端配置 PC1: PC2&#xff1a; c.路由器配置 AR1: <Huawei>system-view [Huawei]sysname R1 [R1]interface GigabitEthernet 0/0/0 [R1-GigabitEthernet0/0/0]ip address 192.168.1.254 24 [R1-GigabitEthernet0/0/0]quit…

全网最全图书管理后台系统 ---前端项目简介文档

仅供参考&#xff0c;请勿抄袭 图书管理后台系统 ---前端项目简介 Vue2基础脚手架Request http请求封装(src/utils/request.js)Axios--前端和后端的通信工具前端向后端发送请求&#xff0c;可以把数据传给后端&#xff0c;从后端提取数据 前端跨域解决方案 vue使用request.…