【MySQL】数据库初识

news2024/9/21 16:24:46

文章目录

  • 前言
  • 一、MySQL的基本结构
  • 二、MySQL的组成
  • 三、数据库的简单使用
    • 数据库操作
    • 数据类型认知
      • 数值类型
      • 字符串类型
      • 日期类型
    • 数据库表操作
  • 总结


前言

数据库是一类软件,有MySQL、Oracle、SQL Server、Redis等作为代表,通过数据库能够对数据进行管理和组织。在本系列中主要分析以MySQL为主的关系型数据库。


一、MySQL的基本结构

MySQL是C/S 结构的程序,即客户端-服务器。基于网络的方式进行通信,通过一个服务器接收由客户端发送的请求,并返回结果给客户端。服务器处理多个客户端发送来的请求

  • 客户端(client):主动发起请求的一方。
  • 服务器(Server):被动接受请求的一方。
  • 请求(request):客户端给服务器发送的数据。
  • 响应(response):服务器返回给客户端的数据。

MySQL是负责存储和管理数据的,基于成本和持久化存储的原因,它的数据存储在硬盘中

二、MySQL的组成

MySQL的组成形式:数据库->数据表->行->列

  1. 在一个MySQL服务器上,可以有多个数据库;
  2. 每个数据库中可以有多个数据表;
  3. 每个数据表中可以有多个行;
  4. 每个行中可以有很多列。

三、数据库的简单使用

数据库操作

  1. 在安装了MySQL之后,登录进MySQL服务器中。由于服务器中有多个数据库,因此我们首先学习查看数据库。
    命令行语句为 show databases;
    在这里插入图片描述

  2. 使用数据库之前需要创建所需要的数据库,命令行为 create database + 数据库名;
    在这里插入图片描述
    在创建数据库的时候,还可以指定字符集。命令行为“create database + 数据库名 charset 字符集”
    在这里插入图片描述
    此时可以再查询所有数据库,就可以看到新创建的数据库了。
    在这里插入图片描述

  3. 删除数据库 命令行为 drop database 数据库名 一定要注意,数据库如果删了,那就是真的没了,是无法恢复过来的。

  4. 使用和选中数据库
    已经查看到数据库的列表了,接下来就是逐渐深入。即进入数据库的内部。
    命令行为 use 数据库名 在选中了数据库之后,接下来所进行的一系列操作都是针对该数据库的。

数据类型认知

在进入了对应数据库之后,接下来就是对该数据库中的表进行操作了。也是数据库中的核心操作。
首先数据库中保存的都是数据,而数据都是有数据类型的。下图引用“菜鸟教程”。
在数据类型中,int、float、double等数据类型与Java都是类似的,不再赘述。

数值类型

  1. float和double类型都存在小数,因此二者有更进阶的用法。
    FLOAT(M,D) DOUBLE(M,D)
    以float(3,1)为例,代表着数值小数长度为3,小数点后保留1位。DOUBLE同理。
  2. DECIMAL可以更加精确的存储小数,有着更高的精度。而相对应的付出的代价就是计算所花费的时间会更多。
    在这里插入图片描述

字符串类型

在字符串中,最常用的就是varchar()类型,它属于可变长的字符串类型,其中填入的参数表示能存储的最大长度。
在这里插入图片描述

日期类型

在日期中,最常用的属于DATETIME,
在这里插入图片描述

数据库表操作

在了解完数据类型的前提后,接下来开始逐步对数据表进行操作。
前提是选中了对应的数据库!!!

  1. 列出当前数据库的所有表
    使用的命令行为 show tables;
    在我使用的数据库(blog01)中,由于没有创建表,因此显示Empty。

在这里插入图片描述2. 创建表
命令行为 create table 表名(列名 类型,列名 类型,……);
以学生表为例,与Java不同,表的列名应该在前面,而数据类型跟在后面。同样的,我们需要注意设计表名/列名时不能与SQL关键字重复。
在这里插入图片描述

  1. 查看表结构
    命令行为 desc 表名
    在这里插入图片描述

  2. 删除表操作
    命令行为 drop table 表名 删除操作一直是一个危险的操作,一旦执行之后是无法还原的。
    上面的命令行是删除单个表,同样的我们可以将所有的表都删了。命令行为 drop tables;
    删除操作一定要十分慎重!!


