使用DQL命令查询数据(一)

devtools/2024/10/23 7:44:47/

 DQL

        DQL(Data Query Language,数据查询语言):

               查询数据库数据,如SELECT语句。

               简单的单表查询或多表的复杂查询和嵌套查询。

               数据库语言中最核心、最重要的语句。

               使用频率最高的语句。

SELECT语句:

sql">SELECT [ALL|DISTINCT] 
{ *| table.* | [ table.field1 [ as alias1] [, table.field2 [as  alias2]][, …]] }
FROM table_name [ as table_ alias ][ left|out|inner join table_name2 ]    #联合查询[ WHERE  … ] #指定结果需满足的条件[ GROUP BY …]#指定结果按照哪几个字段来分组[ HAVING …]	#过滤分组的记录必须满足的次要条件[ ORDER BY… ]	#指定查询记录按一个或者多个条件排序[ LIMIT  { [ offset,] row_count | row_count OFFSET offset }] ;  
#指定查询的记录从哪条至哪条

AS子语句:

        作用:

               可给数据列取一个新别名。

               可给表取一个新别名。

        语法:

sql">SELECT StudentNo AS “学号” FROM student;

DISTINCT关键字(distinct)

        作用:

                去掉SELECT查询返回的记录结果中重复的记录(所有返回列的值都相同),只返回一条。

        语法:

sql">SELECT DISTINCT 字段名1, 字段名2... FROM 表名
#ALL 关键字是默认的,返回所有的记录,与之相反

WHERE条件语句:

        用于检索数据表中符合条件的记录。

        搜索条件可由一个或多个逻辑表达式组成,结果一般为真或假。

        搜索条件的组成:

        逻辑操作符:

                

        比较操作符:

                

        数值数据类型的记录之间才能进行算术运算。

        相同数据类型的数据之间才能进行比较。

sql">SELECT DISTINCT DayHour AS '均课时' FROM Subject2 
WHERE ClassHour%10 = 0

 BETWEEN AND范围查询

sql">SELECT 字段列1,字段2,…FROM 表名 WHERE 字段x BETWEEN 值1 AND 值2 #根据一个范围值来检索
#等同于 >= 和 <= 联合使用

LIKE模糊查询:

        在WHERE子句中,使用LIKE关键字进行模糊查询:

                与“%”一起使用,表示匹配0或任意多个字符。

                与“_”一起使用,表示匹配单个字符。

sql">#查询以王开头的用户
SELECT UserName FROM user WHERE UserName LIKE '王%'#查询以李开头两个字的用户
SELECT UserName FROM user WHERE UserName LIKE '李_'#查询名字包含大或小的用户
SELECT UserName FROM user WHERE UserName LIKE '%大%'

IN范围查询

sql">SELECT 字段列1,字段2 ,… FROM 表名 WHERE 字段x IN ( 值1,值2,值3…)
#查询的字段x的值,至少与括号中的一个值相同
#多个值之间用英文逗号隔开

连接查询(多表查询)

        需要多张数据表的数据进行查询,则可通过连接运算符实现多个查询。

        分类:

                内连接 ( inner join):

                等值和非等值的连接查询

                自身连接查询

                外连接 ( out join ):

                左连接(LEFT JOIN)

                右连接 ( RIGHT JOIN)

内连接

        在表中至少一个匹配时,则返回记录。

sql">SELECT 字段1,字段2,… FROM table_1 
INNER JOIN table_2 ON table_1.字段x = table_2.字段y;
# INNER JOIN与JOIN 是相同的。
# 如table_1中的行在table_2中没有匹配,则不返回。

外连接

        左连接:

                从左表(table_1)中返回所有的记录,即便在右(table_2)中没有匹配的行。

sql">SELECT 字段1,字段2,… FROM table_1 
LEFT JOIN table_2 ON table_1.字段x = table_2.字段y;

        右连接:

                从右表(table_2)中返回所有的记录,即便在左(table_1)中没有匹配的行。

sql">SELECT 字段1,字段2,… FROM table_1 
RIGHT JOIN table_2 ON table_1.字段x = table_2.字段y;

JOIN对比

自连接查询 

        数据表与自身进行连接从一个包含栏目ID,栏目名称和父栏目ID的表中,查询父栏目名称和其子栏目名称。

 


http://www.ppmy.cn/devtools/128103.html

相关文章

云电脑的真实使用体验

最近这几年&#xff0c;关于云电脑的宣传越来越多。 小枣君之前曾经给大家介绍过云电脑&#xff08;链接&#xff09;。简单来说&#xff0c;它属于云计算的一个应用。通过在云端虚拟出一些虚拟电脑&#xff0c;然后让用户可以远程使用&#xff08;仍然需要借助本地电脑&#x…

UDP/TCP协议

网络层只负责将数据包送达至目标主机&#xff0c;并不负责将数据包上交给上层的哪一个应用程序&#xff0c;这是传输层需要干的事&#xff0c;传输层通过端口来区分不同的应用程序。传输层协议主要分为UDP&#xff08;用户数据报协议&#xff09;和TCP&#xff08;传输控制协议…

C++学习路线(十九)

函数返回值指针 #include <iostream> using namespace std;int* add(int x, int y) {// 定义一个指针int* sum NULL;// 让指针指向堆内存 也就是sum的值是堆的地址sum new int;*sum x y;// 返回指针 以拷贝的方式返回// 也就是 外部的sum指针指向的地址和堆内存的地…

三维重建新范式对比与发展趋势

1.概述 本文重点对比三维视觉的新范式&#xff0c;主要是NeRF与 3D gausslain splatting在3维重建发展的趋势进行对比与说明。 2.NeRF趋势 3.3D GS趋势 4.动态场景重建的趋势

k8s中的存储

一 configmap 1.1 configmap的功能 configMap用于保存配置数据&#xff0c;以键值对形式存储。 configMap 资源提供了向 Pod 注入配置数据的方法。 镜像和配置文件解耦&#xff0c;以便实现镜像的可移植性和可复用性。 etcd限制了文件大小不能超过1M 1.2 configmap的使用场…

计算机网络最后错题本-cy

第一章 边缘部分并不能为应用程序进程通信提供服务&#xff0c;它基于核心部分提供的数据传输服务从而实现设备间的互相通信&#xff0c;正确的说法应是“核心部分为应用程序进程通信提供服务” 电路交换 电路交换方式的优点是传输时延小、通信实时性强&#xff0c;适用于交互式…

RabbitMQ系列学习笔记(五)--持久化机制

文章目录 一、概念二、队列持久化三、消息持久化 本文参考&#xff1a; 尚硅谷RabbitMQ教程丨快速掌握MQ消息中间件rabbitmq RabbitMQ 详解 Centos7环境安装Erlang、RabbitMQ详细过程(配图) 一、概念 在RabbitMQ系列学习笔记&#xff08;四&#xff09;–消息应答机制中我们已…

C语言初阶小练习4(不用临时变量交换数值)

题目&#xff1a;不能创建临时变量&#xff08;第三个变量&#xff09;&#xff0c;实现两个整数的交换 1.用临时变量来实现(常规写法) 这种方法是最直观的&#xff0c;但题目要求不使用临时变量&#xff0c;所以这里仅作为对比参考。 用创建临时变量来写&#xff1a;逻辑清晰…