当前位置: 首页 > news >正文

玉林市网站开发公司电话企业网络营销成功案例

玉林市网站开发公司电话,企业网络营销成功案例,河源市住房城乡和建设局网站,中国疫情最新消息今日新增Mysql基础篇之DQL语言 1. 基础查询特点语法格式闲言碎语 2. 条件查询语法格式条件表达式逻辑表达式模糊查询 3. 排序查询4. 常见函数单行函数1. 字符函数2. 数学函数3. 日期函数4. 流程控制函数5. 其他函数 分组函数 5. 分组查询分组函数语法格式特点 6. 多表连接查询分类SQL 七…

Mysql基础篇之DQL语言

  • 1. 基础查询
    • 特点
    • 语法格式
    • 闲言碎语
  • 2. 条件查询
    • 语法格式
    • 条件表达式
    • 逻辑表达式
    • 模糊查询
  • 3. 排序查询
  • 4. 常见函数
    • 单行函数
      • 1. 字符函数
      • 2. 数学函数
      • 3. 日期函数
      • 4. 流程控制函数
      • 5. 其他函数
    • 分组函数
  • 5. 分组查询
    • 分组函数
    • 语法格式
    • 特点
  • 6. 多表连接查询
    • 分类
    • SQL 七种连接示意图
    • SQL92语法
      • 等值连接
      • 非等值连接
      • 自连接
    • SQL99语法
      • 简述
      • 语法格式
      • 内连接
      • 外连接
      • 交叉连接
    • SQL92和SQL99对比
  • 7. 子查询
    • 特点、分类
    • 示例
    • 标量子查询 (单行子查询)
    • 列子查询 (多行子查询)
    • 行子查询 [ 结果集一行多列或多行多列(用的较少)]
    • 子查询位置示例
    • EXISTS 用法
  • 8. 分页查询limit
    • 语法
  • 9. 联合查询
  • 10. 执行顺序

1. 基础查询

特点

① 通过select查询完的结果 ,是一个虚拟的表格不是真实存在

② 要 查询的东西 可以是常量值表达式字段函数


示例:

  • AS :起别名,可以省略

  • DISTINCT去重 , 放在 字段前面

  • CONCAT(str1,str2,...) :MySQL中用于字符串拼接

  • IFNULL(expr1,expr2) :判断某 字段表达式 的值 是否为null
  • 如果expr1的值不为null,返回expr1的值
  • 如果为null,返回expr2的值

  • ISNULL(expr) :判断 expr 的值是否为null
  • 如果expr的值不为null,返回0
  • 如果为null,返回1

  • NULLIF(expr1,expr2) :判断某 字段表达式 的值 是否为null
  • 如果 expr1=expr2 成立,那么返回值为null,否则返回值为expr1的值

  • IF(expr1,expr2,expr3) :判断某 字段表达式 的值 是否为null
  • 如果expr1的值为true,则返回expr2的值,否则返回expr3的值

语法格式

SELECT 要查询的东西【FROM 表名】;

闲言碎语

  • SQL 语言大小写不敏感
  • SQL可以写在一行或者多行
  • 关键字不能被缩写也不能分行
  • 各子句一般要分行写
  • 使用缩进 提高语句的可读性

2. 条件查询

语法格式

select 要查询的字段|表达式|常量值|函数 fromwhere 条件;

条件表达式

示例

age > 18

条件运算符(示例):

> < >= <= = != <>

逻辑表达式

示例

age > 18 && age < 60

条件运算符(示例):

and(&&):两个条件如果同时成立,结果为true,否则为false

or(||):两个条件只要有一个成立,结果为true,否则为false

not(!):如果条件成立,则not后为false,否则为true

模糊查询

示例

like% 任意0个多个字符; _表示任意单个字符 】

between ... and ... 【注意:包含临界值,等同于>=<=

in【列表中类型必须一致

is null is not null 【可以判断null值

<=> 【表示 安全等于 ,判断值是否相等,既可以和数值搭配,也可以和null搭配】

ESCAPE用法:

案例: 查询员工名称中 第二个字符为_ 的员工名字;【注意 _通配字符,所以需要转义,如果是普通字母就不需要了】

方式一:可以使用 \转义 字符, 如:name like "_\_%"

方式二ESCAPE 任意 字符,如:name like "_$_%" ESCAPE '$'

ESCAPE '$'只是强调说明一下$在这里被当作是转义字符使用,并不一定非要使用$,也可以使用a b c......只不过使用$可读性强 些】