总结

本文中简单介绍了数据库的基础操作,即对数据库、数据表进行的增删改查的基础操作。在下文中将对数据进行操作。

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

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

相关文章

六大热门及两个趋冷的网络安全趋势

AI不仅在改变威胁环境,还在改变安全团队保护其组织的方式,然而,AI并不是网络安全专业人士应该关注的唯一趋势。 在网络安全领域,与其他领域一样,AI和GenAI都是人们关注的焦点,恶意行为者正在利用AI和GenAI创造更具隐蔽性的恶意软件、更具说服力的钓鱼邮件以及更逼真的深…

DevExpress开发WPF应用实现对话框总结:编织界面的艺术之旅

在软件开发的浩瀚星空中,WPF(Windows Presentation Foundation)以其卓越的界面表现力和丰富的控件库,成为了众多开发者心中的璀璨明珠。而DevExpress,作为WPF领域的佼佼者,更是以其强大的组件库和易于集成的…

大模型时代来临:程序员如何自处,产品经理如何迎接新挑战

一名失业中的程序员,因为一次大胆的求职之举登上了微博热搜。 向瑶函花费999元,在广州地铁珠江新城站购买了一个广告位5天的使用权,用来投放自己的简历二维码,扫码就可以了解这名程序员“飘零的前半生”。 向瑶函是在2023年5月“…

灵巧守门员——代理模式(Java实现)

代理模式不仅在控制对象访问上展现了其独特的优势,还在功能扩展和系统安全性上起到了重要作用。上期我们介绍了代理模式在Python中的实现,今天,我们将继续探讨代理模式,并展示如何在Java中实现它。 什么是代理模式? …

How do you implement OpenAI GPT-3 Api Client in PHP?

题意:如何在 PHP 中实现 OpenAI GPT-3 API 客户端? 问题背景: I need help understanding the vague instructions on https://packagist.org/packages/orhanerday/open-ai 我需要帮助来理解这些模糊的说明... I downloaded the package fr…

PDF转图片新潮流,4款神器告别手动截图

在这个信息爆炸的时代,PDF文件因为能在各种设备上保持格式不变,成了我们学习和工作中的好帮手。今天,我就诚心诚意地给你推荐几款现在特别流行的PDF转图片工具。这些工具操作起来非常简单,转换速度快,而且转换出来的图…

前端工程化工具——plop的使用-生成模板页面

背景 软件列表 软件名称版本号备注vue3.2.13vue-cli5.0.8plop4.0.1 操作步骤 新建vue3工程 vue create test-plop按提示完成操作即可 modules安装工具选择&#xff1a;yarn或npm均可 安装plop模块 yarn add plop -g新建模板文件 page1/index.hbs <template><…

【启动centos报错】另一个程序已锁定文件的一部分,进程无法访问,打不开磁盘.

启动centos报错 另一个程序已锁定文件的一部分&#xff0c;进程无法访问打不开磁盘“D:\Program2\CentOS\CentOS7\CentOS7.vmdk”或它所依赖的某个快照磁盘。模块“Disk”启动失败。未能启动虚拟机。解决方法 删除.lck文件

基于InP的通用光子集成技术(四)

7.ASPIC设计环境 在光子学中引入通用晶圆方法将导致光子芯片复杂度的重大变化&#xff1a;它将把设计从器件级转移到光路级&#xff0c;这一转变发生在20世纪70年代和80年代的微电子中&#xff0c;现在也发生在PIC中。 在通用方法中&#xff0c;可以通过具有许多构建块的PDK访…

数学建模笔记(2):Topsis分析法

一.评价类问题的几个关键词 1.指标 评价一个方案或者对象我们需要有评价指标&#xff0c;即从哪几个方面进行评价。比如评价一个人在保研上的竞争力&#xff0c;我们可以从绩点&#xff0c;课外竞赛&#xff0c;科研成果&#xff0c;学生工作&#xff0c;志愿服务等几个方面来…

