Mysql学习之数据库检索语句DQL大全小白篇

yizhihongxing

让我来讲解一下“Mysql学习之数据库检索语句DQL大全小白篇”的完整攻略。

一、概述

本文主要介绍Mysql中的DQL语句,即数据库检索语句。通过本文的学习,您将会了解到Mysql中常用的检索语句以及相关的技巧和注意事项。
以下是本文主要内容:

  • 简介和基本语法
  • 常用查询语句
  • 表的连接和联合查询
  • 字符串函数和日期函数
  • 分组和排序
  • 子查询和视图

二、基本语法

Mysql中的DQL语句有如下基本语法:

SELECT column_name1, column_name2, column_name3......
FROM table_name
WHERE condition
GROUP BY column_name
HAVING condition
ORDER BY column_name ASC/DESC
LIMIT num;

其中,SELECT和FROM是必须的部分,其他部分根据需要可以省略。

查询语句的结果就是一个表格,列名即为SELECT所选择的列名,行数为符合条件的行数。

三、常用查询语句

1. SELECT语句

SELECT语句是最基本的语句,用于选择表中的列进行查询。

示例1:

SELECT id, name, age
FROM student;

上面的语句将会显示出student表中所有的id、name、age列的信息。

2. WHERE语句

WHERE语句用于约束查询的条件。

示例2:

SELECT id, name, age
FROM student
WHERE age > 20;

上面的语句将显示出student表中age大于20的记录。

3. LIKE语句

LIKE语句用于模糊查询。

示例3:

SELECT name, age
FROM student
WHERE name LIKE '%张%';

上面的语句将显示出student表中名字中带有“张”的记录。

四、表的连接和联合查询

1. 内连接

内连接是指将两个表中符合连接条件的行进行连接,返回一个新的表。

示例4:

SELECT student.id, student.name, score.score
FROM student
INNER JOIN score
ON student.id = score.id;

上面的语句将返回一个由student表和score表连接起来的新表,其中,student.id = score.id,表示两个表中id相等的行会被连接在一起。

2. 外连接

外连接又分为左外连接和右外连接,左外连接表示以左表为基础,右表中符合条件的行进行连接,返回一个新表;右外连接也是同理。

示例5:

SELECT student.id, student.name, score.score
FROM student
LEFT OUTER JOIN score
ON student.id = score.id;

上面的语句将返回一个由student表和score表连接起来的新表,其中,以左表student为基础,score表中符合条件的行进行连接。

3. 联合查询

联合查询用于将多个SELECT语句的结果组合在一起。

示例6:

SELECT id, name, age
FROM student
UNION ALL
SELECT id, name, age
FROM teacher;

上面的语句将把下面两个SELECT语句的结果组合在一起:

SELECT id, name, age
FROM student;

SELECT id, name, age
FROM teacher;

五、字符串函数和日期函数

1. 字符串函数

一些常用的字符串函数如下:

  • LEFT(str, len)
  • RIGHT(str, len)
  • TRIM([BOTH | LEADING | TRAILING] remstr FROM str)
  • CONCAT(str1, str2, ...)
    等等。

示例7:

SELECT CONCAT(name, '(', age, ')')
FROM student;

上面的语句将会返回由“姓名(年龄)”组成的字符串。

2. 日期函数

一些常用的日期函数如下:

  • NOW()
  • MONTH(date)
  • YEAR(date)
  • DAY(date)

示例8:

SELECT name
FROM student
WHERE YEAR(birth_day)='1990';

上面的语句将会返回所有出生年份为1990年的学生姓名。

六、分组和排序

1. 分组

分组用于将符合条件的数据行按照某个列进行分组,对于每组分别进行计算或处理。

示例9:

SELECT department, COUNT(*)
FROM employee
GROUP BY department;

上面的语句将会按照员工所在部门进行分组,并计算出每个部门的员工人数。

2. 排序

排序用于将输出数据行按照某个列进行排序。

示例10:

SELECT id, name, age
FROM student
ORDER BY age DESC;

上面的语句将会按照年龄降序进行排序,并输出学生的id、姓名和年龄。

七、子查询和视图

1. 子查询

子查询是嵌套在主查询内部的SELECT语句,用于过滤或处理主查询中的结果。

示例11:

SELECT *
FROM score 
WHERE student_id IN (SELECT id FROM student WHERE name='张三');

上面的语句将会查询出姓名为“张三”的学生的成绩记录。

