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

让我来讲解一下“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日

相关文章

  • django1.11如何实时访问mysql数据库

    前几天,一直在研究django框架,发现它自身封装了很多有用的API,很有意思。比如,数据库操作基本的创表,查询,插值,更新,删除都有,很方便,再加上json库可以直接将数据json化,通过服务器传给前端并显示,连数据库也很快,响应迅速。 django 操作mysql数据库   取数据: 1 from blog.models import SfhdPredi…

    MySQL 2023年4月12日
    00
  • Redis 参数详解

    Redis 参数详解:   使用config get * 获得所有的配置项的key #daemonize no 默认情况下, redis 不是在后台运行的,如果需要在后台运行,把该项的值更改为 yes daemonize yes # 当 redis 在后台运行的时候, Redis 默认会把 pid 文件放在 /var/run/redis.pid ,你可以配置…

    Redis 2023年4月16日
    00
  • Linq to SQL Delete时遇到问题的解决方法

    Linq to SQL Delete时遇到问题的解决方法 在使用Linq to SQL进行删除操作时,我们可能会遇到一些问题。这篇攻略将介绍在Linq to SQL Delete时遇到问题的解决方法。 问题描述 当我们使用Linq to SQL进行删除操作时,可能会出现以下情况: 当我们在DataContext中直接使用DeleteOnSubmit方法进行删…

    database 2023年5月21日
    00
  • 详解springboot中的jar包部署步骤

    下面我来详细讲解“详解Spring Boot中的Jar包部署步骤”的完整攻略。 一、前置条件 在进行 Spring Boot 应用程序的 Jar 包部署之前,必须满足以下条件: 已经安装JDK,并配置了JAVA_HOME环境变量 下载安装 Mysql 数据库并启动 安装 Maven,并配置了MAVEN_HOME环境变量 二、构建Spring Boot应用程序…

    database 2023年5月22日
    00
  • MySQL通用查询日志(General Query Log)

    MySQL通用查询日志(General Query Log)是用于记录MySQL服务器上所有执行的查询操作的一个日志文件。它可以帮助管理员更好地了解MySQL服务器的性能和运行状态,为优化和监控MySQL服务器提供重要信息。 MySQL通用查询日志可以包含以下信息: 执行时间:记录查询执行的开始时间和结束时间,可以帮助管理员了解查询的执行性能。 用户名和主机…

    MySQL 2023年3月10日
    00
  • mysql的登陆和退出命令格式

    MySQL是一款重要的数据库管理系统,登录MySQL时,我们需要输入用户名和密码进行身份验证。下面讲解MySQL的登陆和退出命令格式及其示例。 MySQL登录命令格式 MySQL的登录命令格式为: mysql -u [用户名] -p[密码] 其中,-u表示指定用户名,-p表示指定密码(无空格),该命令表示使用指定的用户名和密码登录MySQL。 示例1:使用r…

    database 2023年5月22日
    00
  • demo项目开发(Python+flask+mysql+redis只包含后端接口)

    【demo项目开发需求】 用户信息管理,可以注册、登录、添加用户、删除用户 注册:任何用户可以注册,对用户提交的注册信息进行校验,返回对应的信息,其中:   用户名:必填,唯一   密码:必填,只能6-12位,入库是加盐加密   真实名:必填   性别:非必填,只能0(male)或者1(female)   电话:必填,唯一,满足电话要求,数字,且11位 登录…

    MySQL 2023年4月12日
    00
  • Oracle 存储过程总结 二、字符串处理相关函数

    下面是关于“Oracle 存储过程总结 二、字符串处理相关函数”的详细攻略。 1. 概述 在 Oracle 存储过程中,字符串处理相关函数可帮助我们对字符串进行各种操作,例如提取子串、替换字符串、转换字符串大小写等。这些函数通常可用于数据清洗、数据转换、数据处理等场景。 2. 字符串处理函数列表 以下是一些常用的字符串处理相关函数: SUBSTR(str, …

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