MySQL数据库与表的基本操作 + 表的基本CRUD(增删改查)操作

文章目录

  • 前言
  • 一、库的基本操作
    • 显示当前所有数据库
    • 创建数据库
    • 使用数据库
    • 删除数据库
  • 二、表的基本操作
    • 创建表
    • 查看库中所有表
    • 查看表结构
    • 删除表
  • 三、表的增删改查(基础)
    • 新增数据(Create)
      • 全列插入
      • 指定列插入
    • 查询数据(Retrieve)
      • 全列查询
      • 指定列查询
      • 查询字段为表达式
      • 指定列的别名
      • 去重:DISTINCT
      • 排序:ORDER BY
      • 条件查询:WHERE
      • 分页查询:LIMIT
    • 修改数据(Update)
    • 删除数据(Delete)
  • 总结


前言

本人是一个普通程序猿!分享一点自己的见解,如果有错误的地方欢迎各位大佬莅临指导,如果你也对编程感兴趣的话,互关一下,以后互相学习,共同进步。这篇文章能够帮助到你的话,劳请大家点赞转发支持一下!


一、库的基本操作

显示当前所有数据库

SHOW DATABASES;

在这里插入图片描述


创建数据库

大写字母为语法关键字,[]为可选项即可写可不写,

CREATE DATABASE [IF NOT EXISTS] 库名  [CHARACTER SET 字符集名];

1️⃣IF NOT EXISTS 的作用是如果数据库种已经有使用这个库名的,就不创建(不会报错),没有则成功创建。
2️⃣CHARACTER SET 字符集名,使用你指定的字符集。(当我们创建数据库没有指定字符集时,系统使用默认字符集:utf8。MySQL的utf8编码不是真正的utf8,MySQL的utf8中没有包含某些复杂的中文字符。MySQL真正的utf8是使用utf8mb4,建议大家都使用utf8mb4)

在这里插入图片描述

语句1执行时,不存在名为csdn的数据库,创建了名为csdn并且指定字符集为utf8mb4的数据库,语句1执行成功。
语句2执行时,存在名为csdn的数据库,因此并没有再创建一个名为csdn的数据库,语句2执行成功。


使用数据库

USE 库名;

在这里插入图片描述

使用数据库也可以理解为选中数据库,先选中这个数据库,才能开始对这个数据库中的数据进行操作。


删除数据库

DROP DATABASE [IF EXISTS] 库名;

IF EXISTS 的作用是如果数据库中存在这个库名的,就删除,没有则不删除(不会报错)。

在这里插入图片描述

语句1执行成功,成功删除了csdn这个数据库。
语句2执行成功,此时并不存在csdn这个数据库,就不删除了。
语句3执行失败并报错,语句3中没有 IF EXISTS 关键字,因此如果不存在要删除的库就会报错。

删库是一个高危操作,如果是在公司中,删库操作很容易带来许多不可逆的巨大损失,因此在删库之前要深思熟虑,三思而后行。


二、表的基本操作

  • 表是存在于数据库中,因此一定要先 选中一个数据库(USE 库名;) ,然后在这个数据库里操作表。

创建表

CREATE TABLE 表名 (字段名 字段类型,字段名 字段类型,...);

()中是你指定表中存在的字段名,以及字段类型。
字段名在前字段类型在后,中间用空格隔开;各字段之间用 ’ , ’ 隔开

在这里插入图片描述


查看库中所有表

SHOW TABLES;

在这里插入图片描述


查看表结构

DESC 表名;

在这里插入图片描述


删除表

DROP TABLE [IF EXISTS] 表名;
  • IF EXISTS 的作用是如果库中存在这个表,就删除,没有则不删除(不会报错)。

在这里插入图片描述

语句1执行成功,删除了student表
语句2执行成功,没有student表,不进行删除。

删表也是一个高危操作,如果是在公司中,删表操作也很容易带来许多不可逆的巨大损失,因此在删表之前要深思熟虑,三思而后行。


三、表的增删改查(基础)

在这里插入图片描述

如果不指定字符集,mysql默认字符集为utf8,但是这个utf8中不包含复杂的中文字符;此时当插入文字时,就会报错。
在这里插入图片描述

咱们针对student这个表进行增删改查操作。

student表有三个字段

字段类型
name(名字)VARCHAR(size)
age(年龄)INT
number(学号)INT

新增数据(Create)

全列插入

INSERT INTO 表名 VALUES (数据,数据,...);
  • 全列插入,也可以理解为全字段插入数据,即 给每个字段都要输入数据,且数量必须和定义表的列的数量及顺序一致

