MySql入门教程--MySQL数据库基础操作

news2024/11/19 22:41:38

꒰˃͈꒵˂͈꒱ write in front ꒰˃͈꒵˂͈꒱
ʕ̯•͡˔•̯᷅ʔ大家好,我是xiaoxie.希望你看完之后,有不足之处请多多谅解,让我们一起共同进步૮₍❀ᴗ͈ . ᴗ͈ აxiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客
本文由xiaoxieʕ̯•͡˔•̯᷅ʔ 原创 CSDN 如需转载还请通知˶⍤⃝˶
个人主页:xiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客

系列专栏:xiaoxie的MySql学习系列专栏——CSDN博客●'ᴗ'σσணღ
我的目标:"团团等我💪( ◡̀_◡́ ҂)" 

( ⸝⸝⸝›ᴥ‹⸝⸝⸝ )欢迎各位→点赞👍 + 收藏⭐️ + 留言📝​+关注(互三必回)!

 一.数据库的操作

1.1 显示当前的数据库

show databases;

1.2创建数据库 

create database Test;

可以使用显示当前的数据库的操作查看是否创建成功

1.3 使用数据库

 use 数据库名;

这里需要特别提醒:当我们对这个数据库进行增删改查操作表的时候,我们需要先use 数据库名

1.4 删除数据库

语法:

 drop database 数据库名

 可以使用显示当前的数据库的操作查看是否删除成功

同时这里博主提醒一下数据库删除以后,内部看不到对应的数据库,里边的表和数据全部被删除,可能目前我们操作的是自己的数据库,删库后影响不大,但我们工作之后, 删库操作就要小心谨慎

二.常用数据类型

MySQL 的数据类型有大概可以分为整数类型、浮点数类型和定点数类型、日期和时间类型、字符串类型、二进制类型等.

2.1  整数类型

MySQL 主要提供的整数类型有 TINYINTSMALLINTMEDIUMINTINTBIGINT,其属性字段可以添加 AUTO_INCREMENT 自增约束条件。

类型名称说明储存需求
TINYINT很小的整数一个字节
SMALLINT小的整数两个字节
MEDIUMINT中等大小的整数三个字节
INT普通大小的整数四个字节
BIGINT大整数八个字节

2.2  浮点类型

MySQL 中使用浮点数和定点数来表示小数。

浮点类型有两种,分别是单精度浮点数(FLOAT)和双精度浮点数(DOUBLE);定点类型只有一种,就是 DECIMAL