is null<=>的区别

is null仅仅判断null,可读性较高
<=>既可以判断null值,又可以判断普通的数值,但是可读性较差,很少用

3. 排序查询

默认asc升序排序


语法格式

select 要查询的东西

from

where条件

order by排序的字段|表达式|函数|别名 【asc|desc


多个字段排序中间用英文逗号隔开,不能用and连接

4. 常见函数

MySql中索引是从1开始的

单行函数

1. 字符函数

示例

concat 拼接字符串

substr 截取子串

upper换成大写

lower换成小写

trim 去前后指定的空格字符

ltrim边空格

rtrim边空格

replace 替换

lpad 左填充

rpad 右填充

instr 返回子串第一次出现的索引

length 获取字节个数





示例

在这里插入图片描述

2. 数学函数

示例

round 四舍五入

rand 随机数

floor 向下取整:返回小于等于该参数的最小整数

ceil 向上取整:返回大于等于该参数的最小整数

mod 取余:

  • mod(a,b) 运算过程为 a-a/b*b 运算结果的符号和 a 保持一致

  • 例如:mod(-10,3) 运算过程:

    (-10)-(-10)/3*3 = (-10)-(-3)*3 = (-10)-(-9)= -1




truncate 截断





示例


在这里插入图片描述

3. 日期函数

示例

now 当前系统日期+时间

DATEDIFF(expr1,expr2) :可以统计两日期之间相差的天数

curdate 当前系统日期

curtime 当前系统时间

str_to_date 将字符转换成日期

date_format 将日期转换成字符

在这里插入图片描述





示例


在这里插入图片描述

SELECTNOW() `now`, -- 当前系统日期+时间CURDATE() `curdate`, -- 当前系统日期 CURTIME() `curtime`, -- 当前系统时间DATEDIFF('2024-12-15', '2024-12-10') `DATEDIFF`,-- 统计两日期之间相差的天数 STR_TO_DATE('8-11-2024', '%m-%d-%Y') `strToDate`,-- 将字符转换成日期DATE_FORMAT( '2024/08/12', '%Y年%m月%d日' ) dateToStr-- 将日期转换成字符
FROMDUAL;

4. 流程控制函数

百度百科

  1. IF(expr1,expr2,expr3) 函数处理双分支if else 的效果

函数用法说明: 如果 expr1TRUE (expr1 <> 0 and expr1 <> NULL) ,则 IF() 的返回值为 expr2 ; 否则返回值则为 expr3 IF() 的返回值为数字值或字符串值,具体情况视其所在语境而定

  1. CASE WHEN THEN 函数

case 要判断的字段或表达式

when 常量1 then 要显示的值1

when 常量2 then 要显示的值2

...

else 要显示的值n

end



在这里插入图片描述

case 要判断的字段或表达式

when 条件1 then 要显示的值1

when 条件2 then 要显示的值2

...

else 要显示的值n

end



在这里插入图片描述

5. 其他函数

示例:主要是一些数据库系统相关的函数

SELECT VERSION(); 查看MySQL版本号

SELECT DATABASE(); 查看当前库

SELECT USER(); 查看当前连接用户

分组函数

分组函数 用作统计使用,又称聚合函数统计函数组函数


分类

sum :求和

avg :平均值

max :最大值

min :最小值

count :计数




特点:

  • 以上五个分组函数都忽略 null值,除了count(*)

  • sumavg一般用于处理数值型maxmincount可以处理任何数据类型

  • 都可以搭配distinct使用,用于统计去重后的结果

  • count的参数可以支持: 字段*常量值,一般放1,建议使用 count(*)
    在这里插入图片描述
  • 分组函数一同查询的字段要求是group by 后的字段

5. 分组查询

分组函数

分组函数 用作统计使用,又称聚合函数统计函数组函数


分类

sum :求和

avg :平均值

max :最大值

min :最小值

count :计数

语法格式

语法格式

select 分组函数, 列(必须出现在group by 后面的列)

from

where 筛选条件

group by 分组的列表

order by 子句

查询的字段要求是分组函数group by后出现的字段

特点

