MySQL数据库的基本操作一

目录

什么是MySQL数据库?

数据库的基本操作

 数据库操作

表操作 

MySQL的增删改查

插入操作

查找操作

修改操作

删除操作


什么是MySQL数据库?

MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

在我们开始学习MySQL 数据库前,让我们先了解下RDBMS的一些术语:

  • 数据库: 数据库是一些关联表的集合。
  • 数据表: 表是数据的矩阵。在一个数据库中的表看起来像一个简单的电子表格。
  • 列: 一列(数据元素) 包含了相同类型的数据, 例如邮政编码的数据。
  • 行:一行(元组,或记录)是一组相关的数据,例如一条用户订阅的数据。
  • 冗余:存储两倍数据,冗余降低了性能,但提高了数据的安全性。
  • 主键:主键是唯一的。一个数据表中只能包含一个主键。你可以使用主键来查询数据。
  • 外键:外键用于关联两个表。
  • 复合键:复合键(组合键)将多个列作为一个索引键,一般用于复合索引。
  • 索引:使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构。类似于书籍的目录。
  • 参照完整性: 参照的完整性要求关系中不允许引用不存在的实体。与实体完整性是关系模型必须满足的完整性约束条件,目的是保证数据的一致性。

MySQL 为关系型数据, 这种所谓的"关系型"可以理解为"表格"的概念, 一个关系型数据库由一个或数个表格组成, 如图所示的一个表格:

d8a70f0a4e4b434e8fea32bed9730cf8.png

  • 表头(header): 每一列的名称;
  • 行(row): 每一行用来描述某条记录的具体信息;
  • 列(col): 具有相同数据类型的数据的集合,每一行有很多列,每个列也称为一个字段;
  • 值(value): 行的具体信息, 每个值必须与该列的数据类型相同;
  • 键(key): 键的值在当前列中具有唯一性。

数据库的基本操作

在学习前先安装好mysql客户端,后续的sql操作都是在自带的mysql客户端来进行编写的.

首先打开客户端会出现下面操作,让我们输入安装数据库的时候设置的密码

36b3e5e7f4f544d0a2bbe092e53da085.png

输入密码后出现下面界面说明登录成功

d850ab27435f41ad811bad6400dd55d2.png

 数据库操作

1.  查看当前数据库    show  databases;

        ●show 和databases 之间有一个或者多个空格

        ●使用英文分号结尾(客户端里的任何一个SQL都需要使用 分号 来结尾)

客户端允许一个sql语句分多行写,如果不写 ; 直接换行,此时客户端认为一个sql语句还没写完