单行数据插入
在这里插入图片描述

多行数据插入
每行数据之间用 ’ , '隔开

以下sql语句同时插入了三行数据
在这里插入图片描述

指定列插入

INSERT INTO 表名 (字段名,字段名,...) VALUES (数据,数据,...);
  • 指定列插入,也可以理解为指定一些字段插入数据,即 给指定的字段输入数据,且数量必须和指定列的数量及顺序一致

单行数据插入
在这里插入图片描述

多行数据插入
每行数据之间用 ’ , '隔开

以下sql语句同时插入了三行数据
在这里插入图片描述


查询数据(Retrieve)

  • 以下多种查询,可以综合应用达到理想查询效果。

全列查询

SELECT * FROM 表名;
  • 全列查询即,将每一行数据的每个字段都查询出来。

在这里插入图片描述

通常情况下不建议使用 * 进行全列查询

全列查询 * 要慎用
1️⃣全列查询,在表中数据量级很大时,那么这一个查询操作需要传输的数据量就很大,就可能会影响整个程序的性能,甚至是程序安全。
2️⃣全列查询可能会影响到 索引 的使用。


指定列查询

SELECT 字段名,字段名,... FROM 表名;
  • 指定列查询即,将每一行数据的指定字段查询出来。

在这里插入图片描述

指定列的顺序不需要按定义表的顺序来


查询字段为表达式

SELECT 表达式,字段名,... FROM 表名;
  • 查询字段为表达式即,将表达式作为查询字段,mysql会查询出表达式中需要的数据并完成表达式的计算。

表达式不包含字段
在这里插入图片描述

表达式包含一个字段
在这里插入图片描述

表达式包含多个字段

  • NULL + 任何类型的数据 = NULL

在这里插入图片描述

指定列的别名

SELECT 字段名 [AS] 别名,字段名 [AS] 别名,字段名, ... FROM 表名;
  • 为查询结果中的列指定别名,表示返回的结果集中,以别名作为该列的名称。
    在这里插入图片描述

一条查询语句中,可以同时存在取别名的字段与不取别名的字段。


去重:DISTINCT

  • 使用DISTINCT关键字对某列数据进行去重
SELECT DISTINCT 字段,[字段,...] FROM 表名;

普通查询
在这里插入图片描述

去重查询

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
以上三条去重语句的查询,有两个要 注意 的点
1️⃣ DISTINCT要在所有字段的最前面
2️⃣ 如果DISTINCT关键字后面有多个字段时,则会对多个字段进行综合去重,只有多个字段值都对应相等的才会被去重


排序:ORDER BY

  • 根据某个字段的大小对返回的查询结果的顺序进行排序。
SELECT ... FROM 表名 ORDER BY 字段名 [ASC|DESC];

ASC 为升序(从小到大),默认为 ASC。
DESC 为降序(从大到小)。
没有 ORDER BY 子句的查询,返回的顺序是未定义的,永远不要依赖这个顺序。
NULL 数据排序,视为比任何值都小,升序出现在最上面,降序出现在最下面。

普通排序
在这里插入图片描述

使用表达式及别名排序
在这里插入图片描述
在这里插入图片描述

对多个字段进行排序
对多个字段进行排序时,排序优先级随书写顺序。

在这里插入图片描述


条件查询:WHERE

比较运算符

运算符说明
>, >=, <, <=大于,大于等于,小于,小于等于
=等于,NULL 不安全,例如 NULL = NULL 的结果是 NULL
<=>等于,NULL 安全,例如 NULL <=> NULL 的结果是 TRUE
!=或<>不等于
BETWEEN a0 AND a1范围匹配,[a0, a1],如果 a0 <= value <= a1,返回 TRUE
IN (option, …)如果是 option 中的任意一个,返回 TRUE
IS NULL是 NULL
IS NOT NULL不是 NULL
LIKE模糊匹配。% 表示任意多个(包括 0 个)任意字符;_ 表示任意一个字符

逻辑运算符

运算符说明
AND多个条件必须都为 TRUE,结果才是 TRUE
OR任意一个条件为 TRUE, 结果为 TRUE
NOT逻辑取反(TRUE为 FALSE,FALSE为TRUE)

注意
WHERE条件可以使用表达式,但不能使用别名。

AND的优先级高于OR,在同时使用时,需要使用小括号()包裹优先执行的部分

SELECT ... FROM 表名 WHERE BOOLEAN表达式

使用例子: 在这里插入图片描述
在这里插入图片描述


分页查询:LIMIT

SELECT ... FROM 表名 [...] LIMIT n [OFFSET s];

