1、数据库操作语句

news/2024/11/26 5:18:57/

目录

1.    列的别名

2.    去除重复行

3.    空值参与运算

4.    着重号’’

5.    查询常数

6.    显示表结构

7.    过滤数据

8.    运算符:+、-、*、/(div)、%(MOD),dual为伪表

9.    比较运算符,true为1,false为0,=、<=>(安全等于)、<>(!=)、<、<=、>、>=

‘=’的比较

10.   Least()\greatest()

11.   Between  A  and  B

12.   离散查找in()、not  in()

13.   模糊查询like

15.   逻辑运算符:not或!(非)、and或&&(与)、or或||(或)、xor(异或)

16.   位运算符&、|、^(异或)、~、>>、<<

排序与分页

1、使用order  by对查询的数据进行排序操作,默认升序排列

2、ASC升序排列

3、Desc升序排列

4、用列的别名进行排序

5、二级排序

1)Order  by  [字段1]  asc/desc,[字段2]  asc/desc,……

6、分页

1)使用limit实现数据的分页显示

2)每页显示pagesize条记录,显示第pageno页。

3)MySQL8.0新特性:limit [条目数] offset [偏移量]

4)Mysql求字节数使用关键字length()


1.    列的别名

    使用AS

Select  id  as  学号  from  employ;

    使用  一对引号“”

Select  id  “学号”  from  employ;

    直接使用别名

Select  id  学号  from  employ;

2.    去除重复行

    在属性前面加distinct

Select  distinct  id  from  employ;

3.    空值参与运算

    空值为null,其中null不等同于0,‘’,‘null’

    空值参与运算结果一定为null,解决方法用ifnull

Select  salary*(1+ifnull(commission,0))  from  employ;//ifnull意思是如果commission是null,则用0替换。

4.    着重号’’

    使用的字段或表明是保留字、关键字时,使用着重号

Select  *from  ‘order’;

5.    查询常数

Select  ‘尚硅谷’,name  from  employ;

6.    显示表结构

    使用describe,显示表中字段详细信息

Describe  employ;

    使用desc,显示表结构

Desc  employ;

7.    过滤数据

    用where筛选符合条件的记录,过滤信息

Select  *from  employ  where  id=1;

8.    运算符:+、-、*、/(div)、%(MOD),dual为伪表

    在SQL中,+没有连接的作用,仅表示加法运算。此时会将字符型数字转化成为数值(隐式转换)

Select  100+‘1’  from  dual;//结果:101

    字符型字母会当成0处理

Select  100+‘a’  from  dual;//结果:100

    Null参与运算,结果为null

Select  100+null  from  dual;//结果:null

Select  ‘a’<>null  from  dual;//结果:null

    分母为0时,结果为null

Select  100  div  0  from  dual;//结果:null

    取模运算:%  MOD,余数的符号之和被除数有关

Select  12%3,12%5,12  MOD-5,-12  MOD  5,-12  MOD  -5  from  dual;//结果:0,2,2,-2,-2

9.    比较运算符,true为1,false为0,=、<=>(安全等于)、<>(!=)、<、<=、>、>=

‘=’的比较

    字符串与数字比较时,字符串存在隐式转换,如果转换数值不成功,则看做0

Select  1=2,1!=2,1=‘1’,1=‘a’,0=‘a’  from  dual;//结果:0,1,1,0,1

    纯字符串比较时,则按照ANSI编码值比较

Select  ‘a’=‘a’,‘ab’=‘ab’,‘a’=‘b’from  dual;//结果:1,1,0

    只要有null参与比较,结果就为null

Select  1=null,null=null  from  dual;//结果:null,null

注意:‘<=>’的比较,  ‘<=>’与’=’类似,唯一区别是:‘<=>’可以判断null。在两个操作数均为null时,返回值为1,否则返回0

       Select  1<=>null,null<=>null  fom  dual;//结果:0,1

    Is  null(值为空)、is  not  null(值不为空)、函数:isnull(字段)

Select  name,salary  from  employ  where  commission  is  null;

//查找commission值为null的记录

Select  name,salary  from  employ  where  commission  is  not  null;

//查找commission值不为null的记录

Select  name,salary  from  employ  where  isnull(commission);

//查找commission值为null的记录

10.   Least()\greatest()

    筛选最小值\最大值

Select  least(‘g’,’b’,’t’,’m’),greatest(‘g’,’b’,’t’,’m’)  from  dual;//结果:b,t

Select  least(name1,name2)  from  dual;//获取name1和name2中最小的

