开开心心带你学习MySQL数据库之第三篇下

2023-11-08

MySQL表的增删改查

previewfile_2989626098

前言

mysql最核心的部分

这里涉及到的都是咱们在工作中最常用到的

这些东西掌握了,就覆盖日常工作80%+以上的内容

励志言论

自己是自己个人成长的第一责任人

如果你是一个想要自己成长的人,势必要主动成长

鸡蛋从外打破是压力,从内打破是成长

CRUD

CRUD 即增加(Create)、查询(Retrieve)、更新(Update)、删除(Delete)四个单词的首字母缩写~~作为一个后端程序猿,做的主要工作,就是CRUD

新增/插入数据

语法(使用)

insert into 表名 values(值,值…….);

~~insert into 关键字 ~~into 可以省略,不过建议写上

~~values 关键字

~~( ) 括号里是你要插入的值

例子:

insert into student values (1, '小白');

~~ ( ) 括号里你要插入的值的个数,类型,顺序要和表头结构匹配

~~ SQL没有字符类型,‘ ’和“ ”都可以表示字符串

image-20230903222217016


插入的数据错误情况如下

~~主要错误

( ) 括号里你要插入的值的个数,类型,顺序要和表头结构不匹配

image-20230903222440366

~~ 此处还有一种错误

数据库字符集没有正确配置引起的~~

数据库不做任何修改,默认情况下创建的数据库字符集是"拉丁文"字符集,不能表示中文.

解决

此时要做的事情,让咱们的数据库,字符集和你输入的文字的字符集匹配.

如果你输入的文字是utf8,就得在创建数据库的时候设置成utf8

~~ 记得把原有报错的数据库删除,再重新创建一次

create database [数据库名] charset utf8;

注意:—般来说,大部分的终端是utf8的.但是也可能是gbk的 => 就得在创建数据库的时候设置成gbk的

create database [数据库名] charset gbk;

utf8和utfmb4的区别

~~ mysql里的utf8是一个残本(不完整),比正经utf8缺少一部分字符.(主要是缺少emoji表情…)

~~ 使用utf8,正常保存数据都没事.带上表情,可能就出错了

~~ 使用utf8mb4是更完整的utf8

~~ 至于使用utf8还是使用utfmb4,看个人情况

insert语句的变种

create table student (id int, name varchar(20), gender varchar(5));
desc student;

显示结果如下

Field Type Null Key Default Extra
id int(11) YES NULL
name varchar(20) YES NULL
gender varchar(5) YES NULL

在插入的时候,指定某个/某些列来插入.

insert into student (name, gender) values ('fly', '男');

~~ 此时values后面的内容就是和values前面()的内容相匹配的

~~ 要想看到结果,需要使用查询语句

~~最简单的查询 ~~select * from student;

select * from student;

显示结果如下

id name gender
NULL fly

也可以一次插入多个记录~~一次插入values后面写多个()

一次插入values后面写多个( )

insert into student values (2, '初一', '男'), (3, '初二', '男');

image-20230904170200535


~~ 一次插入N个记录,比一次插入一个记录,分N次插入,效率要高一些

原因:MySQL是一个“客户端服务器”结构的程序

一次插入N个记录 ~~ 只需要和服务器交互一次

一个记录,分N次插入 ~~ 需要和服务器交互多次

交互多次的成本要比交互一次高很多

image-20230904164316446

就像是在良品铺子买吃的

买几包芒果干~~下单.商家就接单

再买点核桃仁~~又下单了

商家是把两个订单分开发货,还是合成一个来发货?

一起发!!~~对于商家来说,就降低了成本,只需要一份运费,而不是两份运费


关于时间日期类型的数据插入

插入时间的时候,是通过特定格式的字符串来表示时间日期的.

形如 ‘2023-09-04 17:07:00’

~~ 如果你想把这个时间日期设置成当前时刻,可以使用sql提供的一个特殊函数now()

create table homework (id int, createTime time);

desc homework;

insert into homework values (1, '2023-09-04 17:07:00');

select * from homework;

insert into homework values (2, now());

select * from homework;

image-20230904172026327

查询(Retrieve) 操作

全列查询

~~ 查找整个表,所有行的所有列

select * from 表名;

* 表示所有的列.

这种特殊含义的符号,计算机中叫做“通配符”

例子:在扑克牌中,空白牌(或空牌),即该牌上没有花色和点数。在斗地主游戏中,空白牌可以用来代表任意花色/任意点数,