特点:

  1. group by 支持单个字段分组、多个字段分组(逗号隔开,无顺序要求)、表达式函数(用 较少)


  2. 分组函数一起查询的字段必须是group by后出现的字段


  3. 可以支持排序(排序放在整个分组函数的最后


  4. having后可以支持别名,只是 不常用


  5. 分组筛选 ,筛选条件位置(参考下述对比图表

① 能用 分组前 筛选的,优先考虑 分组前 筛选
分组函数做条件 肯定在having子句中

特点 5 说明针对的表位置关键字
分组前筛选原始表group bywhere
分组后筛选分组后的结果集group byhaving

6. 多表连接查询

分类

年代

  • SQL92标准:【MySQL仅仅支持 内连接

  • SQL99标准【推荐使用】:【MySQL中仅仅支内连接+外连接左外和右外MySQL不支持全外链接+交叉连接




功能

内连接

  • 等值连接
  • 非等值连接
  • 连接

外连接

  • 左外连接
  • 右外连接
  • 全外连接

交叉连接

SQL 七种连接示意图

在这里插入图片描述

SQL92语法

MySQL仅仅支持 内连接

等值连接

语法

select 查询列表

from 表1 别名,表2 别名

where 表1.key = 表2.key

and 筛选条件】

group by 分组字段】

having 分组后的筛选

order by 排序字段】






注意事项

  1. 等值连接的结果 = 多个表的交集
  2. n表连接,至少需要n-1连接条件
  3. 多个表不分主次,无顺序要求
  4. 一般为表起别名,提高阅读性和性能

非等值连接

语法和 等值连接 相同,where后变为非等值连接条件


示例:

在这里插入图片描述

自连接

等值连接一样


示例:

在这里插入图片描述

SQL99语法

简述

通过join关键字实现连接

MySQL仅仅支持 内连接+外连接左外和右外不支持全外连接) +交叉连接

含义:1999年推出的sql语法

支持:

  • 内连接(★) inner
  • 外连接

左外() leftouter

右外() rightouter

全外fullouter

  • 交叉连接cross

语法格式

语法

select 字段,...

from 表1

inner|left outer|right outer|crossjoin 表2 on 连接条件

inner|left outer|right outer|crossjoin 表3 on 连接条件

where 筛选 条件】

group by 分组 字段】

having 分组 筛选 条件】

order by 排序 的字段或表达式】

内连接

语法:

select 查询列表

from 表1 别名

inner join 表2 别名

on 连接条件;





分类:

  • 等值连接
  • 非等值连接
  • 连接





特点:

①添加排序分组筛选

inner可以省略

③ 筛选条件放在where后面,连接条件放在on后面,提高分离性,便于阅读

inner join连接和sql92语法中的 等值连接 效果是一样的,都是查询多表的交集




示例:

  • 等值连接
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 非等值连接
    在这里插入图片描述
    在这里插入图片描述
  • 连接
    在这里插入图片描述
    在这里插入图片描述

外连接

应用场景:

用于查询一个表中,另一个表没有的记录





特点:

1、外连接的查询结果为主表中的所有记录
      如果从表中有和它匹配的,则显示匹配的值
      如果从表没有和它匹配的,则显示null

外连接查询结果=内连接结果+主表中有而从表没有的记录

2、左外连接,left join 左边的是主表
      右外连接,right join 右边的是主表

3、左外右外交换两个表的顺序,可以实现同样的效果

4、全外连接=内连接的结果+表1中但表2没有的+表2中但表1没有

  • MySQL不支持全外连接
  • 可以参考上述 SQL 七种连接示意图 理解




示例:

  • 左外连接
    在这里插入图片描述
    在这里插入图片描述
  • 右外连接
    在这里插入图片描述
  • 全外连接
    百度百科
    在这里插入图片描述

交叉连接

在这里插入图片描述

SQL92和SQL99对比

功能:sql99支持的较多
可读性:sql99实现连接条件筛选条件的分离,可读性较高

7. 子查询

特点、分类

特点:

  1. 子查询都放在小括号内

  2. 子查询可以放在from后面、select后面、wherehaving后面、exists后面,但一般放在条件的右侧

  3. 子查询优先于主查询执行主查询使用了子查询 的执行结果

  4. 子查询根据查询结果的行数不同分为以下两类
  • ① 单行子查询
  • 结果集 只有一行
  • 一般搭配单行操作符使用:> < = <> >= <=
  • 非法使用子查询 的情况:
  • a、子查询的结果为一组值
  • b、子查询的结果为空
  • ② 多行子查询
  • 结果集 有多行
  • 一般搭配多行操作符使用:any/some、all、in、not in
  • in: 属于子查询结果中的任意一个就行
  • anyall往往可以用其他查询 如: min 和 max 代替
    在这里插入图片描述

示例

示例:

在这里插入图片描述

在这里插入图片描述

标量子查询 (单行子查询)

标量子查询(单行子查询)

在这里插入图片描述

列子查询 (多行子查询)

列子查询(多行子查询)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


在这里插入图片描述
在这里插入图片描述

行子查询 [ 结果集一行多列或多行多列(用的较少)]

**行子查询 [ 结果集一行多列多行多列用的较少)]**了解即可

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