Select  least(length(name1),length(name2))  from  employ;//获取name1和name2长度最短的

11.   Between  A  and  B

    查询符合A到B之间的记录

Select  name,salary  from  employ  where  salary  between  A  and  B;

//查询工资在A和B区间的员工信息,包括A和B

Select  name,salary  from  employ  where  salary  >=6000  and(或&&)  salary<=8000;

//查询工资在6000到8000之间的员工信息

    查询符合A或符合B的记录

Select  name,salary  from  employ  where  salary<=A  or  salary>=B;

//查询工资小于A或大于B的员工信息

Select  name,salary  from  employ  where  salary  not  between  A  and  B;

//查询工资不在A和B区间的员工信息

12.   离散查找in()、not  in()

    In(set)判断一个值是否是列表中的一个值。not  in(set)判断一个值是否不是列表中的一个值

Select  name,salary  from  employ  where    department  in(A,B,C);

//查找部门属于A、B、C中员工信息

Select  name,salary  from  employ  where  department  not  in(A,B,C);

//查询不能不属于A,B,C的员工信息

13.   模糊查询like

    Like:判断一个值是否符合模糊匹配规则

Select  name,salary  from  employ  where  name  like  ‘%a%’;

//%代表不确定个数的字符,查询name包含字符a的姓名

Select  name,salary  from  employ  where  name  like  ‘a%’;

//查询name以字符a开头的员工信息

Select  name,salary  from  employ  where  name  like  ‘%a%b’or  name  like  ‘%b%a’;

//查询包含字符a和b的name

    查询指定位置字符,_代表一个不确定的字符

Select  name,salary  from  employ  where  name  like  ‘_a%’;

//查询第二个位置字符为a的姓名

    如果查询的字段含有‘_’,查询‘_’需要使用转义字符,或者使用escape关键字声明‘_’

Select  name,salary  from  employ  where  name  like  ‘%\_%’;

//查询含有‘_’的姓名

Select  name,salary  from  employ  where  name  like  ‘%_%’  escape  ‘_’;

//查询含有‘_’的姓名

14.   正则表达式regexp,语法格式:expr  regexp  [匹配条件]。如果expr满足匹配条件,返回1,;否则返回0。若expr或者匹配条件任何一个为null,则结果为null。

    ‘^’匹配以该字符后面的字符开头的字符串

    ‘$’匹配以该字符前面的字符结尾的字符串

    ‘.’匹配任何一个单字符

    “[…]”匹配在方框内的任意字符。例如:“[abc]”匹配‘a’或‘b’或‘c’。命名字符的范围使用‘-’,例如“[a-z]”匹配任何字母,而“[0-9]”匹配任何数字

    ‘*’匹配零个或多个在它前面的字符。例如:“x*”匹配任何数量的‘x’字符,“[0-9]*”匹配任何数量的数字,而“*”匹配任何数量的任何字符

Select  ‘shkstart’  regexp  ‘^s’,  ‘shkstart’  regexp  ‘t$’,  ‘shkstart’  regexp  ‘hk’  from  dual;//结果:1,1,1

Select  ‘atguigu’  regexp  ‘gu.gu’,‘atguigu’  regexp  ‘[ab]’  from  dual;//结果:1,1

15.   逻辑运算符:not或!(非)、and或&&(与)、or或||(或)、xor(异或)

Select  name,salary  from  employ  where  department  =A  xor  salary>B;

//查询部门符合A但工资不大于B的员工信息,以及部门不等于A但工资大于B的员工信息

注意:优先级not>and>or,!>&&>||=xor

16.   位运算符&、|、^(异或)、~、>>、<<

Select  10&~1  from  dual;//结果:10

排序与分页

1、使用order  by对查询的数据进行排序操作,默认升序排列

Select  *from  employ  order  by  name;//按姓名的顺序排序

2、ASC升序排列

Select  name,salary  from  employ  order  by  salary  asc;

//按照工资的高低升序排列

3、Desc升序排列

Select  name,salary  from  employ  order  by  salary  desc;

//按照工资高低降序排列

4、用列的别名进行排序

Select  name,salary  as  工资  from  employ  order  by  工资;

//按工资高低的顺序排序

注意:列的别名只能在order  by中使用,不能在where中使用。Where需要声明在from之后,order  by之前。

5、二级排序

1)Order  by  [字段1]  asc/desc[字段2]  asc/desc,……

Select  namedepartmentsalary  from  employ  order  by  department  desc,salary  asc;