image-20230904175811567

注意!!!执行select*操作,可能会非常危险!!

原因: 读取返回的数据量庞大

~~如果读取返回的数据量就几百几千,都没啥事,乐意咋 select 就咋搞

~~如果读取返回的数据量有几亿,几十亿…select * from 操作,就麻烦了

你的硬盘可以想象成是建筑工地~~现在从硬盘读数据,相当于很多大卡车从工地往外拉土 ~~

由于要拉的土太多,车也太多,瞬间把路给堵住了~~别人想从这条路走,堵车了,走不了!!!

瞬间吃满硬盘带宽和网络带宽…就可能导致其他程序无法使用硬盘或者使用网络…

带宽 : 数据的传输速率,在单位时间内能传输的数据量

想象一下,一条公路~~

有路比较窄,单位时间能通过的车就比较少.称为"带宽低"有的路比较宽,单位时间能通过的车就很多.称为"带宽高"可以用1s 能够读写多少个字节,或者多少个bit来衡量带宽.

开了1G的宽带,意思就是你的网络速度1秒钟最多可以下载1G bit => 120多MB

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

开开心心带你学习MySQL数据库之第三篇下 的相关文章

  • 如何在Sequelize中设置查询超时?

    我想看看如何在 Sequelize 中设置查询的超时时间 我查看了 Sequelize 文档以获取一些信息 但我找不到我要找的东西 我发现的最接近的是 pools acquire 选项 但我不想设置传入连接的超时 而是设置正在进行的查询的超
  • Mysql 中 UNION 子句的替代方案

    我有两张桌子 表 a 表 b table a ID 1 2 3 4 5 7 table b ID 2 3 4 5 6 我必须得到这样的输出而无需UNION命令 ID 1 2 3 4 5 6 7 注意 我有一个联合解决方案 select fr
  • MySQL MIN/MAX 所有行

    我有桌子Races与行ID Name and TotalCP 我选择分钟 TotalCP FROM Races 但是我想选择具有最小值的整行 我如何在单个查询中做到这一点 从聚合值获取整行的一般形式是 SELECT FROM Races W
  • Laravel leftJoin 仅右表的最后一条记录

    我是 Laravel 的新手 我有两张桌子 1 产品 2 价格 products id product int p key name varchar prices id price int p key id product int
  • MySQL Connector C/C API - 使用特殊字符进行查询

    我是一个 C 程序 我有一个接受域名参数的函数 void db domains query char name 使用 mysql query 我测试数据库中是否存在域名 如果不是这种情况 我插入新域名 char query 400 spri
  • 如何将ElasticSearch与MySQL集成?

    在我的一个项目中 我计划将 ElasticSearch 与 MySQL 结合使用 我已经成功安装ElasticSearch 我可以单独管理ES中的索引 但我不知道如何用 MySQL 实现同样的功能 我读过一些文件 但我有点困惑 没有明确的想
  • MySQL 查询到 CSV [重复]

    这个问题在这里已经有答案了 有没有一种简单的方法来运行MySQL查询来自linux命令行并以csv格式输出结果 这就是我现在正在做的事情 mysql u uid ppwd D dbname lt lt EOQ sed e s g tee l
  • 如何修改现有表以添加时区

    我有一个包含 500 多个表的大型应用程序 我必须将应用程序转换为时区感知 当前应用程序使用new java util Date GETDATE 与服务器的时区 即没有任何时区支持 我已将这项任务分为几个步骤 以便于开发 我确定的第一个步骤
  • Galera 集群问题

    我想在我们的生产环境中使用Galera集群 但我有一些顾虑 每个表必须至少定义一个显式主键 每个表必须运行在InnoDB或XtraDB存储引擎下 分批处理您的大额交易 例如 不要让一个事务插入 100 000 行 而是将其分成更小的块 例如
  • MySQL - 从临时表插入

    这看起来非常简单 但我坚持使用简单的插入语句 见下文 begin work CREATE TEMPORARY TABLE IF NOT EXISTS insert table AS select r resource id fr file
  • 不允许在 php 中连接到此 MariaDB 服务器

    我尝试在 php 中连接远程服务器数据库 但出现以下错误 Host xx xxx xx xx is not allowed to connect to this MariaDB server in 我的连接代码是这样的 servername
  • 不带 GROUP BY 的聚合查询

    这个查询似乎在我的旧机器上完美运行 但是 在我的 MySQL 5 7 14 和 PHP 5 6 25 的新机器上 它会抛出错误 致命错误 未捕获异常 PDOException 并带有消息 SQLSTATE 42000 语法错误或访问冲突 1
  • 无法在 Mac 上启动 MySQL

    使用 Brew 安装后 我无法运行 MySQL 我使用的是 OS X El Capitan 版本 10 11 3 和 MySQL Server 版本 5 7 11 当我启动服务器时 我收到 启动 MySQL 错误 服务器退出而不更新 PID
  • 错误代码:1305。函数或过程不存在

    因此 我在 MySQL 中创建一个函数 然后尝试向用户授予使用该函数的权限 但我无法这样做 这就是我正在做的 DELIMITER USE rxhelp36 scbn DROP FUNCTION IF EXISTS businessDayDi
  • mysql 中的二进制、十六进制和八进制值

    我对在 mysql 数据库中使用二进制 十六进制和八进制系统非常感兴趣 首先 请给我一个建议 为什么我们在存储信息时需要它们 因为信息太多 或者为什么 另外 哪种类型的值必须存储在标记系统中 另外这里还有像 这是例子 gt SELECT 5
  • 非常大的字段会对 MySQL 数据库产生负面影响吗?

    我目前正在使用 Django 构建一个网站 并希望托管用户生物样式页面 该页面可能长达几 KB 这些字段不一定需要搜索 但在查找用户名时确实需要提供 将这些数据存储在数据库中会产生负面影响吗 如果我使用带有数据库链接的静态文本文件 我的服务
  • 用 pandas DataFrame 替换 mysql 数据库表中的行

    Python 版本 2 7 6 熊猫版本 0 17 1 MySQLdb 版本 1 2 5 在我的数据库中 PRODUCT 我有一张桌子 XML FEED 表 XML FEED 很大 数百万条记录 我有一个 pandas DataFrame
  • 如何从批量数据中的mysql列中删除所有非数字字符

    我想从列中删除所有非数字字符 我的数据库中有大量数据 目前我正在使用以下链接中描述的方法 http venerableagents wordpress com 2011 01 29 mysql numeric functions http
  • ORDER BY 字段内的 MySQL 子查询。 (没有内连接)

    有很多与此相关的问题 但都具有使用内部联接的相同答案 这 我认为 在这里是不可能的 如果我错了请告诉我 我现在正在做的是调用两个不同的 mysql 查询来获取结果 它工作完美 db gt query SELECT FROM meta WHE
  • 如何在MYSQL中将整个字符串小写并保持第一个大写[重复]

    这个问题在这里已经有答案了 我的表栏目 我预期的输出会在列中发生变化 Smith Allen Doyle Dennis Baker Waker 这是我尝试过的 但不起作用 UPDATE TABLE employee SET last nam