子查询位置示例

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

EXISTS 用法

where 后使用 带有 existsnot exists的子查询作为条件时,子查询不返回任何记录的数据,而是返回逻辑值truefalse

注意: 执行顺序是先执行外查询再执行内查询 ,根据外查询的每条执行结果执行内查询

  1. exists子查询结果 ,返回 true保留外查询 的这条数据;否则返回false不保留外查询 的这条数据
  2. not exists子查询结果 ,返回 true保留外查询 的这条数据;否则返回false不保留外查询 的这条数据

因为子查询只是返回逻辑值truefalse,所以子查询中的select 后跟什么字段不重要,可以是任何内容,但是为了执行效率,建议写 1

在这里插入图片描述

8. 分页查询limit

语法

语法

select 字段|表达式 ,...

from

where 筛选 条件】

group by 分组 字段】

having 分组 筛选 条件】

order by 排序 的字段或表达式】

limit 【起始的条目索引】,条目数;





特点:

  1. 起始条目索引0 开始
  1. limit子句放在 查询语句的最后
  1. 规律公式:

select * from 表 limit (page-1)*size, size

  • size 每页显示条目数
  • page 要显示的页数


    举例理解:

    假定:limit A,B(size)

                B(size) = 10

    page           A
    1               0
    2               10
    3               20
    4              30
    ...
    B(size)       (page-1)*size






示例:

在这里插入图片描述




  • limit A, B

理解: 跳过 A 条数据,取 B 条数据

9. 联合查询

语法

select 字段|常量|表达式|函数 【from 表】 【where 条件】

unionall

select 字段|常量|表达式|函数 【from 表】 【where 条件】

unionall

...

select 字段|常量|表达式|函数 【from 表】 【where 条件】





特点:

  1. 多条查询语句的查询的列数必须是一致的
  2. 多条查询语句每一列的类型和顺序最好一致
  3. union代表去重union all代表不去重





应用场景:

要查询的结果来自于多个表,且它们之间没有直接的连接关系,但查询结果一致

10. 执行顺序

MySQL书写顺序执行顺序
select 查询列表7
from 表11
join 表22
on 连接条件3
where 筛选条件4
group by分组列表5
having 分组后的筛选6
order by排序列表8
limit 偏移数,展示条目数9
http://www.ds6.com.cn/news/29157.html

相关文章:

  • 哪里有网站设计学整站优化报价
  • 网站收录 作用互联网推广营销
  • 商丘做网站推广长沙网站制作
  • 在上海建网站多少钱网站推广服务外包
  • 汽车网站国外域名购买
  • 可以做公司宣传的网站有哪些杭州做seo的公司
  • 无锡网站服务免费无代码开发平台
  • 聊城百度做网站的关键词指数批量查询
  • 企业网站策划书1000字北京做网站的公司有哪些
  • rest api 做网站四平网站seo
  • wordpress 分类目录 丢失临沂网站seo
  • 中山精品网站建设机构站内推广有哪些方式
  • 政府网站建设 政府采购seo人员是什么意思
  • 新手写作网站网页设计需要学什么软件
  • 天眼查网站建设公司广东省新闻
  • 帮人家做网站2023b站推广大全
  • 怎样做自适应网站上海优化seo排名
  • 网盘怎么做电影网站郑州网站关键词推广
  • 泰安五险一金的工作最新招聘深圳seo优化推广
  • 中国机械加工网加热炉节能优化设计电子课本下载
  • 如何高效建设品牌网站?seo职位具体做什么
  • 为何网站打不开黑帽seo
  • 简述php网站开发流程图cnzz统计
  • 做好网站建设对企业有什么作用建立网站平台
  • 教着做美食的网站微信视频号小店
  • 建筑行业网站建设seo3的空间构型
  • 做网站做的百度网址提交
  • 亚马逊卖家可以做促销的网站广东深圳疫情最新情况
  • 域名怎么和网站绑定网站策划书怎么写
  • 沧州wap网站制作百度推广关键词怎么设置好