上述语句表示,只查询n条数据,从第s条数据开始查询,(第一个数据为第0条)。
[ ]中可有可无,如果无则默认从第0条数据开始查询

在这里插入图片描述


修改数据(Update)

UPDATE 表名 SET 字段 = 修改后数据 [其他查询语句WHERE];

实现效果:将无名氏的年龄修改为30。
在这里插入图片描述


删除数据(Delete)

删除某行数据

DELETE FROM 表名 where等查询条件;

在这里插入图片描述
删除表中所有数据
在这里插入图片描述

删除表中数据后,表依然存在,只是其中没有数据了。


总结

以上就是今天要讲的内容,本文分享了数据库,表的基本操作,以及对表中数据的CRUD(增删改查)操作,后续还会带来对表中数据的进阶CRUD(增删改查)操作,敬请期待!

路漫漫不止修身,也养性。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

掘金量化—Python SDK文档—5.API 介绍(1)

​ Python SDK文档 5.API 介绍 5.1基本函数 init - 初始化策略 初始化策略, 策略启动时自动执行。可以在这里初始化策略配置参数。 函数原型&#xff1a; init(context)参数&#xff1a; 参数名类型说明contextcontext上下文&#xff0c;全局变量可存储在这里 示例&…

vue(html,css,vue2,vue3) 学习总结

文章目录 小白 Vue 3 学习一些名词软件安装 VSCode 中的一些设置1. 关闭eslint检查tsconfig.json 配置文件2. ts 文件引用报红 相对路径写法常见图片格式和区别目录结构JS/TS1. prototype(原型对象)2. 导入/导出3. 去除字符串两端空格4. 一些特殊语法糖5. 深拷贝6. 拼接两个数组…

【java爬虫】使用selenium获取某宝联盟淘口令

上一篇文章我们已经介绍过使用selenium获取优惠券基本信息的方法 (15条消息) 【java爬虫】使用selenium爬取优惠券_haohulala的博客-CSDN博客 本文将在上一篇文章的基础上更进一步&#xff0c;获取每个优惠券的淘口令&#xff0c;毕竟我们只有复制淘口令才能在APP里面获取优惠…

基于ChatGPT和私有知识库搭建Quivr项目

准备工作 安装docker和docker-compose申请supabase账号 拉取Quivr代码 git clone https://github.com/StanGirard/Quivr.git 复制.XXXXX_env文件 cp .backend_env.example backend/.env cp .frontend_env.example frontend/.env 更新backend/.env和frontend/.env文件 ba…

【hadoop】部署hadoop全分布模式

hadoop全分布模式 全分布模式特点部署全分布模式准备工作正式配置hadoop-env.shhdfs-site.xmlcore-site.xmlmapred-site.xmlyarn-site.xmlslaves对NameNode进行格式化复制到另外两台虚拟机启动 对部署是否成功进行测试 全分布模式特点 真正的分布式环境&#xff0c;用于生产具…

java学习003

Java数组 Java 语言中提供的数组是用来存储固定大小的同类型元素&#xff0c;这一点和PHP语言的可变数组长度不同。 声明变量数组 首先必须声明数组变量&#xff0c;才能在程序中使用数组。下面是声明数组变量的语法&#xff1a; dataType[] arrayRefVar; // 首选的方法 或 …

2023-07-18力扣今日二题-太难了吧

链接&#xff1a; LCP 75. 传送卷轴 题意&#xff1a; 给一个正方形迷宫&#xff0c;主角是A&#xff0c;每次可以上下左右走一格子&#xff0c;有四种类型的格子&#xff1a;墙、初始位置、魔法水晶、空地 另一个人B&#xff0c;可以传送一次A&#xff0c;只能在空地传送&…

017 - STM32学习笔记 - SPI读写FLASH(二)-flash数据写入与读取

016 - STM32学习笔记 - SPI访问Flash&#xff08;二&#xff09; 上节内容学习了通过SPI读取FLASH的JEDEC_ID&#xff0c;在flash资料的指令表中&#xff0c;还看到有很多指令可以使用&#xff0c;这节继续学习使用其他指令&#xff0c;程序模板采用上节的模板。 为了方便起…

基于深度学习的高精度线路板瑕疵目标检测系统(PyTorch+Pyside6+YOLOv5模型)

摘要&#xff1a;基于深度学习的高精度线路板瑕疵目标检测系统可用于日常生活中来检测与定位线路板瑕疵目标&#xff0c;利用深度学习算法可实现图片、视频、摄像头等方式的线路板瑕疵目标检测识别&#xff0c;另外支持结果可视化与图片或视频检测结果的导出。本系统采用YOLOv5…