随机推荐

  • 做一个属于自己的坐标系的高德地图(GIS)

    第一步 创建node环境 第二步 创建一个html文件 第三步 引入高德的样式和行为依赖 第四步 创建容器让地图挂载在上边 div div 第五步 先把地图渲染出来 const gaode new ol layer Tile title 高
  • Nginx通俗易懂教程

    不会写配置的小伙伴可以看看反向代理神器 Nginx Proxy Manager这篇博文 Nginx简介 Nginx engine x 是一个高性能的HTTP和反向代理web服务器 同时也提供了IMAP POP3 SMTP服务 Nginx是由
  • redhat安装oracle11g单实例软件建库

    1 打开xmanager passive 2 oracle 用户登录 开始安装 root rhel64 database su oracle oracle rhel64 evn grep oracle bash evn command no
  • 面试官:select......for update会锁表还是锁行?

    您好 我是路人 更多优质文章见个人博客 http itsoku com select查询语句是不会加锁的 但是select for update除了有查询的作用外 还会加锁呢 而且它是悲观锁 那么它加的是行锁还是表锁 这就要看是不是用了索引
  • 全国计算机等级考试题库二级C操作题100套(第83套)

    第83套 给定程序中 函数fun的功能是 找出100至x x 999 之间各位上的数字之和为15的所有整数 然后输出 符合条件的整数个数作为函数值返回 例如 当n值为500时 各位数字之和为15的整数有 159 168 177 186 19
  • Code Llama 是Meta 开源基于 Llama 2 的 AI 代码生成大模型

    Code Llama 可根据代码和自然语言提示生成代码和有关代码的自然语言 支持多种主流编程语言 包括 Python C Java PHP Typescript Javascript C 和 Bash https ai meta com b
  • nmap、X-Scan漏洞扫描和Metasploit中用永恒之蓝漏洞入侵靶机并上传冰河

    一 实验目的 利用nmap X Scan扫描靶机的漏洞 在Metasploit中用扫描出的永恒之蓝漏洞入侵靶机 建立连接后上传冰河控制靶机 最后用冰河陷阱清除靶机的冰河 记一次完整的入侵控制实验 二 实验环境 工具软件 VMware nma
  • 2023年MySQL-8.0.34保姆级安装教程

    重点放前面 演示环境为windows环境 MySQL社区版本安装教程如下 一 MySQL安装包下载 二 安装配置设置 三 配置环境变量 大体分为3个步骤 安装包的下载 安装配置设置 配置环境变量 一 MySQL安装包下载 下载官网地址 ht
  • 什么是SSAS?

    一 Analysis Services Analysis Services是用于决策支持和BI解决方案的数据引擎 它提供报表和客户端中使用的分析数据 它可在多用途数据模型中创建高性能查询结构 业务逻辑和KPI 企业关键绩效指标 该数据模型可
  • 第7章 高性能门户首页构建

    mini商城第7章 高性能门户首页构建 一 课题 高性能门户建设 二 回顾 1 了解文件存储系统的概念 2 了解常用文件服务器的区别 3 掌握Minio的应用 三 目标 1 OpenResty 百万并发站点架构 OpenResty 特性介绍
  • Map接口-HashMap、Hashtable和Properties

    1 Map 接口和常用方法 1 1Map 接口实现类的特点 很实用 注意 这里讲的是JDK8的Map接口特点 1 Map与Collection并列存在 用于保存具有映射关系的数据 Key Value Map 中的key 和 value可以是
  • java学习之面向对象

    面向对象 Object Oriented 是软件开发方法 一种编程范式 面向对象是相对于面向过程来讲的 面向对象方法 把相关的数据和方法组织为一个整体来看待 从更高的层次来进行系统建模 更贴近事物的自然运行模式 1 1对象 任何具有状态和行
  • python笔记15--常见定时功能

    python笔记15 常见定时功能 1 简介 2 定时方法 最粗暴的 while sleep schedule 实现定时 APScheduler 后台定时 3 注意事项 4 说明 1 简介 实际项目中经常要执行一些定时任务 因此有必要按需选
  • html5移动web开发黑马掌上商城_前端全套:黑马2019最新前端课程入门到精通【全网首发】...

    以上资源收集至互联网 如有侵权请联系删除 资源获取方式 扫码关注资源库公众号 回复密码 20190810 即可获得 截图展示 课程信息 课程难度 初级 学习人数 7942542 课程状态 已完结 时长 四个月 课程介绍 课程设计之初就对目前
  • oracle数据库表空间如何清理,oracle数据库清理临时表空间

    方法一 重启库 库重启时 Smon进程会完成临时段释放 TEMP表空间的清理操作 不过很多的时侯我们的库是不允许down的 所以这种方法缺少了一点的应用机会 不过这种方法还是很好用的 法二 Metalink给出的一个方法 修改一下TEMP表
  • 初认python-4

    文件 变量是把数据保存到内存中 如果程序重启 主机重启 内存中的数据就会丢失 要想能让数据被持久化储存 就可以把数据储存到硬盘中 也就是在文件中保存 在ws中的目录名之间使用 来分割 但是使用 来分给也是可以的 但是我们一般用 因为 在编译
  • Java工具 Jstack 的使用

    jstack Prints Java thread stack traces for a Java process core file or remote debug server Jstack 主要的作用是生成当前进程中所有线程的信息 也
  • 【解决】org.springframework.beans.factory.UnsatisfiedDependencyException: Error creat

    org springframework beans factory UnsatisfiedDependencyException Error creating bean with name userController Unsatisfie
  • React路由懒加载的实现

    原理 webpack代码分割 React利用 React lazy与import 实现了渲染时的动态加载 利用Suspense来处理异步加载资源时页面应该如何显示的问题 1 React lazy 通过lazy api来动态import需要懒
  • 开开心心带你学习MySQL数据库之第三篇下

    MySQL表的增删改查 前言 mysql最核心的部分 这里涉及到的都是咱们在工作中最常用到的 这些东西掌握了 就覆盖日常工作80 以上的内容 励志言论 自己是自己个人成长的第一责任人 如果你是一个想要自己成长的人 势必要主动成长 鸡蛋从外打