【MySQL】基础操作

article/2025/8/11 20:55:37

MySQL(二)基础操作

一、数据库操作

1.创建库

2.查看库

3.选中库

4.删除库

二、表操作

1.创建表

1.1[comment '注释']:

1.2,...:

2.查看表

2.1查看所有表

2.2查看表结构

3.删除表

三、记录操作

1.插入记录

1.1全列插入

1.2指定列插入

1.3多行插入

1.4查询插入

2.查询记录

2.1全列查询

select * 的危险性

2.2指定列查询

2.3表达式列查询

2.4别名查询

2.5去重查询

2.6排序查询

NULL的特性

2.7条件查询

2.8分页查询

3.修改记录

4.删除记录

四、通用操作

1.库级

if exists

2.表级

,...

3.记录级

3.1order by

3.2where

3.3limit-offset

4.查询级

4.1as

4.2distinct

5.插入级

全列


一、数据库操作

服务器层面 对数据库 的操作

1.创建库

create database [if not exists] db_name [character set utf8mb4];

在此服务器里 创建一个数据库

2.查看库

show databases;

查看此服务器里 所有的数据库

3.选中库

use db_name;

选中此服务器里的 一个数据库,从服务器层面 转到数据库层面 对表与记录的操作,进而进行 对表与记录的操作

4.删除库

drop database [if exists] db_name;

删除此服务器里的 一个数据库


二、表操作

数据库层面 对 的操作

表结构

字段 垂直划分属性记录 水平构出数据实体 组成表

1.创建表

create table [if not exists] tb_name(field1 datatype[comment '注释'],...);

列字段 创建出表的属性模板,创建出 空记录字段的初始表


1.1[comment '注释']:

创建时 可为字段附上 创建时的注释说明

1.2,...:

  • 很多时候,可在 一个操作单元后面 加, 继续添数据单元,即可一次完成 多个单位的操作

2.查看表

2.1查看所有表

show tables;

查看此数据库中的 所有表

2.2查看表结构

desc tb_name;

查看此数据库中的 指定表的结构,再次以表的结构形式 去描述此表的结构


3.删除表

drop table [if exists] tb_name1,...;

删除此数据库中的 指定表


三、记录操作

数据库层面 对记录的 操作

1.插入记录

  • 插入的表名后面 不加列 默认视为 以全列加

1.1全列插入

insert [into] tb_name values (value1,...);

把记录的 所有列字段数据 都填充地插入

1.2指定列插入

insert [into] tb_name(col1,col3,...) values(value1,value3,...);

把记录的 指定列字段数据 填充地插入,记录的 未指定插入数据的列字段 会被填充为默认值

1.3多行插入

insert [into] tb_name values(value1,...), (value11,...),...;

一次插入多条记录

1.4查询插入

insert [into] tb_name[col...] select[col...] from tb_name;

用查询的结果插入


2.查询记录

执行顺序

1.from(join和as表别名)

2.where

3.group by

4.having

5.select(as列别名)

6.order by

查询 会遍历该表的 所有记录的 所有字段

  1. 每次以记录 为一个查询单位,先遍历完该记录的所有字段 将判定为需要的字段数据 保存
  2. 接着将保存的字段 代入条件表达式中 计算判断true或false
  3. 如果符合 就继续将保存的字段 代入查询表达式计算出结果
  4. 如果有定义别名 就以别名 作为返回缓冲区表中 此字段的列名
  5. 所有记录遍历完 返回缓冲区表完整生成后,如果有排序 就最后对此完整查询结果的返回表 进行排序

书写顺序

select [distinct] 列名 [as 别名]  from 表名 [where] [order by] [limit]-[offset]


2.1全列查询

select * from tb_name;

把此表的 所有记录的 所有列字段需求地查询,*是通配符,可以代指所有列字段


select * 的危险性

