数据库select操作
创始人
2025-05-30 22:52:47

插入数据时,一次插入多条数据,比多次插入多条同样的数据消耗时间少很多。

  • 表的查找

1.全列查找:直接把一个表的所有列所有行都打印。

select * from 表名。

*叫通配符,表示一个表的所有列。

之前说数据库的表存在硬盘上,

 而select * from 表名,查询的临时结果表,不是在硬盘上,而是在内存中,随着进行了输出后,数据也就被释放了。

这个表是永久存储在服务器硬盘的,当输入命令后,客户端会把命令包装成网络请求,发给服务器,服务器收到命令请求,会操作硬盘,从硬盘中读取数据,把数据包装成响应,这个响应就是查询的结果。

客户端收到响应数据后,就会临时的把数据在内存中保存起来,并在显示器上输出。

打印完毕后, 在客户端临时保存的数据也就被释放了。

select不会影响服务器保存的数据。

  • 指定列查询。

select 列名 ,列名 from 表名。 

相比于全列查询,这种查询更高效。

  • 指定查询字段为表达式

 查询时进行一下运算(列与列之间)

例如期望查询结果语文比实际多10分。

 实际表中的数据不会变。

我们也可以查询总分。

下面decimal(3,1)中的三代表数据有效数字为3,但是上面加完后的有效数字不等于3也是可以的。 

 

临时表类型会自动适应,保证结果准确性。 

  • 查询字段指定别名,相当于是给查询结果的临时表,指定新的列名。

 通过指定别名,避免得到的临时表名字比较乱。

  • 查询结果去重 

 如果针对多列去重,那么两个对象,这俩列都相同才会去掉。

  • 排序 

根据临时表排序,磁盘上的数据不变。

select 列名 from 表名 order by 列名 asc/desc (asc是升序,desc是降序)

 "*"代表全部列。asc不写,默认是升序。NULL代表最小。

我们也可以用总分进行升序排序。

也可以取别名排序。

 排序时也可以通过order by来指定多个列进行排序。

先根据第一列排,第一列相同,按第二列排序。

 先按数学排,数学相同按语文排。

如果不指定多个列,只有指定一个列,如果结果相同,彼此之间的顺序都是不可预期的。

  • 条件查询

 select 列名 from 表名 where 条件;

NULL=NULL结果是NULL,会视为假,条件不成立,所以不能这样判断是不是空。

<=>也是比较相等,只是用它比较空值,结果为真。

 下面是同一个人比较。

 然而下面的会报错。

 where语句不能使用别名

查询语句,要查询的列和where后面访问的列是没什么关联的。

下面是个查询的例子

下面是寻找数学大于80或者英语大于80的。

表达式里如果有and和or,先计算and,后计算or,如果想打破优先级 就加括号。

下面例子中,孟德英语小于70,画横线的条件不成立,但是因为和or是或的关系,他chinese大于80条件成立,所以孟德也会打印。

然后下面这个因为和english>70是与的关系,所以没有孟德。 

 下面这两个效果一样。

 between and是左闭右闭的。

in代表是其中的值就为真。

  •  模糊查询

like指令是模糊匹配,搭配统配符使用。

只要对方描述的字符串符合你描述的这个形式就行。 

%代表任意个任意字符,也包含0个字符。

_代表任意一个字符。 

 下面演示一下。

下面这个是全部数据

下面测试一下。 

 

 

模拟匹配其实是指定一个规则,但凡符合这个规则的字符串都会被筛选出来。

%张%代表张前面可以有任意字符,后面也能有任意字符。 

如果抛开SQL,站在更广的角度看通配符体系的话,编程中还有一个对象叫"正则表达式",提供了更多的特殊符号,来描述一个字符串规则。

正则表达式里面特殊符号太多,可读性太差。

因为和NULL=NULL为假,所以即使是NULL,条件也会是假。

  •  分页查询

下面这样,一页就只展示3个数据了。 

 

获取下一页可以下面这样做。

 offset 0,还是前3条。

offert 几代表向后移动几个。

 

 移多后就变空了。

 下面是输出成绩前3高的指令。

select * from 表名,对于生产环境的数据库来说, 非常危险~

~危险不危险,看的是返回结果的数据量是多还是少~

~ 返回的数据量少,其实就还好.返回的数据量多,就比较危险~ 

如何才能让 sql 不那么危险?
1.限制更严格的条件where
2.使用 limit 更稳妥的限制.

  • 修改 