//显示员工信息,按照department降序排序,salary的升序排序

注意:多列排序,首先排序的第一列必须有相同的列值,才会对第二列排序。如果第一列数据中所有的值不是唯一的,将不再对第二列排序。

6、分页

1)使用limit实现数据的分页显示

Select namesalary from employ limit 0,20

//每页显示20条记录,显示第一页,“0”表示偏移量,“20”表示每页多少条记录

Select namesalary from employ limit 20,20

//每页显示20条记录,显示第二页,第一个“20”表示偏移量,第二个“20”表示每页多少条记录

2)每页显示pagesize条记录,显示第pageno页。

公式:(pagesize-1*pageno

注意:Whereorder bylimit声明顺序如下:where>order by>limit

Select namesalary from employ where salary>6000 order by salary desc limit 0,20

//筛选工资大于6000,按照降序顺序排列,分页显示,每页显示20条数据。

注意:limit偏移量从0开始时,0可以不写,默认从头开始显示。

如:limit 0,20==limit 20

3)MySQL8.0新特性:limit [条目数] offset [偏移量]

Select namesalary from employ limit 20 offset 0

//每页显示20条记录,从第一页显示

4)Mysql求字节数使用关键字length()

Select name,salary,email from employ where email like ‘%e%’ order by length(email) asc

//查询邮箱含有e的员工信息,并按照邮箱字节数排序


http://www.ppmy.cn/news/547639.html

相关文章

三芯和四芯音频接口转换

下图是根据电脑和笔记本电脑实际测量后绘制的图&#xff0c;无论三芯还是四芯&#xff0c;麦克风端到地都有2v左右的电压用来驱动麦克风。

ES8311单声道音频编解码器

ES8311 是一种低功耗单声道音频编解码器&#xff0c;包含单通道 ADC、单通道 DAC、低噪声前置放大器、耳机驱动器、数字音效、模拟混音和增益功能。它通过 I2S 和 I2C 总线与 ESP32-S3-WROOM-1 模组连接&#xff0c;以提供独立于音频应用程序的硬件音频处理。 文档以及相关驱动…

H264(AVC)/H265(HEVC)/H266(VVC):块划分的区别

本文将对比分析H264/H265/H266中关于块划分的区别。 注&#xff1a; 1、本文参考了下列文章&#xff1a; https://blog.csdn.net/Dillon2015/article/details/90053818https://blog.csdn.net/Dillon2015/article/details/103364336https://www.it610.com/article/1280316313…

HEVC(H.265)与AVC(H.264)的区别与联系

一、什么是H.265&#xff1f; H.265是相对于H.264的一个升级版&#xff0c;是在原有H.264标准上的一个拓展和优化。H.265旨在在有限带宽下传输更高质量的网络视频&#xff0c;仅需原先的一半带宽即可播放相同质量的视频。这也意味着&#xff0c;我们的智能手机、平板机等移动设…

day23 | 669. 修剪二叉搜索树、108.将有序数组转换为二叉搜索树、538.把二叉搜索树转换为累加树

目录&#xff1a; 解题及思路学习 669. 修剪二叉搜索树 链接&#xff1a;https://leetcode.cn/problems/trim-a-binary-search-tree/ 给你二叉搜索树的根节点 root &#xff0c;同时给定最小边界low 和最大边界 high。通过修剪二叉搜索树&#xff0c;使得所有节点的值在[lo…

ES8311 低功耗单声道音频编解码器(中文)

版本11.0 低功耗单声道音频编解码器 特征 系统 • 高性能、低功耗多位音频ADC和DAC • I2S/PCM 主串行或从串行数据端口 • 256/384Fs, USB 12/24 MHz 和其他非标准音频系统时钟 • I2C 接口 ADC • 24 位、8 至 96 kHz 采样频率 • 100 dB 信噪比&#xff0c;-93 dB THDN…

笔记本与台式电脑硬盘的尺寸

台式硬盘3.5寸&#xff0c;高度26.1 毫米深度147 毫米宽度101.6 毫米&#xff0c;笔记本2.5寸硬盘 70*100mm 厚度9.5mm和7mm两种

台式机机械硬盘的安装

前言 之前电脑的机械硬盘坏了&#xff0c;害我许久不能打开电脑&#xff0c;以为只是系统坏了&#xff0c;重装吧怎么都装不上&#xff0c;最后才知道是机械硬盘坏了。不说废话了&#xff0c;近两天买了对口的机械硬盘&#xff0c;收到了吧&#xff0c;也不会安装。具体怎么安…