所有查询的遍历 都是对所有记录的 所有列字段 都去遍历,而select *危险之处在于 对所有记录的所有列字段 都纳入需求查询的字段,需求查询的字段太多了,当它们也大量符合条件时,会大量读取数据 使硬盘的IO跑满网络返回传输大量符合数据 也会使网络的带宽给跑满,导致其它发送请求的客户端 都越积越多地得不到及时回应,而使服务器类似于挂了


2.2指定列查询

select col1,col3 from tb_name;

把此表的 所有记录的 指定列字段 需求地查询


2.3表达式列查询

select col1+col2 from tb_name;

把此表的 所有记录的 表达式列字段 需求地查询,对符合时的 把列字段表达式计算成结果 到查询结果的 表达式列字段中


2.4别名查询

select col [as] alias_name from tb_name;

  • 把此表的 所有记录的 此查询结果列字段 换名

2.5去重查询

select distinct col1,... from tb_name;

  • 会对指定列字段 查询结果 去重

如果是以多列地去重,就是以多列的 合为整体的结果 来去重


2.6排序查询

select col from tb_name order by col1[asc/desc],...;

  • order by 列 指定 按一定顺序去操作

会对指定列字段的 查询结果 排序成 有序的查询结果,如果是以 多列地排序,就按顺序 优先级地排序,asc是升序、desc是降序,默认是以asc升序排序,null比任何数据都小,以null排序 升序排在最上,降序排在最下


NULL的特性

null参与大小比较,结果是最小

null参与运算计算,结果是null

null作为boolean值,视为false


2.7条件查询

select col from tb_name where condition

  • where(条件表达式) 按 记录符合条件 去执行对记录的操作

将记录的 条件需求查询字段 代入条件表达式,为true 就将此记录的查询字段 保留到查询结果

比较运算符
运算符说明
>,>=,<,<=大于,大于等于,小于,小于等于
=等于,NULL不安全,例如 NULL = NULL 的结果是 NULL,即false
<=>等于,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

2.8分页查询

select col from tb_name limit n offset m

  • limit限定 此次操作成功的 记录个数,offset指定 操作记录的 起始下标(默认以0开始)

指定 从m下标开始 限制查询出n个结果地 查询
 

2.9嵌套查询

将查询语句嵌套进 直接对查询结果操作 地使用

2.10合并查询

将查询结果 共列地合并拼接,union会对行结果集去重,union all不会去进行去重


  • 笛卡尔积联合查询 是字段增长的 行水平结果拼接
  • 合并查询 是字段不变的 行结果的竖直向下的增加

3.修改记录

update tb_name set col1 = expr,...

将记录的 指定列字段数据 进行修改


4.删除记录

delete from tb_name;

将记录从表中删除


四、通用操作

1.库级

if exists

if exists 操作对象名


2.表级

,...

一个操作单元后面 加, 继续添数据单元,即可一次完成 多个单位的操作


3.记录级

3.1order by

order by 列 指定 按一定顺序去操作


3.2where

where(条件表达式)记录符合条件 去执行对记录的操作


3.3limit-offset

limit限定 此次操作成功的 记录个数offset指定 操作记录的 起始下标


4.查询级

4.1as

查询列名 as 别名


4.2distinct

distinct 查询列名,...


5.插入级

全列

插入的表名后面 不加列 默认视为 以全列加


http://www.hkcw.cn/article/NrDVXbrDnK.shtml

相关文章

嵌入式硬件篇---蜂鸣器

蜂鸣器是一种常用的电子发声元件&#xff0c;主要分为有源蜂鸣器和无源蜂鸣器两类。它们在结构、工作原理、驱动方式、应用场景等方面存在显著差异。以下是详细介绍&#xff1a; 一、核心定义与结构差异 1. 有源蜂鸣器 定义&#xff1a; “有源” 指内部自带振荡电路&#x…

工程的焊接技术

