mysql查询语句

mysql查询语句@TOC
mysql查询语句
1.导入示例数据库

查询使用命令行导入:
教程 MySQL导入示例数据库 - MySQL教程™
使用Navicat for MySQL可视化操作导入:

在数据库连接的基础上新建数据库,自定义数据库名,字符集和排序规则也自选,最好是和需要导入的数据库格式一致
在这里插入图片描述
新建完成数据库后右键点击选择运行SQL文件,出现如下图所示窗口,填写你需要导入的数据库文件的地址

在这里插入图片描述

填写无误后点击开始即开始导入,导入完成后显示如下,点击关闭即可。在这里插入图片描述

测试导入结果,查询实例示例如下,结果正确显示,说明导入成功了。
在这里插入图片描述

2.SQL是什么,MySQL是什么?

SQL: SQL(发音为字母 S-Q-L或 sequel)是 Structured
Query Language(结构

化查询语言)的缩写。SQL是一种专门用来与数据库沟通的语言。

SQL有如下的优点:

SQL不是某个特定数据库供应商专有的语言。几乎所有重要的 DBMS 都支持 SQL,所以学习此语言使你几乎能与所有数据库打交道。

SQL简单易学。它的语句全都是由有很强描述性的英语单词组成,而 且这些单词的数目不多。

SQL虽然看上去很简单,但实际上是一种强有力的语言,灵活使用其 语言元素,可以进行非常复杂和高级的数据库操作。

MySQL: MySQL是一个关系型数据库管理系统,由瑞典MySQL
AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件。

本质区别:SQL是一种语言,而MySQL是一种数据库

3.查询语句(select from)

语句解释:从一个或多个表中检索信息。

去重语句:使用 DISTINCT关键字,顾名思义,它指示数据库只返回不同的值。

注:注意:不能部分使用
DISTINCT,DISTINCT关键字作用于所有的列,不仅仅是跟在其后的那一列。例如,你指定SELECT DISTINCT vend_id, prod_price,除非指定的两列完全相同,否则所有的行都会被检索出来。

前N个语句:使用LIMIT关键字来限制最多返回多少行,eg:SELECT prod_name

FROM Products LIMIT 0 OFFSET N;指示 MySQL等 DBMS返回从第 1行起的 N行数据。第一个数字是指从哪儿开始,第二个数字是检索的行数。 注意:第 0 行:第一个被检索的行是第 0行,而不是第 1行。因此,LIMIT 1
OFFSET 1会检索第 2行,而不是第 1行。

CASE…END判断语句

4.筛选语句(where)

语句解释:数据库表一般包含大量的数据,很少需要检索表中的所有行。通常只会根据特定操作或报告的需要提取表数据的子集。只检索所需数据需要指定搜索条件(search criteria),搜索条件也称为过滤条件(filter condition)。在SELECT语句中,数据根据WHERE子句中指定的搜索条件进行过滤。

操作符:SQL支持表 4-1列出的所有条件操作符。

通配符:

1.百分号(%):在搜索串中,%表示任何字符出现任意次数。特别注意,除了能匹配一个或多个字符外,%还能匹配 0个字符。%代表搜索模式中给定位置的 0个、1个或多个字符。但是WHERE prod_name LIKE '%'不会匹配产品名称为NULL的行。

2.下划线(_):下划线的用途与%一样,但它只匹配单个字符,而不是多个字符。

方括号([ ]):用来指定一个字符集,它必须匹配指定位置(通配符的位置)的一个字符。

使用通配符技巧:

不要过度使用通配符。如果其他操作符能达到相同的目的,应该使用其他操作符。

在确实需要使用通配符时,也尽量不要把它们用在搜索模式的开始处。把通配符置于开始处,搜索起来是最慢的。

仔细注意通配符的位置。如果放错地方,可能不会返回想要的数据。

5.分组语句(group by)

聚集函数:

语句解释:使用分组可以将数据分为多个逻辑组,对每个组进行聚集计算。

使用GROUP BY子句的一些重要规定:

GROUP BY子句可以包含任意数目的列,因而可以对分组进行嵌套,更细致地进行数据分组。

如果在GROUP BY子句中嵌套了分组,数据将在最后指定的分组上进行汇总。换句话说,在建立分组时,指定的所有列都一起计算(所以不能从个别的列取回数据)。

GROUP BY子句中列出的每一列都必须是检索列或有效的表达式(但不能是聚集函数)。如果在SELECT中使用表达式,则必须在GROUPBY子句中指定相同的表达式。不能使用别名。

大多数 SQL实现不允许GROUP BY列带有长度可变的数据类型(如文本或备注型字段)。

除聚集计算语句外,SELECT语句中的每一列都必须在GROUPBY子句中给出。

如果分组列中包含具有NULL值的行,则NULL将作为一个分组返回。如果列中有多行NULL值,它们将分为一组。

