MySQL高级语句(一)

这篇具有很好参考价值的文章主要介绍了MySQL高级语句(一)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、SQL高级语句

1、 SELECT

显示表格中一个或数个栏位的所有资料

语法:SELECT "字段" FROM "表名";

select * from test1;
select name from test1;
select name,sex from test1;

MySQL高级语句(一)

2、DISTINCT

不显示重复的内容

语法:SELECT DISTINCT "字段" FROM "表名";

select distinct age from test1;

MySQL高级语句(一)

3、WHERE

条件查询

语法:SELECT "字段" FROM "表名" WHERE "条件";

select name,age from test1 where age < 21;
select name,age from test1 where name='nancy';

MySQL高级语句(一)


 

4 、AND OR

代表且、或、和的意思

语法:SELECT "字段" FROM "表名" WHERE "条件1" {[AND|OR] "条件2"};

select * from test1 where sex='女' and age > 21;
select * from test1 where age > 21 or age < 20;
select * from test1 where (age > 21 and sex='男') or age < 20;    

MySQL高级语句(一)

5、IN

显示已知的值的内容

语法:SELECT "字段" FROM "表名" WHERE "栏位" IN ('值1', '值2', ...);

select * from test1 where age in (18,20,35);

MySQL高级语句(一)


 

6、BETWEEN

显示两个值范围内的资料

语法:SELECT "字段" FROM "表名" WHERE "栏位" BETWEEN '值1' AND '值2';  

select * from test1 where age between 19 and 30;

MySQL高级语句(一)


  

7 通配符

通常通配符都是跟 LIKE 一起使用的

通配符 代表的意思
% 百分号表示零个、一个或多个字符(相当于linux中的“*”号)
_ 下划线表示单个字符(相当于linux中的“?”号)
‘A_Z’ 所有以 ‘A’ 起头,另一个任何值的字符,且以 ‘Z’ 为结尾的字符串。例如,‘ABZ’ 和 ‘A2Z’ 都符合这一个模式,而 ‘AKKZ’ 并不符合 (因为在 A 和 Z 之间有两个字符,而不是一个字符)。
‘ABC%’ 所有以 ‘ABC’ 起头的字符串。例如,‘ABCD’ 和 ‘ABCABC’ 都符合这个模式
‘%XYZ’ 所有以 ‘XYZ’ 结尾的字符串。例如,‘WXYZ’ 和 ‘ZZXYZ’ 都符合这个模式
‘%AN%’ 所有含有 'AN’这个模式的字符串。例如,‘LOS ANGELES’ 和 ‘SAN FRANCISCO’ 都符合这个模式
‘_AN%’ 所有第二个字母为 ‘A’ 和第三个字母为 ‘N’ 的字符串。例如,‘SAN FRANCISCO’ 符合这个模式,而 ‘LOS ANGELES’ 则不符合这个模式

8 LIKE

匹配一个模式来找出我们要的资料

语法:SELECT "栏位" FROM "表名" WHERE "字段" LIKE {模式};

select * from test1 where name like '小%';
select *from test1 where name like '%小%';
select *from test1 where name like '李_';

MySQL高级语句(一)


 

9 ORDER BY

按关键字排序

语法:SELECT "字段" FROM "表名" [WHERE "条件"] ORDER BY "字段" [ASC, DESC];

#ASC 是按照升序进行排序的,是默认的排序方式。

#DESC 是按降序方式进行排序。

select *from test1 where sex='男' order by age;
select *from test1 where sex='男' order by age desc;

MySQL高级语句(一)


  

二、SQL函数

1、数学函数:

数学函数 返回的结果
abs(x) 返回 x 的绝对值
rand() 返回 0 到 1 的随机数
mod(x,y) 返回 x 除以 y 以后的余数
power(x,y) 返回 x 的 y 次方
round(x) 返回离 x 最近的整数
round(x,y) 保留 x 的 y 位小数四舍五入后的值
sqrt(x) 返回 x 的平方根
truncate(x,y) 返回数字 x 截断为 y 位小数的值
ceil(x) 返回大于或等于 x 的最小整数
floor(x) 返回小于或等于 x 的最大整数
greatest(x1,x2…) 返回集合中最大的值
least(x1,x2…) 返回集合中最小的值
select abs(-2),rand(),mod(10,3),power(2,3),round(5.66);

MySQL高级语句(一)


  

select round(5.445636,4),sqrt(3),truncate(8.456547,4);

MySQL高级语句(一)

2 聚合函数:

数学函数 返回的结果
avg() 返回指定列的平均值
count() 返回指定列中非 NULL 值的个数
min() 返回指定列的最小值
max() 返回指定列的最大值
sum(x) 返回指定列的所有值之和

MySQL高级语句(一)

MySQL高级语句(一)

count

count(*) 表示包括所有列的行数,不会忽略null值

count(列名) 表示只包括这一列,统计时会忽略null值的行

3 字符串函数:

数学函数 返回的结果
trim() 返回去除指定格式的值
concat(x,y) 将提供的参数 x 和 y 拼接成一个字符串
substr(x,y) 获取从字符串 x 中的第 y 个位置开始的字符串,跟substring()函数作用相同
substr(x,y,z) 获取从字符串 x 中的第 y 个位置开始长度为 z 的字符串
length(x) 返回字符串 x 的长度
replace(x,y,z) 将字符串 z 替代字符串 x 中的字符串 y
upper(x) 将字符串 x 的所有字母变成大写字母
lower(x) 将字符串 x 的所有字母变成小写字母
left(x,y) 返回字符串 x 的前 y 个字符
right(x,y) 返回字符串 x 的后 y 个字符
repeat(x,y) 将字符串 x 重复 y 次
space(x) 返回 x 个空格
strcmp(x,y) 比较 x 和 y,返回的值可以为-1,0,1
reverse(x) 将字符串 x 反转

4 GROUP BY

对GROUP BY 后面的查询结果进行汇总分组,通常是结合聚合函数一起使用

GROUP BY有个原则,select 后面的所有列中,没有用聚合函数的列,必须出现在GROUP BY后面

语法:SELECT "字段1", SUM("字段2") FROM "表名" GROUP BY "字段1";

MySQL高级语句(一)

MySQL高级语句(一)


  

5 HAVING

用来过滤由GROUP BY语句返回的记录集,通常与GROUP BY语句联合使用

HAVING的存在弥补了WHERE关键字不能和聚合函数联合使用的不足,如果被select的只有函数,那就不需要GROUP BY语句

HAVING只是条件过滤,用来筛选前面GROUP BY的结果 

语法:SELECT "字段1", SUM("字段2") FROM "表格名" GROUP BY "字段1" HAVING (函数条件);  

select sex,avg(age) from test1 group by sex;
select sex,avg(age) from test1 group by sex having avg(age)>25;

MySQL高级语句(一)

6 别名

字段別名 表格別名

语法:SELECT "表格別名"."字段1" [AS] "字段別名" FROM "表格名" [AS] "表格別名";  

MySQL高级语句(一)


  

7 连接查询

7.1 inner join(等值相连)

只返回两个表中联结字段相等的行

select * from test2 A inner join test1 B on A.name = B.name;

MySQL高级语句(一)


  

7.2 left join(左联接)

返回包括左表中的所有记录和右表中联结字段相等的记录

select * from test2 A left join test1 B on A.name = B.name;   

MySQL高级语句(一)


  

7.3 right join(右联接)

返回包括右表中的所有记录和左表中联结字段相等的记录

select * from test2 A right join test1 B on A.name = B.name; 

MySQL高级语句(一)


 

8 子查询

连接表格,在WHERE 子句或HAVING 子句中插入另一个SQL语句

语法:SELECT "字段1" FROM "表格1" WHERE "字段2"  [比较运算符]          #外查询
(SELECT "字段2" FROM "表格2" WHERE "条件");                           #内查询   

可以是符号的运算符,例如 =、>、<、>=、<=;也可以是文字的运算符,例如 LIKE、IN、BETWEEN

先进行内查询,查询结果再交给外查询进行进一步过滤

select xueke from test2 where name in (select name from test1 where age=22);   

MySQL高级语句(一)

9 EXISTS

用来测试内查询有没有产生任何结果,类似布尔值是否为真

如果有的话,系统就会执行外查询的SQL语句,若是没有的话,那整个SQL语句就不会产生任何结果  

语法:SELECT “字段” FROM “表格1” WHERE EXISTS (SELECT * FROM "表格2" WHERE “条件”);

select name,xueke from test2 where name in (select name from test1 where age=22);
select name,xueke from test2 where name in (select name from test1 where age=100);

MySQL高级语句(一)文章来源地址https://www.toymoban.com/news/detail-449961.html

