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

news2024/12/27 2:35:06

      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,指针给NULL
    mysql=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,指针给NULL
    mysql=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.coloradmin.cn/o/1859622.html

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

相关文章

Hadoop04【集群环境搭建】

1 dfs.secondary.http.address hadoop-node01:50090 4.mapred-site.xml 首先需要将文件名称修改了。原文件名称为mapred-site.xml.template。指定MapReduce的资源调度方式为yarn。 mapreduce.framework.name yarn 5.yarn-site.xml 指定ResourceManager(yarn的老大)的地址和…

Maven编译打包时报“PKIX path building failed”异常

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 方法11.报错信息2.InstallCert.java3.生成证书文件 jssecacerts4.复制 jssecacerts 文件5. 然后重启Jenkins 或者maven即可 方法21.下载证书2. 导入证书执行keytool…

.NET使用原生方法实现文件压缩和解压

前言 在.NET中实现文件或文件目录压缩和解压可以通过多种方式来完成&#xff0c;包括使用原生方法&#xff08;System.IO.Compression命名空间中的类&#xff09;和第三方库&#xff08;如&#xff1a;SharpZipLib、SharpCompress、K4os.Compression.LZ4等&#xff09;。本文我…

排序算法(C语言版)

前言 排序作为生产环境中常见的需求之一&#xff0c;对整个产品有举足轻重的影响&#xff0c;可以说使用一个合适的排序算法是业务逻辑中比较重要的一部分。今天我们就来介绍常见的排序算法以及实现 排序 所谓排序无非就是按照特定的规则对一组数据就行顺序化。 常见的排序有…

柠檬班车载测试视频课程

这门课程将教授学员如何进行车载测试视频拍摄。学习者将学习如何选择合适的拍摄设备、构思拍摄场景、拍摄技巧和后期制作等内容。课程结合实例演练和个性化指导&#xff0c;帮助学员掌握车载测试视频拍摄的关键技能&#xff0c;提升视频制作能力。无论您是初学者还是有经验者&a…

从移动切换到电信IP:详细介绍两种方法

在当前的互联网环境中&#xff0c;用户可能会因为各种原因需要切换网络服务提供商&#xff0c;比如从移动切换到电信。这种切换不仅涉及到网络服务的变更&#xff0c;还可能意味着IP地址的改变。那么&#xff0c;移动的怎么切换成电信的IP&#xff1f;下面一起来了解一下吧。 方…

React:tabs或标签页自定义右击菜单内容,支持内嵌iframe关闭菜单方案

React&#xff1a;tabs或标签页自定义右击菜单内容&#xff0c;支持内嵌iframe关闭菜单方案 不管是react、vue还是原生js&#xff0c;原理是一样的。 注意如果内嵌iframe情况下&#xff0c;iframe无法使用事件监听&#xff0c;但是可以使用iframe的任何点击行为都会往父级wind…

Python | Leetcode Python题解之第169题多数元素

题目&#xff1a; 题解&#xff1a; class Solution:def majorityElement(self, nums: List[int]) -> int:count 0candidate Nonefor num in nums:if count 0:candidate numcount (1 if num candidate else -1)return candidate

查看es p12证书文件过期方法

查看证书过期时间: openssl pkcs12 -in elastic-certificates.p12 -nokeys -out elastic-certificates.crt (需要输入证书生成时配置密码) openssl x509 -enddate -noout -in elastic-certificates.crt

Elasticsearch 使用误区之一——将 Elasticsearch 视为关系数据库!

Elasticsearch 是一个强大的工具&#xff0c;尤其在全文检索、实时分析、机器学习、地理数据应用、日志和事件数据分析、安全信息和事件管理等场景有大量的应用。 然而&#xff0c;Elastic Stack 技术栈的选型及应用效能取决于正确的使用方式。选型错误或者误用 Elasticsearch …

如何在Windows系统部署Terraria私服并配置公网地址实现远程联机