GROUP BY子句必须出现在WHERE子句之后,ORDER BY子句之前。
HAVING子句:HAVING非常类似于WHERE。唯一的差别是,WHERE过滤行,而HAVING过滤分组。另一种理解方法,WHERE在数据分组前进行过滤,HAVING在数据分组后进行过滤。这是一个重要的区别,WHERE排除的行不包括在分组中。这可能会改变计算值,从而影响 HAVING子句中基于这些值过滤掉的分组。

6.排序语句(order by)

语句解释:ORDER BY子句取一个或多个列的名字,据此对输出进行排序。

正序、逆序:默认的排序顺序是升序,若想使用ORDER BY子句进行降序排序,必须使用关键字DESC。注:DESC关键字只应用到直接位于其前面的列名。如果想在多个列上进行降序排序,必须对每一列指定DESC关键字。

7.函数

与几乎所有
DBMS都等同地支持 SQL语句(如 SELECT)不同,每一个DBMS都有特定的函数。

时间函数:取当前时间:Access使用 NOW(); DB2和 PostgreSQL使用 CURRENT_DATE;

MariaDB和MySQL使用CURDATE();Oracle使用SYSDATE;SQL

Server使用GETDATE();SQLite使用DATE()

数值函数:数据类型转换:Access和Oracle使用多个函数,每种类型的转换有一个函数;DB2和PostgreSQL使用CAST();MariaDB、MySQL和SQL Server使用CONVERT()

字符串函数:提取字符串的组成部分:Access使用 MID(); DB2、 Oracle、 PostgreSQL和 SQLite使用SUBSTR();MySQL和SQL Server使用SUBSTRING()
8.作业

项目一:查找重复的电子邮箱(难度:简单)

创建 email表,并插入如下三行数据

±—±--------+

| Id | Email |

±—±--------+

| 1
| a@b.com |

| 2
| c@d.com |

| 3
| a@b.com |

±—±--------+

编写一个 SQL 查询,查找 email 表中所有重复的电子邮箱根据以上输入,你的查询应返回以下结果:

±--------+

| Email
|

±--------+

| a@b.com |

±--------+

说明:所有电子邮箱都是小写字母。

在这里插入图片描述
项目二:查找大国(难度:简单)

创建如下 World 表

±----------------±-----------±-----------±-------------±--------------+

| name | continent | area
| population | gdp |

±----------------±-----------±-----------±-------------±--------------+

| Afghanistan | Asia | 652230 | 25500100 | 20343000 |

| Albania | Europe | 28748 | 2831741 | 12960000 |

| Algeria | Africa | 2381741 | 37100000 | 188681000 |

| Andorra | Europe | 468 | 78115 | 3712000 |

| Angola | Africa | 1246700 | 20609294 | 100990000 |

±----------------±-----------±-----------±-------------±--------------+

如果一个国家的面积超过300万平方公里,或者(人口超过2500万并且gdp超过2000万),那么这个国家就是大国家。

编写一个SQL查询,输出表中所有大国家的名称、人口和面积。

例如,根据上表,我们应该输出:

±-------------±------------±-------------+

| name | population | area
|

±-------------±------------±-------------+

| Afghanistan | 25500100
| 652230 |

| Algeria | 37100000 | 2381741 |

±-------------±------------±-------------+
在这里插入图片描述

欢迎使用Markdown编辑器

你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。

新的改变

我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:

  1. 全新的界面设计 ,将会带来全新的写作体验;
  2. 在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示;
  3. 增加了 图片拖拽 功能,你可以将本地的图片直接拖拽到编辑区域直接展示;
  4. 全新的 KaTeX数学公式 语法;
  5. 增加了支持甘特图的mermaid语法1 功能;
  6. 增加了 多屏幕编辑 Markdown文章功能;
  7. 增加了 焦点写作模式、预览模式、简洁写作模式、左右区域同步滚轮设置 等功能,功能按钮位于编辑区域与预览区域中间;
  8. 增加了 检查列表 功能。

功能快捷键

撤销:Ctrl/Command + Z
重做:Ctrl/Command + Y
加粗:Ctrl/Command + B
斜体:Ctrl/Command + I
标题:Ctrl/Command + Shift + H
无序列表:Ctrl/Command + Shift + U
有序列表:Ctrl/Command + Shift + O
检查列表:Ctrl/Command + Shift + C
插入代码:Ctrl/Command + Shift + K
插入链接:Ctrl/Command + Shift + L
插入图片:Ctrl/Command + Shift + G

合理的创建标题,有助于目录的生成

直接输入1次#,并按下space后,将生成1级标题。
输入2次#,并按下space后,将生成2级标题。
以此类推,我们支持6级标题。有助于使用TOC语法后生成一个完美的目录。

如何改变文本的样式

强调文本 强调文本

加粗文本 加粗文本

标记文本

删除文本

引用文本

H2O is是液体。

210 运算结果是 1024.

插入链接与图片

链接: link.

图片: Alt

带尺寸的图片: Alt

居中的图片: Alt

居中并且带尺寸的图片: Alt

