MySQL数据库的基本操作一

news2024/11/19 4:25:59

目录

什么是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.coloradmin.cn/o/1089016.html

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

相关文章

Zalo是什么?海外推广怎么做?

zalo是一款海外流行的通讯软件,2012年正式发布,至今已经拥有约2亿的用户,分别在越南、美国、缅甸、日本、台湾、泰国、韩国、马来西亚、沙乌地阿拉伯、安哥拉、斯里兰卡、捷克、俄罗斯地区上架。 zalo的越南用户数量很多,是越南地…

实操指南|如何用 OpenTiny Vue 组件库从 Vue 2 升级到 Vue 3

前言 根据 Vue 官网文档的说明,Vue2 的终止支持时间是 2023 年 12 月 31 日,这意味着从明年开始: Vue2 将不再更新和升级新版本,不再增加新特性,不再修复缺陷 虽然 Vue3 正式版本已经发布快3年了,但据我了…

c++视觉处理---直方图均衡化

直方图均衡化 直方图均衡化是一种用于增强图像对比度的图像处理技术。它通过重新分布图像的像素值,以使图像的直方图变得更均匀,从而提高图像的视觉质量。在OpenCV中,您可以使用 cv::equalizeHist 函数来执行直方图均衡化。以下是 cv::equal…

Xcode 14.3.1build 报错整理

1、Command PhaseScriptExecution failed with a nonzero exit code 2、In /Users/XX/XX/XX/fayuan-mediator-app-rn/ios/Pods/CocoaLibEvent/lib/libevent.a(buffer.o), building for iOS Simulator, but linking in object file built for iOS, file /Users/XX/XX/XX/fayuan…

ASAN入门参考

目录 Asan 是什么? Asan 功能 缓冲区溢出 悬空指针(引用) 非法释放 内存泄漏 如何使用 实验环境 内存泄露检查 demo1 demo2 堆缓冲区溢出 栈缓冲区溢出 使用悬空指针 使用栈上返回的变量 使用退出作用域的变量/内存 重复释放…

逐字稿 | 对比学习论文综述【论文精读】

对比学习在计算机视觉领域的发展历程,4个阶段: 百花齐放:方法、模型、目标函数、代理任务都还没有统一。CV双雄:MOCOv1、SimCLRv1、MOCOv2、SimCLRv2、CPC和CMC的延伸工作、SwaV,这个阶段发展非常迅速,以上…

好莱坞编剧大罢工终于结束;与OpenAI创始人共进早餐;使用DALL-E 3制作绘本分享;生成式AI的基础设施架构 | ShowMeAI日报

👀日报&周刊合集 | 🎡生产力工具与行业应用大全 | 🧡 点赞关注评论拜托啦! 🔥 好莱坞编剧大罢工终于结束:简单说就是AI妥协了 https://www.wgacontract2023.org/the-campaign/summary-of-the-2023-wga-…

【Pytorch】深度学习之损失函数

文章目录 二分类交叉熵损失函数交叉熵损失函数L1损失函数MSE损失函数平滑L1(Smooth L1)损失函数目标泊松分布的负对数似然损失KL散度MarginRankingLoss多标签边界损失函数二分类损失函数多分类的折页损失三元组损失HingEmbeddingLoss余弦相似度CTC损失函数参考资料 学习目标&am…

CS配合frp上线

代理使用场景 1、拿下远程web服务器 2、webshell链接不稳定,需要使用稳定的木马程序 3、远程服务器无法直接链接攻击者电脑 4、需要借助公网vps转发来自失陷服务器的木马流量 5、借助frp服务端(vps)和客户端(内网攻击者)建立隧道 6、当vps某一个端口收到流量的…

Jenkins更换主目录

Jenkins储存所有的数据文件在这个目录下. 你可以通过以下几种方式更改: 使用你Web容器的管理工具设置JENKINS_HOME环境参数.在启动Web容器之前设置JENKINS_HOME环境变量.(不推荐)更改Jenkins.war(或者在展开的Web容器)内的web.xml配置文件. 这个值在Jenkins运行时…

Ubuntu 启用 root 用户

打开 ubuntu 的终端,现在的命令行是由 zz-virtual-machine:~$ 这几个字母组成,那么这几个字母代表意思为: z当前操作用户是固定格式z-virtual-machine代表的是主机名~代表当前目录名$代表普通用户操作权限#代表 root 用户权限 在安装系统的时…

《论文阅读:Dataset Condensation with Distribution Matching》

点进去这篇文章的开源地址,才发现这篇文章和DC DSA居然是一个作者,数据浓缩写了三篇论文,第一篇梯度匹配,第二篇数据增强后梯度匹配,第三篇匹配数据分布。DC是匹配浓缩数据和原始数据训练一次后的梯度差,DS…

nginx反向代理IIS实现80默认端口,不需要输入端口访问

IIS的网站 端口是8086 Nginx 配置指向IIS的8086 这样可以不用输端口,nginx/confi/nginx.conf server {listen 80;server_name localhost;#charset koi8-r;#access_log logs/host.access.log main;location / {root html ;index index.html index.htm;}location /h…

配电柜远程控制系统:智能化时代的电力管理新篇章

随着科技的发展,电力系统数字化、智能化成为一种趋势。越来越多的市场需求和数字化的政策导向,让配电柜远程控制成为可能,力安科技电易云配电柜远程控制系统应运而生,这种系统利用先进的通信和计算机、人工智能等技术,…

Kafka 开启SASL/SCRAM认证 及 ACL授权(一)认证

Kafka 开启SASL/SCRAM认证 及 ACL授权(一)认证。 kafka安全涉及3部份:传输加密,用户认证与授权,ZK开启ACL(Zookeeper存储了kafka的元数据以及用户信息,默认不开启acl所有用户可改,内网环境机器不对外开放可考虑使用默认不开启ZK ACL)。 官网地址:https://kafka.ap…

dockerfile 搭建lnmp+wordpress,docker-compose搭建lnmp+wordpress

目录 dockerfile 搭建lnmpwordpress 部署nginx(容器IP 为 172.18.0.10) 部署mysql(容器IP 为 172.18.0.20) 部署php(容器IP 为 172.18.0.30) docker-compose搭建lnmpwordpress dockerfile 搭建lnmpword…

LeetCode 2562. 找出数组的串联值【数组,相向双指针】1259

本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章…

电子笔记真的好用吗?手机上适合记录学习笔记的工具

提及笔记,不少人都会和学习挂钩,的确学习过程中我们经常会遇到很多难题,而经常记录笔记可以有效地帮助大家记住很多知识,而且时常拿出笔记查看一下,可方便巩固过去学习的知识。 手机作为大家日常随身携带的工具&#…

golang 拉取 bitbucket.org 私有库

以 bitbucket.org 平台和mac电脑为例 前置条件私库需要给你账号权限,可拉取的权限,否则无法进行正常拉取 我们采用ssh方式,需要在本地生成对应的 rsa 的公钥和私钥,将公钥配置如下图: 在 .ssh/config 写入你的配置 H…

工业环网交换机运行原理

在智能制造领域,工业环网交换机是一种必不可少的网络设备。该技术通过将各种工业设备、传感器和机器人连接到同一网络中,实现了高效的数据传输和快速的信息交流。在本文中,我们将讨论工业环网交换机的运行原理,以帮助您更好地了解…