2.  创建数据库   create database 数据库名 ;

        ●数据库的名字 由数字,字母和下划线组成,其中数字不能开头,名字不能是SQL中的关键字

        ●如果想用关键字作为数据库名,可以使用(反引号 `) 把数据库的名给引起来 (不建议大家使用)

        ●数据库的名字不能重复

下面创建一个 Student数据库,出现下面界面说明创建成功

1f017b67ab2946e98fc734478729e7d2.png

在创建数据库的时候可以指定 字符集 

 create database [ 数据库名 ] charset utf8 

这里我们指定的字符集是 utf8 ,utf8是通用的字符集, 使用的更广泛

在我们的编码中如果不指定字符集(用默认的) 很可能导致插入中文就插入失败

3.   选中数据库     use 数据库名;

对某个数据库进行增删改查,要先选中这个数据库,在进行操作

下面选中student数据库进行操作

efb480c0d3a24207a7ac06391829a239.png

4.   删除数据库  drop database 数据库名; 

删除操作非常非常危险,删除前一定要慎重在慎重 !!!

下面进行删除student数据库操作,出现下面界面删除成功

4b98b5072f1f443895ca1879eb1f055c.png

表操作 

1.   查看数据库中的表 : show tables;

创建一个名叫java的数据库,并查看当前数据库中的表,在对表进行操作前一定要先选中数据库9f33031f45fd46cab6b63518eeb6ea6c.png

因为当前没有创建表,所以没显示出Java数据库中的表

2.   创建表 :   create table 表名 (列名  类型, 列名 类型.......) ; 

创建表的时候需要指定列,以及列的类型,接下来认识一下数据库典型的类型

下面创建一个学生表 

4cbf84f999524544bd9cc2fe68a75333.png

数值类型

8a26ca11dfd44286bc5dd1623ec708b0.png

double(m,n)  m表示有效数字,n 表示小数点后的位数

日期和时间类型

875801803a974d29861bd1da20135d55.png

字符串类型

3d6b738e159e4d0c8f55e59e1e9c97ef.png

varchar(size) 是常用的字符串类型,作用是设置一个变长字符串,size指定的是最大长度,单位是字符

3.   查看指定表的表结构   desc 表名 ;

2ca8502242a64a1eb5df647e0c8a9f35.png

 4.   删除表:  drop table 表名 ;

下面演示删除student 表

d539ca51df134ae0a4204942538a94ee.png

MySQL的增删改查

插入操作

新增 / 插入数据 : insert into 表名 values ( 值, 值 ......) ;

括号里的内容要求  个数,类型,顺序和表头结构保持一致

下面在student 表中添加数据

bca31afd78494ace93353ab940f37b9e.png

指定列进行插入 : insert into 表名 (指定的列......)  values (值 , 值) ; 

在studebt表中给姓名和性别进行插入 

9b2caf957f784cd69c20f7422890cfee.png

一次插入多个记录 : insert into 表名 values (值 ),( 值)...(值 ) ; 

在student 表中插入两个记录

b3b74627205a471c91b1309039ef4e56.png

时间类型数据的插入 ;  使用的是datetime类型的类

在插入的时候使用形如 '2023-10-12 21:21:21'这样的格式

81658bece11044b8b94145758b484dbb.png

如果我们在插入的时候想把日期设置成当前时刻 可以用sql提供的函数 now(); 

792f0a16bfbe46d290f9ef6861d6b7e9.png

查找操作

1. 全列查找:  select * from 表名 ;

将表中的数据全部查找出来.

2. 指定列查询:  select 列名, 列名... from 表名 ;

在student表中查找name 和gender

91a7ab71774345bc9154da7b5a2aa217.png

3. 表达式查询:  在查询过程中让列和列进行简单的运算

接下来都是对下面这个表进行操作

3f330e8a880f4881b6069d6f8c271a9c.png

给所有人的数学成绩 + 10 分

9e9854489de9492192fada6a43f7dc15.png 因为mysql是一个客户端服务器结构的程序,此时这张表是一个临时表,和原始的表没有关系,显示一下就销毁了

4. 查询的时候可以指定别名. 使用 as关键字来指定别名

按照表达式查询,临时表的列名和表达式一样,在查询的时候可以指定别名,可以让我们更方便的来理解含义

下面将三个人的总成绩设置成total 

318dc716b56f499887aea5cbd6f2666e.png

5. 去重查询:  使用 distinct 关键字针对列去重(把重复的去掉)

把数学成绩中重复的去掉

169df97d2b7b43d585afdde8f3505949.pngdistinct对多个列进行去重查询的时候,要多个列都相同才能去重

6. 查询结果排序:  order by子句,指定某些列进行排序

对语文成绩进行升序排序 : 

7b2505395f5542009fc9985b96a6562a.png

如果不指定排序,mysql默认是升序排序

对英语成绩进行降序排序 使用desc  在这里desc是descend的缩写

8688498e2ded4a298a3e216b73ff9049.png

7. 条件查询  通过where子句搭配条件表达式来进行查询

   select * from 表名 where 条件表达式  或者 

   selecct 列名,列名....from 表名 where 条件表达式

 在条件查询中,别名不能作为where条件来进行查询

通过一系列的运算符来表示条件 

ae0b432ae59f4b4fa1b56dc0084359e3.png

         ●一个where中既存在and又存在 or,先执行and 在执行or 

in 运算符  查询数学成绩是 65, 83, 98分 的同学的数学成绩

a1cb7bbf973640de97ac51b3241ffaed.png

模糊查询:  like 

支持两个用法 :  

        ●使用 % 代表任意0个或者N个字符

        ●使用 _ 代表任意一个字符

查询姓孙的同学的成绩

19bb849d6cb54e0698f9a253bb648e51.png       

分页查询: limit 

只获取前三个 数据

a39609b2b8b4479f860ad521e78b8cb4.png

还可以通过 limit 搭配 offset 指定从那一列开始查询

edcea5fc149d493cbde2b55f778913c4.png

接下来写一个复杂的查询语句 (查询总分前三名的同学信息)

d862fedbf73944719fccdf9bacff8630.png

修改操作

update 表名  set 列名 = 值,列名 = 值... where 条件表达式 ;

将孙悟空的数学成绩加10分

删除操作

delete from 表名 where 条件表达式 ;  把条件匹配的操作全删除掉

把姓孙的记录全部删除

 

 

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

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

相关文章

Ceph 中的写入放大

新钛云服已累计为您分享769篇技术干货 介绍 Ceph 是一个开源的分布式存储系统,设计初衷是提供较好的性能、可靠性和可扩展性。 Ceph 独一无二地在一个统一的系统中同时提供了对象、块、和文件存储功能。 Ceph 消除了对系统单一中心节点的依赖,实现了无中…

【SQL】新建库表时,报错attempt to write a readonly database

目录 1.问题背景 2.问题原因 3.解决方式 4.结果 windows64位 Navicat sql vscode c 1.问题背景 需求是这样: 希望在调用初始化数据库方法时,查看是否有名为【POCT_PROCESS_CONFIG】的数据库表,如果没有就新建 我的数据库格式是这样 …

小谈设计模式(26)—中介者模式

小谈设计模式(26)—中介者模式 专栏介绍专栏地址专栏介绍 中介者模式分析角色分析抽象中介者(Mediator)具体中介者(ConcreteMediator)抽象同事类(Colleague)具体同事类(C…

print() 函数

二、print() 函数 这里先说一下 print() 函数,如果你是新手,可能对函数不太了解,没关系,在这里你只要了解它的组成部分和作用就可以了,后面函数这一块会详细说明的。 print() 函数由两部分构成 : 指令&a…

5、docker mysql安装

1、查看版本 docker search mysql 2、下载镜像到本地 下载镜像,本文以5.7为例 docker pull mysql:5.7 3、创建挂载目录 mkdir /usr/local/mysql 4、创建mysql容器 docker run --name mysql-test -e MYSQL_ROOT_PASSWORDroot -p 3306:3306 -d mysql –name&am…

由论文写作到知识教育传承,智者善用,扶AIGC踏新程!

在学术领域中,诚信是不可动摇的基石。但是,令人震惊的事件发生了,竟有学术论文作者将ChatGPT上操作按钮的短语「Regenerate Response」毫无保留地援引到自己的论文中,更令人惊讶的是,审稿编辑竟然未能察觉这一事实&…

spark中的shuffle简述 那些会导致shuffle的算子

shuffle操作说白了就是重分区操作 在Apache Spark中,任务之间的依赖关系主要分为两类:宽依赖(Wide Dependency)和窄依赖(Narrow Dependency)。这两者之间的主要区别在于它们对任务之间数据的依赖性以及执行…

品牌投放小红书种草笔记没有流量怎么办?

品牌做小红书种草投放,流量越大,种草笔记的转化就会越高,所以当你的小红书种草笔记没有流量的时候就要好好思索下是怎么回事,接下来伯乐网络传媒就来给大家分析问题,并提出针对性的解决方案。纯干货,建议收…

【网络编程】Linux网络编程基础与实战第二弹——Socket编程

Socket编程套接字概念套接字通讯原理 网络编程接口网络字节序sockaddr数据结构socket函数bind函数listen函数accept函数connect函数 ) Socket编程 套接字概念 Socket本身有“插座”的意思,在Linux环境下,用于表示进程间网络通信的特殊文件类型。本质为…

【TensorFlow2 之011】TF 如何使用数据增强提高模型性能?

一、说明 亮点:在这篇文章中,我们将展示数据增强技术作为提高模型性能的一种方式的好处。当我们没有足够的数据可供使用时,这种方法将非常有益。 教程概述: 无需数据增强的训练什么是数据增强?使用数据增强进行训练可视…

sts搭建springboot

sts搭建springboot 需要的软件 Apache-maven-3.3.9.rar 链接:百度网盘 请输入提取码 提取码:1xgj Spring-tool-suite-4-4.20.0.RELEASE-e4.29.0-win32.win32.x86_64.self-extracting.jar 链接:百度网盘 请输入提取码 提取码:p…

初级问题 程序中的变量是指什么?中级问题 把若干个数据沿直线排列起来的数据结构叫作什么?高级问题 栈和队列的区别是什么?

目录 1.深刻主题 2.描写复杂人物 初级问题 程序中的变量是指什么? 中级问题 把若干个数据沿直线排列起来的数据结构叫作什么? 高级问题 栈和队列的区别是什么? 计算机图形学(有效边表算法) 介绍一下计算机图形学…

焦炭反应性及反应后强度试验方法

声明 本文是学习GB-T 4000-2017 焦炭反应性及反应后强度试验方法. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 7— 进气口; 8— 测温热电偶。 图 A.1 单点测温加热炉体结构示意图 A.3 温度控制装置 控制精度:(11003)℃。…

C++-Mongoose(3)-http-server-https-restful

1.url 结构 2.http和 http-restful区别在于对于mg_tls_opts的赋值 2.1 http和https 区分 a) port地址 static const char *s_http_addr "http://0.0.0.0:8000"; // HTTP port static const char *s_https_addr "https://0.0.0.0:8443"; // HTTP…

Android笔记(六):JetPack Compose常见的UI组件

一、文本组件 1.1Text Column(modifier Modifier.fillMaxSize().background(Color.Green).padding(10.dp)){Text(text stringResource(id R.string.title_content),modifier Modifier.fillMaxWidth().border(BorderStroke(1.dp, Color.White)),fontSize 20.sp,textAlign …

分布式文件服务器——Windows环境MinIO的三种部署模式

上节简单聊到MinIO:分布式文件存储服务——初识MinIO-CSDN博客,但没具化,本节开始展开在Windows环境下 MinIO的三种部署模式:单机单节点、单机纠删码、集群模式。 部署的几种模式简要概括 所谓单机单节点模式:即MinI…

在Windows下自己从源码编译Python3.10.13成安装包

文章目录 (一)Python 3.10 的生命周期(一)下载源码(二)准备环境(三)编译(3.1)解压源码到目录(3.2)下载依赖(PCBuild&#…

消息称苹果或在明年推出搭载M3芯片的MacBook产品

近日据 DigiTimes 发布的博文,苹果公司计划在 2024 年推出搭载 M3 芯片的 MacBook 产品。然而,关于这款新产品的发布日期仍存在争议。虽然一些爆料认为苹果可能会在今年发布这款产品,但也有一些爆料认为发布时间会推迟到 2024 年。根据各项报…

02Maven核心程序的下载与settings.xml文件的配置,环境变量的配置

Maven核心程序的解压与配置 Maven的下载与解压 Maven官网下载安装包 将下载的Maven核心程序压缩包apache-maven-3.8.4-bin.zip解压到一个非中文且没有空格的目录 Maven的核心配置文件 在Maven的解压目录conf中我们需要配置Maven的核心配置文件settings.xml 配置本地仓库位置…

多机器人三角形编队的实现

文章目录 前言一、机器人编队前的准备二、配置仿真环境2.编写机器人编队.cpp文件 三、三角形编队测试 前言 前阵子一直想要实现多机器人编队,找到了很多开源的编队代码,经过好几天的思索,终于实现了在gazebo环境中的TB3三角形机器人编队。 一…