到了这里,关于MySQL高级语句(一)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MySQL(六):基本的SELECT语句

    本博主将用CSDN记录软件开发求学之路上亲身所得与所学的心得与知识,有兴趣的小伙伴可以关注博主!也许一个人独行,可以走的很快,但是一群人结伴而行,才能走的更远! 语法: 选择全部列: 一般情况下,除非需要使用表中所有的字段数据,最好不要使用通配符‘ *

    2024年02月08日
    浏览(33)
  • 【MySQL系列】- SELECT语句执行顺序

    2.1 执行FROM操作 这一步需要做的是对FROM子句前后的两张表进行笛卡尔积操作,也称作为交叉连接,生成虚拟表VT1。如果FROM子句前的表包含a行数据,FROM子句后的表中包含b行数据,那么虚拟表VT1将包含a*b行数据。 2.2 应用ON过滤器 SELECT查询共有3个过滤流程,分别是ON、WHERE、

    2024年02月08日
    浏览(37)
  • MySQL(3):基本的 SELECT 语句

    SQL(Structured Query Language,结构化查询语言)是使用关系模型的数据库应用语言, 与数据直接打交道 。 SQL 有两个重要的标准,分别是 SQL92 和 SQL99,它们分别代表了 92 年和 99 年颁布的 SQL 标准,我们今天使用的 SQL 语言依然遵循这些标准。 不同的数据库生产厂商都支持SQL语句

    2024年02月08日
    浏览(27)
  • MySQL-03基本的SELECT语句(基础)

    课程中,第二章是MySQL环境搭建,因为我之前安装过MySQL5.7的环境,然后就直接下载8.0版本的zip,直接安装的,就没看视频,所以没有第二章笔记。这里给出MySQL社区版下载地址。 1.1 SQL背景知识 1974年,IBM研究员发布了一篇揭开数据库技术的论文《SEQUEL:一门结构化的英语查询

    2024年02月05日
    浏览(36)
  • MySQL-03.基本的SELECT语句(基础)

    课程中,第二章是MySQL环境搭建,因为我之前安装过MySQL5.7的环境,然后就直接下载8.0版本的zip,直接安装的,就没看视频,所以没有第二章笔记。这里给出MySQL社区版下载地址。 1.1 SQL背景知识 1974年,IBM研究员发布了一篇揭开数据库技术的论文《SEQUEL:一门结构化的英语查询

    2024年02月05日
    浏览(28)
  • MYSQL-SELECT语句超详解

    目录 前言: SELECT语法 示例 单个字段查询 多个字段查询 查询所有字段 没有FROM的SELECT  查询系统时间 数值计算 虚拟表dual WHERE语句  示例 = AND OR 比较运算符 AND  OR  运算符优先级  IN  NOT IN  BETWEEN NOT BETWEEN LIKE EXISTS ORDER BY  LIMIT DISTINCT 前言: 示例中操作的表为 Sakila 示例数

    2024年02月12日
    浏览(61)
  • MySQL基础(三)基本的SELECT语句

    1.1 SQL背景知识 1946 年,世界上第一台电脑诞生,如今,借由这台电脑发展起来的互联网已经自成江湖。在这几十年里,无数的技术、产业在这片江湖里沉浮,有的方兴未艾,有的已经几幕兴衰。但在这片浩荡的波动里,有一门技术从未消失,甚至“老当益壮”,那就是 SQL。

    2024年02月03日
    浏览(24)
  • 基本的SELECT语句——“MySQL数据库”

    各位CSDN的uu们好呀,好久没有更新小雅兰的MySQL数据库专栏啦,接下来一段时间,小雅兰都会更新MySQL数据库的知识,下面,让我们进入今天的主题吧——基本的SELECT语句!!! SQL概述 SQL语言的规则与规范 基本的SELECT语句 显示表结构 过滤数据 1946 年,世界上第一台电脑诞生

    2024年02月09日
    浏览(41)
  • MySQL数据库——MySQL SELECT:数据表查询语句

    在 MySQL 中,可以使用 SELECT 语句来查询数据。查询数据是指从数据库中根据需求,使用不同的查询方式来获取不同的数据,是使用频率最高、最重要的操作。 SELECT 的语法格式如下: 其中,各条子句的含义如下: {*|字段列名} 包含星号通配符的字段列表,表示所要查询字段的

    2024年02月05日
    浏览(43)
  • MySQL之优化SELECT语句的技巧与方法

    在开发和维护MySQL数据库应用时,优化SELECT语句是非常重要的一环。合理优化SELECT语句可以提高数据库查询性能,减少查询时间,提升系统响应速度。本文将介绍一些常用的优化SELECT语句的技巧和方法,帮助你优化数据库查询操作。 索引是MySQL中用于加速查询的重要工具。通

    2024年02月14日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包