把select换成update

update是会修改数据库磁盘数据的 

where后面的条件就直接决定了多少个记录受到了影响。

没有直接的撤销操作。 

 

 如果出现下面错误,说明数据超出类型范围了。比如说用decimal(3,1),成绩超出100,有效数字就会变为4位,就会出错。

 这里只改了2个,是因为张三丰是NULL,加30不会变。

show warnings可以查看警告具体信息。 

delete from 表名 where 条件 是删除操作。delete是只删除表数据。

drop table是表和数据都没有了。 

相关内容

热门资讯

第十三届蓝桥杯省赛 pytho... 文章目录前言主要内容🦞试题 A:排列字母思路代码🦞试题...
阿里春招-2023.3.15-... 极差三元组计数 Problem Description 给定一个数组,请你计算有多少个...
电压放大器在钢筋剥离损伤识别试...   实验名称:钢筋剥离损伤识别试验  研究方向:无损检测  测试目的&#...
MOCO论文前几段精读 MoCo MoCo是CVPR 2020的最佳论文提名,算是视觉领域里,使...
【lua初级篇】基础知识和开发... 文章介绍 文章介绍 简述 工具安装配置和下载 快速看基础知识 一些常用的关键字一览 数据类型 tab...
Yuv422、Nv12转C#B... 1.1、Nv12转Bitmapint w = 1920;int h = 1080;i...
Linux互斥量和信号量的区别... 互斥量和信号量的区别 1.互斥量用于线程的互斥: 互斥:加锁解锁,是指某...
Git 和 GitHub 超入... 1.解决行结束符问题 需要在你的仓库中添加一个.gitattributes文件,标记正...
基于C++的AI五子棋游戏项目... 项目资源下载 基于C++的AI五子棋游戏项目源码压缩包下载地址基于C+...
#浅聊 webSocket (... 如果可以实现记得点赞分享,谢谢老铁~ 一,什么是webso...
Java SE API kno... Java SE API know how 字符串 紧凑字符串 java8 无论字符串的编码ÿ...
常用的VB函数 数学函数函数说明示例Sin(N)返回自变量N的正弦值Sin(0)=0 N为弧度Cos(N)返...
C++ 机房预约系统(五):管... 7.3 显示功能 功能描述: 显示学生信息或教师信息 功能实现: voi...
PIC单片机的一些问题 error 1347 can't find 0x16 words (0x16 withtotal) ...
完美日记母公司再度携手中国妇基... 撰稿 | 多客 来源 | 贝多财经 当春时节,梦想花开。和煦的三月暖阳,...
GDPU C语言 天码行空3 1. 分段函数 #includeint main(){double x,y;scanf("%lf",...
【瑞萨 MCU】开发环境搭建之... e2 studio e2 studio(简称为 e2 或 e2s)是瑞萨...
C语言内联汇编 之前我们介绍了一种C语言与汇编代码混合编程方式,就是两个文件分开编写,分...
Linux 网络编程学习笔记—... 一、TCP 服务的特点 传输层协议主要有 TCP 协议和 UDP 协议,前者相对于后者...
KubeSphere All ... KubeSphere All in one安装配置手册 1. 初始化 1.1 配置apt源 # vi...
学习软件测试怎么能缺少练手的软... 你好,我是凡哥。 最近收到许多自学自动化测试的小伙伴私信,学习了理论知识...
【面试题】浅谈css加载是否会... 大厂面试题分享 面试题库前后端面试题库 (面试必备) 推荐:...
直播带货系统开发的关键点、代码... 时下,直播的热度依然不减,而它的产物之一:直播带货系统&#...
一文读懂强化学习! 一.了解强化学习1.1基本概念强化学习是考虑智能体(Agent)与环境&...
Spring Cloud之一:... 目录 环境 Eureka工程的创建步骤 系列目录(持续更新。。。) S...
golang实现守护进程(2) 前言golang实现守护进程,包含功能:1. 守护进程只创建一次2. 平...
url 格式详解 统一资源定位系统(uniform resource locator; url ...
elasticsearch7.... elasticsearch版本:7.17.3 目标:实现对类型为text...
SpringBoot 加载系统... 开发环境: IDEA 2022.1.4+ MyBatis         代码参考:spri...
交换机概念和知识和命令 目录 一、华为交换机基础学习的一些重要概念和知识 二、交换机常用命令大全 三、不常用的交换机命令 ...