2. 视图

视图是虚拟表,是基于一个或多个表的查询结果的可视化展示,包含特定的列和行。

示例12:

CREATE VIEW student_info AS
SELECT id, name, age, address
FROM student;

上面的语句将会创建一个名为student_info的视图,该视图展示了student表中id、name、age和address四列的数据。可以通过下面的语句进行查询:

SELECT * FROM student_info;

以上就是Mysql学习之数据库检索语句DQL大全小白篇的完整攻略。希望能够对您有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Mysql学习之数据库检索语句DQL大全小白篇 - Python技术站

(0)
上一篇 2023年5月21日
下一篇 2023年5月21日

相关文章

  • 基于Redis的Setnx实现分布式锁

    一、 redis分布式锁原理     并发 到Redis里变成了串行排队,单线程   二、基于Redis的Setnx实现分布式锁    1、pom     <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-bo…

    Redis 2023年4月13日
    00
  • 在ASP.NET 2.0中操作数据之七十一:保护连接字符串及其它设置信息

    保护连接字符串及其它设置信息是指在应用程序中使用敏感信息时,需要采取一些措施来保护这些信息。以下是在ASP.NET 2.0中保护连接字符串及其它设置信息的完整攻略: 数据库连接字符串应该放在Web.config文件中,并设置为加密,以防止第三方获取到连接字符串信息。通过使用AppSettings类,也可以方便地在Web.config文件中保存其它配置信息。 …

    database 2023年5月21日
    00
  • DBMS 优于文件系统

    DBMS(数据库管理系统)相比于传统的文件系统具有诸多优势,以下是详细的攻略: 1. 数据的冗余和一致性 文件系统中,同一份数据在不同文件中存在多次,会导致数据的冗余。而DBMS通过对数据的集中保存和管理,可以有效避免数据冗余的问题。 此外,DBMS还可以确保数据的一致性,即不同应用程序之间的数据保持一致性。在文件系统中,如若不同应用程序之间使用的同一份数据…

    database 2023年3月27日
    00
  • Oracle和Cassandra的区别

    Oracle和Cassandra的区别 1. 数据模型 Oracle是关系型数据库,使用SQL进行数据管理,支持ACID事务,适合事务型应用;而Cassandra则是面向列的非关系型数据库,采用CQL(Cassandra Query Language)进行数据管理,支持最终一致性(Eventual Consistency),适合大数据量、高可扩展性的应用场景…

    database 2023年3月27日
    00
  • Kotlin与Java的区别详解

    下面我将为你详细讲解“Kotlin与Java的区别详解”的完整攻略。 Kotlin与Java的区别详解 一、简介 Kotlin是一种为现代化的基于JVM的移动和Web应用程序而设计的静态类型编程语言。Kotlin编译器将Kotlin代码编译成与Java字节码相同的字节码,所以它可以在JVM上运行,并且与Java很好地集成。Kotlin还具有很多特色的Java…

    database 2023年5月21日
    00
  • Java如何读取配置文件并赋值静态变量

    Java读取配置文件并将值赋给静态变量的操作是应用程序中常见的需求。下面是以properties文件为例,讲解如何读取并赋值静态变量的步骤: 1. 准备配置文件 首先需要准备一个.properties文件,其中包含一组键值对,如下所示: jdbc.url=jdbc:mysql://localhost:3306/test jdbc.username=root …

    database 2023年5月21日
    00
  • Linux服务器安装Redis教程

    下面是详细讲解 Linux 服务器安装 Redis 的教程,步骤如下: 1. 下载 Redis 在命令行中输入以下命令下载 Redis: $ wget http://download.redis.io/redis-stable.tar.gz 如果提示找不到 wget,需要先安装 wget 工具,例如在 Ubuntu 系统中可以输入以下命令安装: $ sudo…

    database 2023年5月22日
    00
  • EJ Technologies JProfiler图文激活教程 附注册机下载

    以下是“EJ Technologies JProfiler图文激活教程 附注册机下载”的完整攻略。 1. 下载及安装JProfiler 首先,我们需要到EJ Technologies官网下载JProfiler。根据操作系统选择合适的版本,此处以Windows系统为例。 下载完成后,双击安装文件,按照提示完成安装。 2. 获取注册码 JProfiler官方提供…

    database 2023年5月22日
    00
合作推广
合作推广
分享本页
返回顶部