Qt QTabWidget之创建标签页的多页面切换

QTabWidget 用来分页显示 重要函数: 1.void setTabText(int, QString); //设置页面的名字. 2.void setTabToolTip(QString); //设置页面的提示信息. 3.void setTabEnabled(bool); //设置页面是否被激活. 4.void setTabPosition(QTabPosition::South); //设置页面名字的位置. 5.…

游标卡尺的使用

游标卡尺的使用注意事项 游标卡尺是比较精密的测量工具&#xff0c;使用时应轻拿轻放&#xff0c;不得碰撞或跌落地下。使用时不要用来测量粗糙的物体&#xff0c;以免损坏量爪。不用时应置于干燥地方防止锈蚀。测量工件时&#xff0c;卡脚测量面必须与工件的表面平行或垂直&a…

1915_开源C语言实现的通用队列

经常在工作中遇到一些队列处理的场景&#xff0c;以前要么是借用FreeRTOS这样的系统中的相关功能&#xff0c;要么是通过数组做一个简单的队列模型。但是&#xff0c;这两种方案都具有一定的局限性能&#xff0c;前者要求的FreeRTOS不见得相应的软件中有&#xff0c;而后者只能…

【C++】什么是模板?

有不懂的地方可以翻阅我之前文章&#xff01; 个人主页&#xff1a;CSDN_小八哥向前冲 所属专栏&#xff1a;CSDN_C入门 目录 模板函数 泛型编程 函数模板 类模板 模板函数 泛型编程 在之前的学习里&#xff0c;我们知道函数可以重载&#xff0c;当我们在实现多参数函数交…

【2.2】回溯算法-解含有重复数字的全排列 II

一、题目 给定一个可包含 重复数字 的序列nums&#xff0c;按任意顺序返回所有不重复的全排列。 二、求解思路及代码实现 回溯算法思路&#xff1a; 这道题目与之前讨论的全排列问题类似&#xff0c;但有一个关键的区别&#xff1a;本题中数组包含重复的数字&#xff0c;而之前…

Springboot集成Proguard生成混淆jar包

背景 当我们需要将 JAR 包交付给第三方时&#xff0c;常常担心代码可能会被反编译。因此&#xff0c;对 JAR 包进行混淆处理显得尤为重要。 市面上有许多 JAR 包源码混淆工具&#xff0c;但真正能稳定投入使用的并不多。例如&#xff0c;ClassFinal (ClassFinal: Java字节码加…

C++类和对象1

一.类的定义 1.1类的创建 类是C中用户自己建立的类型。类似于C语言中的结构体。定义类的关键字为class。格式为&#xff1a; class 类名 {成员函数成员变量…… }; class 类名称为类头&#xff0c;花括号中的称为类体。类的声明以花括号后的分号结束&#xff0c;分号不可省…

Go-Zero微服务框架下开发接口流程

目录 一&#xff1a;定义api入参和返回值 二&#xff1a;生成入参和返回值文件 三&#xff1a;定义rpc参数和返回值 四&#xff1a;生成返回值和参数 五&#xff1a;定义数据库 六&#xff1a;生成数据库文件 今天我们来讲解下如何在Go-Zero下开发一个api接口的具体流程&…

UCOSIII内存管理机制详解

目录 前言 1. 内存管理概述 2. 内存区域&#xff08;存储区&#xff09;和内存块 3. 存储区控制块&#xff08;OS_MEM&#xff09; 4. 内存管理函数 5. 内存碎片问题 6. 注意事项 7.代码实现 7.1创建内存区域 7.2申请内存 7.3释放内存 前言 UCOSIII&#xff08;即Mi…

算法的学习笔记—正则表达式匹配的动态规划算法解析

&#x1f600;前言 正则表达式是一种强大的工具&#xff0c;广泛应用于文本匹配和处理。在许多编程任务中&#xff0c;我们可能会遇到需要匹配字符串与某个特定模式的情况。本文将介绍如何使用动态规划算法实现一个支持 . 和 * 的正则表达式匹配功能&#xff0c;并以 Java 为例…