浮点类型和定点类型都可以用(M, D)来表示,其中 M 称为精度,表示总共的位数;D 称为标度,表示小数的位数。例如DECIMAL(3,1)可以为99.0 但不可以为100.0 因为它总的位数最大为3,而100.0为`4.

浮点数类型的取值范围为 M(1~255)和 D(1~30,且不能大于 M-2),分别表示显示宽度和小数位数。M 和 D 在 FLOAT 和DOUBLE 中是可选的,FLOAT 和 DOUBLE 类型将被保存为硬件所支持的最大精度。DECIMAL 的默认 D 值为 0、M 值为 10。

类型名称说明储存需求
FLOAT(M, D)单精度,M指定长度,D指定 小数位数。会发生精度丢失4字节
DOUBLE(M, D)双精度,M指定长度,D指定 小数位数。会发生精度丢失8字节
DECIMAL(M, D)定点类型,M指定长度,D表示 小数点位数。精确数值

M+2字节

2.3  日期和时间类型 

MySQL 中有多处表示日期的数据类型:YEARTIMEDATEDTAETIMETIMESTAMP。当只记录年信息的时候,可以只使用 YEAR 类型。每一个类型都有合法的取值范围,当指定确定不合法的值时,系统将“零”值插入数据库中。

2.4字符串类型

字符串类型用来存储字符串数据,还可以存储图片和声音的二进制数据。字符串可以区分或者不区分大小写的串比较,还可以进行正则表达式的匹配查找。

MySQL 中的字符串类型有 CHAR、VARCHAR、TINYTEXT、TEXT、MEDIUMTEXT、LONGTEXT、ENUM、SET 等。下表中列出了 MySQL 中的字符串数据类型,括号中的 M 表示可以为其指定长度。

2.5总结

总的来说我们常用的数据类型就几个:INT,FLOAT,DOUBLE,DECIMAL,VARCHAR,DATETIME. 至于其他的几个数据类型,具体问题具体分析.

三.表的操作

需要操作数据库中的表时,需要先使用该数据库:

use 数据库名;

 3.1 显示当前库的所有表

show tables;

3.2查看表结构

desc 表名;

3.3创建表

语法:

create table 表名(
字段1(列名) 数据类型,
字段2(列名) 数据类型,
字段3(列名) 数据类型,
....      .....
);

示例:

create table student(
     id int,
     name varchar(20),
     gender varchar(2),
     age int
  );

结果:

显示是否成功创建表

显示当前表结构是否成功创建 

 3.4删除表

语法格式:

drop table 表名

示例:

drop table student -- 删除学生表

结果:

显示是否成功删除表

四.CRUD(增删改查操作)

4.1 新增(Create)

语法:

insert (into) 表名values(数据);

说明:

这里插入数据的数据类型,和顺序必须要和当前表的数据类型,顺序相同

1.单行数据

全列插入

案例:插入一条id为1name为张三性别为男年龄为18的学生信息到学生表

insert into student values(1,"张三","男",18);

注意由于SQL是一门弱类型的语言所以,字符串可以使用双引号 " " 或者单引号 ' '  修饰

结果:

指定列插入

语法:

insert into student(指定列) values(数据);

 案例:插入一条id为2name为李四性别为男的学生信息到学生表

insert into student(id,name,gender) values(1,"李四","男");

结果:

说明:可以看到没有指定插入列的那一行的值为null,同时指定列插入也同时需要, 插入数据的数据类型,和顺序必须要和当前表的数据类型,顺序相同.

2.多列插入

语法:

insert into 表名 values(数据),(数据);

案例: 插入一条id为3name为王五性别为女年龄为19和id为4name为赵六性别为男年龄为21的学生信息到学生表

insert into student values(3,"王五","女",19),(4,"赵六","男",21);

 结果:

指定列多行插入和上述的一样这里博主就不过多的赘述了

4.2查询

在我们以后工作的场景中,查询才是所有操作中应用最多的操作,所以一定要尽量熟练掌握

1 全列查询 

语法:

select * from 表名

案例:查询学生表的所有学生信息

select * from student;

结果:

 说明:这里需要记住的是,虽然全列查询很方便也很简单,当这是在我们自己学习的数据库,数据量不会很多,在日后工作后,一张表的数据可能都有百万级别甚至更大查询的列越多,意味着需要传输的数据量越大;

2.指定列查询

这里为了后续的案例分析,我们先创建一张表,和一些数据

-- 创建考试成绩表
DROP TABLE IF EXISTS exam_result;
CREATE TABLE exam_result (
 id INT,
 name VARCHAR(20),
 chinese DECIMAL(3,1),
 math DECIMAL(3,1),
 english DECIMAL(3,1)
);
-- 插入测试数据
INSERT INTO exam_result (id,name, chinese, math, english) VALUES
 (1,'唐三藏', 67, 98, 56),
 (2,'孙悟空', 87.5, 78, 77),
 (3,'猪悟能', 88, 98.5, 90),
 (4,'曹孟德', 82, 84, 67),
 (5,'刘玄德', 55.5, 85, 45),
 (6,'孙权', 70, 73, 78.5),
 (7,'宋公明', 75, 65, 30);

语法:

--单列查询
select 指定列 from 表名;
--多列查询
select 指定列,指定列,指定列 from 表名;
--可以加算术表达式
select 指定列,指定列+指定列 from 表名

案例:

查询所以考生的名字和该考生的总分在考试信息表中;

select name,chinese+math+english from exam_result;

结果:

 说明:

这里的指定列并不需要按照表的列的顺序,以及如果要用算术表达,类型要为,整数型或者浮点型,同时类型还需要相同

3.别名

语法:

select 列名 as 别名 from 表名;

案例:

查询所以考生的名字和该考生的总分在考试信息表中;

select name,chinese+math+english as total from exam_result;

 结果:

4.去重

语法:

select distinct 列名 from 表名;

案例:

 

5. 排序:ORDER BY 

语法:

-- ASC 为升序(从小到大)
-- DESC 为降序(从大到小)
-- 默认为 ASC
select 列名 from 表名 order by(asc|desc) (指定列);

案例:查询同学及总分,由高到低 

select name,chinese+math+english as total from exam_result order by total desc;

结果: 

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

-- 查询同学各门成绩,依次按 数学降序,英语升序,语文升序的方式显示
select name,math,chinese,english from exam_result order by math desc,
english,chinese;

 结果:

说明:. NULL 数据排序,视为比任何值都小,升序出现在最上面,降序出现在最下面

6.条件查询:WHERE 

比较运算符

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

说明:

1. = 和 <=> 的区别为当数据为null时 null = 任何数据(哪怕也是null) 结果都为null 如果是<=>

null <=> null 结果 就为 true(1);

2.. WHERE条件可以使用表达式,但不能使用别名

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

案例:

基本查询:

查询英语不及格的同学及英语成绩 ( < 60 )

-- 查询英语不及格的同学及英语成绩 ( < 60 )
select name,english from exam_result where english < 60;

 -- 查询语文成绩好于英语成绩的同学

 select name,english,chinese from exam_result where chinese > english;

-- 查询总分在 200 分以下的同学

select name,math+english+chinese as total from exam_result where chinese + english+math < 200;

这里要注意where 后边不可以跟别名

 AND与OR:

案例:

查询语文成绩大于80分,且英语成绩大于80分的同学

 select name,chinese,english from exam_result where chinese > 80 and english > 80;

 查询语文成绩大于80分,或英语成绩大于80分的同学

select name,chinese,english from exam_result where chinese > 80 or english > 80;

范围查询: 

1. BETWEEN ... AND ...

查询语文成绩在 [80, 90] 分的同学及语文成绩

select name,chinese from exam_result where chinese between 80 and 90;

2. IN

查询数学成绩是 58 或者 65 或者 98 或者 99 分的同学及数学成绩

select name,math from exam_result where math in(58,65,98,99);

模糊查询:LIKE

% 匹配任意多个(包括 0 个)字符

select name from exam_result where name like"孙%";

_ 匹配严格的一个任意字符 

select name from exam_result where name like"孙_";

7. 分页查询:LIMIT 

语法:

-- 从 0 开始,筛选 n 条结果
select 列名 from 表名 (where) (order by 列名) limit n;
----从 s 开始,筛选 n 条结果
select 列名 from 表名 (where) (order by 列名) limit s,n;
----从 s 开始,筛选 n 条结果(建议使用这个方法,更直观)
select 列名 from 表名 (where) (order by 列名) limit n offset s;

案例:按 id 进行分页,每页 3 条记录,分别显示 第 1、2、3 页

-- 第 1 页
select * from exam_result order by id limit 3;
-- 第 2 页
select * from exam_result order by id limit 3 offset 3;

-- 第 3 页,如果结果不足 3 个,不会有影响
select * from exam_result order by id limit 3 offset 6;

 结果:

案例查询总分为前三的同学信息

 select name,math + chinese + english as total from exam_result
 order by total desc limit 3;

4.3修改(Update)

语法:

update 表 set 字段1=value1, 字段2=value2... where 条件(order by )(limit)

案例:

将孙悟空同学的数学成绩变更为 80 分

 update exam_result set math = 80 where name = "孙悟空";

将总成绩倒数前三的 3 位同学的语文成绩加上 5分

update exam_result set chinese = chinese + 5 order by math+chinese+english limit 3;

修改前:

 修改后:

 4.4 删除(Delete)

语法:

delete from 表名 (where)(order by)(limit)

案例:

-- 准备测试表
create table text_delect(id int);
-- 插入数据
insert into text_delect values(1),(2),(3),(4);
-- 删除数据
delete from text_delect where id = 1;

以上就是博主关于Mysql基本操作总结的所以内容了,希望能够对你有所帮助. 

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

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

相关文章

【C++从练气到飞升】03---构造函数和析构函数

&#x1f388;个人主页&#xff1a;库库的里昂 ✨收录专栏&#xff1a;C从练气到飞升 &#x1f389;鸟欲高飞先振翅&#xff0c;人求上进先读书。 目录 ⛳️推荐 一、类的6个默认成员函数 二、构造函数 1. 构造函数的概念 2. 构造函数的定义 3. 构造函数的特性 三、析构函…

leetcode 2312. 卖木头块【划分型dp+棋盘切割类型dp】

原题链接&#xff1a;2312. 卖木头块 题目描述&#xff1a; 给你两个整数 m 和 n &#xff0c;分别表示一块矩形木块的高和宽。同时给你一个二维整数数组 prices &#xff0c;其中 prices[i] [hi, wi, pricei] 表示你可以以 pricei 元的价格卖一块高为 hi 宽为 wi 的矩形木块…

【数据结构练习题】栈——1.括号匹配 2.逆波兰表达式求值 3.出栈入栈次序匹配 4.最小栈

♥♥♥♥♥个人主页♥♥♥♥♥ ♥♥♥♥♥数据结构练习题总结专栏♥♥♥♥♥ 文件目录 前言1.括号匹配1.1问题描述1.2解题思路1.3画图解释1.4代码实现2.逆波兰表达式求值 2.1问题描述2.2解题思路2.3画图解释2.4代码解释3.出栈入栈次序匹配 3.1问题描述3.2思路分析3.3画图解释3.…

Spring Chache入门详解、配套小案例

简介&#xff1a;Spring Cache是一个框架&#xff0c;实现了基于注解的缓存功能&#xff0c;只需要添加一个注解就能实现缓存功能。 Spring Cache提供了一层抽象&#xff0c;底层可以切换不同的缓存实现&#xff0c;如下&#xff1a; EHCacheCaffeineRedis (这篇帖子&#xff…

Xcode调试Qt 源码

在Mac下使用Xcode 开发Qt程序&#xff0c;由于程序断点或者崩溃后&#xff0c;Qt库的堆栈并不能够正确定位到源码的cpp文件&#xff0c;而是显示的是汇编代码&#xff0c;导致不直观的显示。 加载的其他三方库都是同理。 所以找了攻略和研究后&#xff0c;写的这篇文章。 一&a…

网络原理(1)——UDP协议

目录 一、应用层 举个例子&#xff1a;点外卖 约定数据格式简单粗暴的例子 客户端和服务器的交互&#xff1a; 序列化和返序列化 xml、json、protobuffer 1、xml 2、json 3、protobuffer 二、传输层 端口 端口号范围划分 认识知名的端口号 三、UDP协议 端口 U…

NCP1380BDR2G芯片中文资料规格书PDF数据手册引脚图图片参数功能价格

产品描述&#xff1a; NCP1380 是一款高性能器件&#xff0c;旨在为准谐振转换器供电。该控制器基于专属的谷锁闭系统&#xff0c;可以在功率负载变轻时进行切换并降低开关频率。这样将产生稳定的运行&#xff0c;即使在漏极-源极谷中总是触发的开关事件下也是如此。此系统可在…

蓝膜胶带(蓝膜)为动力电池电气绝缘主流应用方案之一 市场需求空间较广阔

蓝膜胶带&#xff08;蓝膜&#xff09;为动力电池电气绝缘主流应用方案之一 市场需求空间较广阔 动力电池蓝膜胶带是一种PET基材背上PSA压敏胶制成的单面胶带&#xff0c;因其以深蓝色居多&#xff0c;又被称为蓝膜。蓝膜为绝缘材料&#xff0c;可将电芯与电芯之间分隔开来&…

环保水离子水壁炉,现代时尚

环保水离子壁炉&#xff0c;现代而时尚&#xff0c;靠水运行&#xff0c;用电量很少。这绝对是最生态的壁炉。完全安全&#xff08;带冷火焰&#xff09;&#xff0c;其现代设计完美适应各种环境。凭借最低的碳足迹&#xff0c;它无疑是未来的混合壁炉。 什么是环保壁炉&#x…

JUC之CAS比较并交换

CAS 原子类引入 加入原子整型类的操作后&#xff0c;无锁化的操作 CAS 比较并交换 硬件级别的保证 源码分析 引出UnSafe类 UnSafe源码分析 unsafe中的do-while保证自旋 public final int getAndAddInt(Object var1, long var2, int var4) {int var5;do {var5 this…

Linux:kubernetes(k8s)有状态的服务部署(14)

之前我都是对无状态进行的一个操作&#xff0c;我们想扩容就扩容&#xff0c;想缩容就缩容&#xff0c;根本不用去考虑他的一个网络环境&#xff0c;本地储存环境啥的一个状态 当我们做有状态的服务的操作&#xff0c;肯定要申请一个持久化的一个空间&#xff0c;以及网络&…

Linux环境(Ubuntu)上的防火墙工具使用方法

目录 概述 1 防火墙工具&#xff08;ufw&#xff09; 1.1 安装防火墙工具&#xff1a; 1.2 操作防火墙相关命令 2 ufw操作命令的范例 2.1 打开/关闭防火墙 2.1.1 打开防火墙 2.1.2 关闭防火墙 2.1.3 查询当前防火墙状态 2.1.4 允许选择的端口访问 2.1.5 允许选择固定…

自动写作软件哪个好?分享7款独家推荐

随着人工智能技术的不断发展&#xff0c;自动写作软件正逐渐成为现代写作的利器。这些AI写作工具能够帮助用户高效地生成文章、报告、新闻稿等内容&#xff0c;为写作工作带来了极大的便利。然而&#xff0c;市面上的自动写作软件琳琅满目&#xff0c;让人眼花缭乱。为了帮助读…

SpringCloud返回的是xml格式而非JSON数据

一、问题描述&#xff1a; 最近接触eureka&#xff0c;写了一个接口&#xff0c;使用RestController注解修饰了类&#xff0c;预期是返回json格式的数据&#xff0c;但是结果返回的是xml格式的数据。 二、问题分析&#xff1a; 原因是因为直接或间接引入了jackson-dataformat…

相机拍照与摄影学基础

1.相机拍照 相机可能形状和大小不同&#xff0c;但基本功能相同&#xff0c;包括快门速度、光圈和景深&#xff0c;这些是摄影的通用概念。即使是一次性相机也是基于这三个理念工作的。不同类型相机在这三个概念上的唯一区别是你可以控制这些功能的程度。这三个参数被称为相机…

mybatis+thymeleaf登录

目录 一.将页面显示在浏览器中 1.新建项目并导入页面 2.使用th标签 3.新建控制层 4.显示结果 二.将两个页面进行关联 1.提交表单 2.跳转页面 3.结果 三.登录账号名动态改变 1.获取登录表单数据 2.给页面传值 3.页面显示 4.结果 四.连接数据库 1.新建数据库 2.…

tcp/ip协议2实现的插图,数据结构8 (30 - 32章)

(201) 201 三十0 中断优先级补充 (202) 202 三十1 TCP的用户需求 函tcp_usrreq一 (203) 203 三十2 TCP的用户需求 函tcp_usrreq二 (204) 204 三十3 TCP的用户需求 函tcp_usrreq三 (205) 205 三十4 TCP的用户需求 函tcp_usrreq四 (206) 206 三十5 TCP的用户需求 函tcp_usrreq五 …

C语言 内存函数

目录 前言 一、memcpy()函数 二、memmove()函数 三、memset函数 四、memcmp()函数 总结 前言 在C语言中内存是我们用来存储数据的地址&#xff0c;今天我们来讲一下C语言中常用的内存函数。 一、memcpy()函数 memcpy()函数与我们之前讲的strcpy()函数类似&#xff0c;只…

[SAP ABAP] 创建事务码T-CODE

如何让用户通过输入事务码T-CODE跳转到Z437_TEST_2024程序输出界面&#xff1f; 1.输入事务码SE39&#xff0c;进入到维护事务的界面 2.输入需要创建的事务码名称(一般情况下用Y或者Z开头)&#xff0c;点击【创建】 这里我们创建一个名为ZTEST437的事务代码 3.在创建事务的窗口…

springboot爱看漫画小程序的设计与实现

摘 要 相比于以前的传统手工管理方式&#xff0c;智能化的管理方式可以大幅降低爱看漫画的运营人员成本&#xff0c;实现了爱看漫画的标准化、制度化、程序化的管理&#xff0c;有效地防止了爱看漫画的随意管理&#xff0c;提高了信息的处理速度和精确度&#xff0c;能够及时、…