一、焊接设备与材料 焊接设备&#xff1a;对应不同焊接方法&#xff0c;如焊条电弧焊设备包括电焊机、焊钳、接地夹等。 焊接材料 焊条 分类&#xff1a;按熔渣性质分为碱性焊条&#xff08;低氢型&#xff09;和酸性焊条。 选用原则&#xff1a;根据焊接场景选择&#xff0c;…

HackMyVM-Teacher

信息搜集 主机发现 ┌──(kali㉿kali)-[~] └─$ nmap -sn 192.168.43.0/24 Starting Nmap 7.95 ( https://nmap.org ) at 2025-06-01 01:02 EDT Nmap scan report for 192.168.43.1 Host is up (0.0084s latency). MAC Address: C6:45:66:05:91:88 (Unknow…

AE矩形工具蒙版找不到椭圆形工具怎么办?

是不是也跟我一样遇到了这个问题 &#xff1f; 还以为是自己安装的版本有问题。其实并没有。 只需要选择矩形工具&#xff0c;鼠标左键&#xff0c;长按1s即可有其他选项 这样就解决啦

Linux 学习-模拟实现【简易版bash】

1、bash本质 在模拟实现前&#xff0c;先得了解 bash 的本质 bash 也是一个进程&#xff0c;并且是不断运行中的进程 证明&#xff1a;常显示的命令输入提示符就是 bash 不断打印输出的结果 输入指令后&#xff0c;bash 会创建子进程&#xff0c;并进行程序替换 证明&#x…

【Android SDK(adb命令环境)工具安装下载教程】

1、打开下载地址&#xff1a;SDK 平台工具版本说明 | Android Studio | Android Developers 2、下载Android SDK Platform-Tools压缩包&#xff0c;选择路径进行解压 3、复制SDK文件platform-tools保存的路径 4、配置adb环境变量&#xff1b;按下wini,在设置界面搜索”环境…

Redis可视化工具 RDM mac安装使用

第一步&#xff1a;https://pan.baidu.com/s/10vpdhw7YfDD7G4yZCGtqQg?at1673701651004将dmg下载 第二部&#xff1a;点击下载的dmg文件进行安装、mac可能会提示&#xff1a; 无法验证此App不包含恶意软件 解决方法&#xff1a; 打开系统偏好设置>安全性与隐私>通用&am…

Mac 使用 Crossover 加载 Windows Steam 游戏库,实现 Windows/Mac 共享移动硬盘

Mac 使用 Crossover 加载 Windows Steam 游戏库&#xff0c;实现 Windows/Mac 共享移动硬盘 1. 在Crossover上安装Steam2. Steam容器加载移动硬盘3. 配置Steam库 前言&#xff1a;本文介绍了如何在Crossover上安装Steam并加载外接移动硬盘&#xff0c;实现在Window上下载的游戏…

Mac上媲美TortoiseSVN 的Svn的强大客户端 — macSvn

什么是macSvn&#xff1f; 如果你使用过 svn 那肯定听说过 TortoiseSVN, 但是 TortoiseSVN 并不支持在 mac 上使用。而 macSvn 是一款专为macOS设计的SVN&#xff08;Subversion&#xff09;客户端,它和TortoiseSVN一样&#xff0c;提供了直观的图形化操作方式.操作非常方便! …

给Android Studio配置本地gradle和maven镜像地址,加快访问速度

Android Studio在创建工程后默认会访问Google自己的官网去下载gradle和maven依赖项&#xff0c;国内访问Google的速度相当慢&#xff0c;如果没有科学上网的话&#xff0c;甚至无法访问。本文记录如何解决这些问题。 配置本地gradle 下载gradle 首先需要去国内的网站下载gra…

Flutter 打包报错:Execution failed for task ‘:flutter_plugin_android_lifecycle的解决办法

本篇文章主要讲解&#xff1a;Flutter 打包报错&#xff1a;Execution failed for task :flutter_plugin_android_lifecycle的解决办法。 日期&#xff1a;2025年2月16日 作者&#xff1a;任聪聪 报错现象&#xff1a; 报文信息&#xff1a; FAILURE:Buildfailedwithexception…

uniapp从入门到精通(全网保姆式教程)~ 别再说你不会开发小程序了

目录 一、介绍 二、环境搭建&#xff08;hello world&#xff09; 2.1 下载HBuilderX 2.2 下载微信开发者工具 2.3 创建uniapp项目 2.4 在浏览器运行 2.5 在微信开发者工具运行 2.6 在手机上运行 三、项目基本目录结构 四、开发规范概述 五、全局配置文件&#xff0…

macOS包管理器HomeBrew的安装和使用(适合小白)

Homebrew 是 macOS 上广受欢迎的包管理器&#xff0c;它让安装、更新、卸载和管理开发工具及应用程序变得非常简单&#xff0c;通过HomeBrew&#xff0c;用户可以快速获取最新版本的软件包&#xff0c;而无需手动下载和安装。本文将简单介绍如何在 Mac 上安装 Homebrew 以及如何…

Android 15 适配之16K Page Size :为什么它会是最坑的一个适配点

首先什么是 Page Size &#xff1f;一般意义上&#xff0c;页面(Page)指的就是 Linux 虚拟内存管理中使用的最小数据单位&#xff0c;页面大小(Page Size)就是虚拟地址空间中的页面大小&#xff0c; Linux 中进程的虚拟地址空间是由固定大小的页面组成。 Page Size 对于虚拟内…

adblock:为AdGuard和uBlock Origin定制的个性化过滤规则

adblock&#xff1a;为AdGuard和uBlock Origin定制的个性化过滤规则 adblock Personal filters and rules for AdGuard/uBlock Origin 项目地址: https://gitcode.com/gh_mirrors/adb/adblock 项目介绍 adblock 项目是一个开源的过滤规则集合&#xff0c;专门为AdGuard…

Xcode16 iOS18 编译问题适配

问题1:ADClient编译报错问题 报错信息 Undefined symbols for architecture arm64:"_OBJC_CLASS_$_ADClient", referenced from:in ViewController.o ld: symbol(s) not found for architecture arm64 clang: error: linker command failed with exit code 1 (use …

Mac如何连上Windows共享文件夹

首先保证mac和windows在同一局域网下 接着打开mac的【finder】&#xff0c;点击【Go】->【Connect to Server】 接下来输入 windows的IP,格式如下 smb://ip&#xff0c;然后点击【Connect】 接下来输入账号密码登录即可 由于我们的是任何人都可以访问&#xff0c;所以我选的…

手拆STL

vector v e c t o r vector vector&#xff0c;动态数组。 先来看一下它的一些基本操作及其拆后残渣。 1.a.push_back(x)&#xff0c;将 x x x加入动态数组 a a a的末尾。 实现&#xff1a;a[cnt]x 2.a.size()&#xff0c;查询动态数组 a a a中元素的数量。 实现&#xff1a;cn…

CppCon 2014 学习: C++ Test-driven Development

“Elephant in the Room”这个比喻常用来形容那些大家都知道但没人愿意讨论的重大问题。 这段内容讲的是软件质量管理的经典做法和潜在的问题&#xff1a; 经典做法&#xff1a;开发完成后才进行人工测试&#xff08;manual testing after creation&#xff09;。隐喻“Cape o…

vscode编辑器怎么使用提高开发uVision 项目的效率,如何编译Keil MDK项目?

用vscode编译uVision 项目只需要安装一个Keil Assistant插件&#xff0c;即可用vscode开发“keil 项目”。极大提高开发速度&#xff01; 1.安装Keil Assistant插件 安装插件成功之后&#xff0c;应该会让安装一个东西&#xff0c;点击安装即可 2.配置安装包路径 3.打开 uVi…