当然,我们为了让用户更加便捷,我们增加了图片拖拽功能。

如何插入一段漂亮的代码片

博客设置页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 代码片.

// An highlighted block
var foo = 'bar';

生成一个适合你的列表

  • 项目
    • 项目
      • 项目
  1. 项目1
  2. 项目2
  3. 项目3
  • 计划任务
  • 完成任务

创建一个表格

一个简单的表格是这么创建的:

项目Value
电脑$1600
手机$12
导管$1

设定内容居中、居左、居右

使用:---------:居中
使用:----------居左
使用----------:居右

第一列第二列第三列
第一列文本居中第二列文本居右第三列文本居左

SmartyPants

SmartyPants将ASCII标点字符转换为“智能”印刷标点HTML实体。例如:

TYPEASCIIHTML
Single backticks'Isn't this fun?'‘Isn’t this fun?’
Quotes"Isn't this fun?"“Isn’t this fun?”
Dashes-- is en-dash, --- is em-dash– is en-dash, — is em-dash

创建一个自定义列表

Markdown
Text-to- HTML conversion tool
Authors
John
Luke

如何创建一个注脚

一个具有注脚的文本。2

注释也是必不可少的

Markdown将文本转换为 HTML

KaTeX数学公式

您可以使用渲染LaTeX数学表达式 KaTeX:

Gamma公式展示 Γ ( n ) = ( n − 1 ) ! ∀ n ∈ N \Gamma(n) = (n-1)!\quad\forall n\in\mathbb N Γ(n)=(n1)!nN 是通过欧拉积分

Γ ( z ) = ∫ 0 ∞ t z − 1 e − t d t   . \Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,. Γ(z)=0tz1etdt.

你可以找到更多关于的信息 LaTeX 数学表达式here.

新的甘特图功能,丰富你的文章

Mon 06 Mon 13 Mon 20 已完成 进行中 计划一 计划二 现有任务 Adding GANTT diagram functionality to mermaid
  • 关于 甘特图 语法,参考 这儿,

UML 图表

可以使用UML图表进行渲染。 Mermaid. 例如下面产生的一个序列图::

张三 李四 王五 你好!李四, 最近怎么样? 你最近怎么样,王五? 我很好,谢谢! 我很好,谢谢! 李四想了很长时间, 文字太长了 不适合放在一行. 打量着王五... 很好... 王五, 你怎么样? 张三 李四 王五

这将产生一个流程图。:

链接
长方形
圆角长方形
菱形
  • 关于 Mermaid 语法,参考 这儿,

FLowchart流程图

我们依旧会支持flowchart的流程图:

Created with Raphaël 2.2.0 开始 我的操作 确认? 结束 yes no
  • 关于 Flowchart流程图 语法,参考 这儿.

导出与导入

导出

如果你想尝试使用此编辑器, 你可以在此篇文章任意编辑。当你完成了一篇文章的写作, 在上方工具栏找到 文章导出 ,生成一个.md文件或者.html文件进行本地保存。

导入

如果你想加载一篇你写过的.md文件或者.html文件,在上方工具栏可以选择导入功能进行对应扩展名的文件导入,
继续你的创作。


  1. mermaid语法说明 ↩︎

  2. 注脚的解释 ↩︎

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL是一种常用的关系型数据库管理系统,它支持使用SQL语言进行数据的查询、插入、更新和删除等操作。以下是一些常见的MySQL查询语句: 1. SELECT语句:用于从数据库中检索数据。 示例:SELECT * FROM 表名; 2. WHERE子句:用于在SELECT语句中添加条件筛选。 示例:SELECT * FROM 表名 WHERE 条件; 3. ORDER BY子句:用于对查询结果进行排序。 示例:SELECT * FROM 表名 ORDER BY 列名 ASC/DESC; 4. LIMIT子句:用于限制查询结果的数量。 示例:SELECT * FROM 表名 LIMIT 数量; 5. JOIN语句:用于在多个表之间建立关联。 示例:SELECT * FROM 表1 JOIN 表2 ON 表1.列 = 表2.列; 6. GROUP BY子句:用于对查询结果进行分组。 示例:SELECT 列名, COUNT(*) FROM 表名 GROUP BY 列名; 7. HAVING子句:用于在GROUP BY子句后添加条件筛选。 示例:SELECT 列名, COUNT(*) FROM 表名 GROUP BY 列名 HAVING 条件; 8. INSERT INTO语句:用于向数据库中插入新的数据。 示例:INSERT INTO 表名 (列1, 列2) VALUES (值1, 值2); 9. UPDATE语句:用于更新数据库中的数据。 示例:UPDATE 表名 SET 列名 = 值 WHERE 条件; 10. DELETE FROM语句:用于从数据库中删除数据。 示例:DELETE FROM 表名 WHERE 条件; 这些只是MySQL查询语句的一部分,还有很多其他的语句和功能可以用于满足不同的需求。如果你有具体的问题或者需要更详细的介绍,请告诉我。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值