计算机网络 day6 arp病毒 - ICMP协议 - ping命令 - Linux手工配置IP地址

目录 arp协议 arp病毒\欺骗 arp病毒的运行原理 arp病毒产生的后果&#xff1a; 解决方法&#xff1a; ICMP协议 ICMP用在哪里&#xff1f; ICMP协议数据的封装过程 ​编辑 为什么icmp协议封装好数据后&#xff0c;还要加一个ip包头&#xff0c;再使用ip协议再次进…

Docker 基础知识解析:容器与传统虚拟化对比:资源利用、启动时间、隔离性和部署效率

&#x1f337;&#x1f341; 博主 libin9iOak带您 Go to New World.✨&#x1f341; &#x1f984; 个人主页——libin9iOak的博客&#x1f390; &#x1f433; 《面试题大全》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33…

国赛线下开赛!全国智能车百度智慧交通创意组区域赛今日正式拉开帷幕!

“全国大学生智能汽车竞赛”是教育部倡导的大学生科技A类竞赛&#xff0c;中国高等教育学会将其列为含金量最高的大学生竞赛之一&#xff0c;为《全国普通高校大学生竞赛排行榜》榜单内赛事。飞桨共承办了百度完全模型组和百度智慧交通组两大赛道。全国大学生智能汽车竞赛百度智…

SpringBoot(七)Filter的使用

思考一个问题&#xff0c;服务端对于客户端的请求&#xff0c;真的应该照单全收吗&#xff1f;不是的。比如拿我们之前实现的用户注册功能来看&#xff0c;如果用户的昵称带了一些不友好的字母或汉字&#xff0c;你是给他过滤掉呢还是让他注册呢&#xff1f;毫无疑问&#xff0…

HTTP 请求走私漏洞(HTTP Request Smuggling)

一、什么是Http 请求走私漏洞&#xff1f; HTTP请求走私漏洞&#xff08;HTTP Request Smuggling&#xff09;是一种安全漏洞&#xff0c;利用了HTTP协议中请求和响应的解析和处理方式的不一致性。攻击者通过构造特定的恶意请求&#xff0c;以欺骗服务器和代理服务器&#xff0…

五、DQL-2.基本查询

一、数据准备 1、删除表employee&#xff1a; drop table employee; 2、创建表emp&#xff1a; 3、添加数据&#xff1a; 4、查看表数据&#xff1a; 【代码】 -- 查询数据--------------------------------------------------------- drop table emp;-- 数据准备-----------…

Ubuntu 的安装及其设置

文章目录 安装 Ubuntu屏幕分辨率设置修改软件源服务器锁屏时间设置设置 dash跨系统拖拽复制文件的设置 安装 Ubuntu 首先安装 VMware 虚拟机&#xff0c;虚拟机的安装比较简单&#xff0c;一步步点击Next即可完成安装。 安装完成后启动虚拟机&#xff0c;点击创建新的虚拟机。…

个人博客系统(二)

该博客系统共有八个页面,即注册页面、登录页面、添加文章页面、修改文章页面、我的博客列表页面、主页、查看文章详情页面、个人中心页面。 1 注册页面 该页面如图所示: 首先,要先判断注册的用户名、密码、确认密码以及验证码是否为空,若有一个为空,点击提交,则会提醒 …

“探索图像处理的奥秘:使用Python和OpenCV进行图像和视频处理“

1、上传图片移除背景后下载。在线抠图软件_图片去除背景 | remove.bg – remove.bg 2、对下载的图片放大2倍。ClipDrop - Image upscaler 3、对放大后的下载照片进行编辑。 4、使用deepfacelive进行换脸。 1&#xff09;将第三步的照片复制到指定文件夹。C:\myApp\deepfakeliv…

MFC第十六天 CFileDialog、CEdit简介、(线程)进程的启动,以及Notepad的开发(托盘技术-->菜单功能)

文章目录 CCommonDialogCFileDialogCEdit托盘技术进程的启动附录1:启动线程方式附录2:MFC对话框的退出过程 CCommonDialog 通用对话框 CCommonDialog 这些对话框类封装 Windows 公共对话框。 它们提供了易于使用的复杂对话框实现。 CFileDialog 提供用于打开或保存文件的标准对…

【前端】自制密码展示隐藏按钮

效果 一、前期准备 使用的图片是iconfront上拿的svg代码环境是Vue2 Element 二、创建组件 showPasswordAndclose <template><span class"show-password-container"><span v-if"chooseType CLOSE" click"changeType"><…