文章目录 前言1. 下载Terraria私服2. 本地运行Terraria 私服3. 本地Terraria私服连接4. Windwos安装Cpolar 工具5. 配置Terraria远程联机地址6. Terraria私服远程联机7. 固定远程联机地址8. 固定的联机地址测试 前言 本文将为你详细介绍在本地如何运行泰拉瑞亚本地私服和结合C…

Recovery

Steal&#xff1a;允许未提交的事务写到磁盘上 Force&#xff1a;在事务提交之前该事务所有更新必须被写到磁盘上 No-StealForce 性能差&#xff0c;需要等待修改被写到磁盘上才能顺利commit 不需要undo&#xff0c;因为aborted事务不会被写到磁盘上 不需要redo&#xff0…

Ubuntu Apache2 搭建Gerrit 环境

一、前言 时隔多年&#xff0c;好久没有更新CSDN 博客了&#xff0c;主要原因有如下两点&#xff1a; 1、平时工作繁忙&#xff0c;无暇更新。 2、工作内容涉及信息安全&#xff0c;一些工作经验积累不便更新到互联网上。 最近一直在折腾搭建Gerrit 环境&#xff0c;最开始…

红酒邂逅时尚,品味生活的双重魅力,引领潮流新风尚

在繁华的都市中&#xff0c;红酒与时尚如同一对孪生姐妹&#xff0c;共同诠释着品味生活的双重魅力。红酒&#xff0c;那深邃的色泽中蕴藏着千年的历史与文化&#xff1b;时尚&#xff0c;那流转的光影中凝聚着时代的潮流与个性。当两者相遇&#xff0c;便碰撞出了特别的火花&a…

BEVDistill

摘要 将激光雷达检测器纳入多视图 3D 物体检测&#xff0c;在 BEV 空间中统一图像和激光雷达特征&#xff0c;让图像BEV特征自适应学习点云BEV特征。 背景 LiDAR 点可捕获精确的 3D 空间信息&#xff0c;为基于相机的目标检测提供自然指导。鉴于此&#xff0c;最近的相关工作…

Handling `nil` Values in `NSDictionary` in Objective-C

Handling nil Values in NSDictionary in Objective-C When working with Objective-C, particularly when dealing with data returned from a server, it’s crucial (至关重要的) to handle nil values appropriately (适当地) to prevent unexpected crashes. Here, we ex…

ModbusRTU协议报文解析

ModbusRTU协议报文解析 报文格式&#xff1a; 设备地址/从站地址&#xff1a; 1个字节 指定目标设备地址&#xff08;从站地址&#xff09; 功能码&#xff1a;1个字节 功能码在modbus协议用于表示信息帧的功能&#xff0c;例如读取线圈状态、读取寄存器等。 数据&#xff…

SSRF漏洞原理与案例分析

一、什么是SSRF漏洞 SSRF (Server-Side Request Forgery&#xff1a;服务器端请求伪造)是一种由攻击者构造请求&#xff0c;由服务端发起请求的安全漏洞。一般情况下&#xff0c;SSRF攻击的目标是外网无法访问的内部系统(正因为请求是由服务端发起的&#xff0c;所以服务端能请…

论文速递 | Management Science 4月文章合集(下)

编者按 在本系列文章中&#xff0c;我们梳理了运筹学顶刊Management Science在2024年4月份发布有关OR/OM以及相关应用的13篇文章的基本信息&#xff0c;旨在帮助读者快速洞察领域新动态。本文为第二部分&#xff08;2/2&#xff09;。 推荐文章1 ● 题目&#xff1a;Social Le…

HarmonyOS应用开发——Hello World

下载 HUAWEI DevEco Studio: https://developer.harmonyos.com/cn/develop/deveco-studio/#download 同意&#xff0c;进入配置页面&#xff1a; 配置下载源以及本地存放路径&#xff0c;包括nodejs和ohpm: 配置鸿蒙SDK路径&#xff1a; 接受协议&#xff1a; 确认无误后&#…