广告
返回顶部
首页 > 资讯 > 数据库 >查询数据(数据库)——简单查询
  • 397
分享到

查询数据(数据库)——简单查询

数据库sqlmysql 2023-10-11 13:10:40 397人浏览 泡泡鱼
摘要

目录 1.最简单的查询 (1)查询指定列 (2)查询所有列 (3)查询计算列 (4)为列起别名 (5)使用DISTINCT关键字消除重复元组 2.查询满足条件的元组 (1) 比较大小 (2) 确定范围 (3) 确定集合 (4) 字符匹配 (

目录

1.最简单的查询

(1)查询指定列

(2)查询所有列

(3)查询计算列

(4)为列起别名

(5)使用DISTINCT关键字消除重复元组

2.查询满足条件的元组

(1) 比较大小

(2) 确定范围

(3) 确定集合

(4) 字符匹配

(5) 空值判断

(6) 组合条件

3.对查询结果排序


sqlSELECT语句进行数据查询

SELECT语句的格式:

SELECT [DISTINCT] <目标列表达式>[,…n]

FROM <表名或视图名> [,…n ]

[WHERE <条件表达式> ]

[GROUP BY <列名1>[HAVING<列条件表达式> ] ]

[ORDER BY <列名2>[ASC | DESC] ]

SELECT语句的含义:

根据WHERE条件,从FROM指定的表中找出满足条件的元组,按目标列表达式,选出属性值,形成结果表。

1.最简单的查询

省略的一些可选成分,得最简单的查询命令:

SELECT [DISTINCT] <目标列表达式>[,…n ]

FROM <表名或视图名>

对一张表的某些列进行操作,功能为:

(1)查询指定列

(2)查询所有列

(3)查询计算列

(4)为列起别名

(5)使用DISTINCT关键字消除重复元组

(1)查询指定列

【例】查询全体学生的姓名、学号和电话号码。

SELECT 姓名, 学号, 移动电话

FROM 学生表

 列的输出顺序可以与表中的列顺序不同。

(2)查询所有列

【例】查询全体学生的详细信息

SELECT *

FROM 学生表

用“*”表示查询表的所有列。

(3)查询计算列

也可以查询由常量、变量和函数构成的表达式

【例】将累计学分降低10%后显示出来

SELECT 姓名, 累计学分, 累计学分- 累计学分*0.1

FROM 学生表

查询结果为:

姓名                 累计学分           (无列名)

王东                     160                  144

(4)为列起别名

目的:满足用户的习惯,为计算列起名。方法:

①<目标列表达式> [AS]<别名>

②<别名> =<目标列表达式>

【例】将每个学生的累计学分降低10%后显示出来,要求查询结果表的标题用英语或字母显示。

SELECT 姓名 AS name, 累计学分 Ogpa, Ngpa=累计学分- 累计学分*0.1

FROM 学生表

查询结果如下:

name            Ogpa           Ngpa 

王东               160              144 

当别名含有空格时要用单引号括起

(5)使用DISTINCT关键字消除重复元组

  • 无DISTINCT时,结果中可能含重复行
  • 有DISTINCT时,自动消除结果中的重复行

【例】查询每个院系有在读学生的专业。

SELECT DISTINCT 所在院系, 专业

FROM 学生表

查询结果如下:

所在院系             专业

信息学院            计算机

信息学院           信息管理

  • 结果中无重复行
  • DISTINCT应紧跟SELECT

2.查询满足条件的元组

通过在WHERE子句中指定查询条件来实现

WHERE子句常用的查询条件::

查询条件运算符备注
比较大小=, >, <,>=, <=, !>, !<双目运算
确定范围[NOT] BETWEEN AND三目运算
确定集合[NOT] IN双目运算
字符匹配[NOT] LIKE双目运算
空值判断IS [NOT] NULL单目运算
组合条件NOT,AND,OR,()NOT是单目,其余是双目,括号用于改变运算优先级

通过在WHERE子句中指定查询条件来实现

WHERE子句常用的查询条件

: (1) 比较大小

(2) 确定范围

(3) 确定集合

(4) 字符匹配

(5) 空值判断

(6) 组合条件

(1) 比较大小

查询条件: op_{1} \Theta op_{2}

\Theta(比较运算符 ):=, >, <,>=,<= , !>, !<

op_{1} 和 op_{2}:由常量、变量、函数构成的算术/字符串表达式 

【例】查询来自杭州的所有学生。

SELECT *

FROM 学生表

WHERE 籍贯='杭州'

【例】查询累计学分在160分以下的学生姓名和累计学分。

SELECT 姓名, 累计学分

ROM 学生表

WHERE 累计学分<60

(2) 确定范围

查询条件: op1 [NOT] BETWEEN op2 AND op3

op1 、 op2、 op3:由常量、变量、函数构成的算术/字符串表达式。

【 例】查询累计学分不在150和159之间的学生姓名和累计学分。

SELECT 姓名, 累计学分

FROM 学生表

WHERE 累计学分 NOT BETWEEN 150 AND 159

【例】查询姓名在’陈’和’李’之间的学生学号和姓名。

SELECT 学号, 姓名

FROM 学生表

WHERE 姓名 BETWEEN '陈' AND '李'

由字符串定义的范围是根据字符内码的顺序确定的(一般按字典顺序 )

(3) 确定集合

查询条件: op1 [NOT] IN op2

op1 :由常量、变量、函数构成的算术/字符串表达式

op2:集合,表示为(e1, e2,…, en),其中e1, e2,…, en为集合的元素,它们可以是与op1同类型的常量、变量和函数构成的表达式。

含义:若op1(不)是集合op2的元素,则条件为真,否则为假。

【例】查询来自杭州、宁波或温州的学生学号和姓名。

 SELECT Sno,Sname

FROM Student

WHERE Scity IN ('杭州','宁波','温州')

【例】查询学号后两位是“09”,或者等于学号前两位或中间两位的学生学号和姓名。

SELECT 学号, 姓名

FROM 学生表

WHERE SUBSTRING(学号,6,2) IN (‘09’,SUBSTRING(学号,2,2),SUBSTRING (学号,4,2))

SUBSTRING(s,p,c):取子串函数,返回字符串s中从第p个字符开始,长度为c的子串。

(4) 字符匹配

查询条件: s1 [NOT] LIKE s2 [ESCAPE ’’]

s1和s2是由常量、变量、函数构成的字符串表达式。

s1称为主字符串,s2称为模式字符串 。

模式字符串除了包含普通字符外,还包含下列特殊字符(称为通配符):

  • % 匹配任意长度的字符串(长度可以为0)
  • _ 匹配任意一个字符
  • [c1c2,…cn] 匹配字符c1, c2, …, cn中的一个。当c1, c2, …, cn 连续时可简化为[c1-cn]
  • [^c1c2…cn] 匹配除c1, c2, …, cn外的一个字符。当c1, c2, …, cn连续时可简化为[^c1-cn]
  • 含义:若s1(不)与s2相匹配,则条件为真,否则为假。

【例】查询学号最后一位既不是“1”和“3”,也不是“9”的学生学号和姓名。

SELECT 学号, 姓名

FROM 学生表

WHERE 学号 LIKE '%[^139]'

ESCAPE短语: 使模式串中的某个通配符恢复原来的含义。

【例】查询课程名以“DB_”开头的课程信息。

SELECT *

FROM 课程表

WHERE 课名 LIKE 'DB\_%' ESCAPE '\'

(5) 空值判断

查询条件: exp IS [NOT] NULL

  • exp 是由常量、变量、函数构成的表达式。
  • 含义:exp的值(不)为空值,则条件为真,否则为假。

【例】查询没有成绩的学号和开课计划编号。

SELECT 学号, 开课号

FROM 选课表

WHERE 成绩 IS NUL

注意“IS”不能用“=”代替。

【例5-18】查询有成绩的学号和开课计划编号。

SELECT 学号, 开课号

FROM 选课表

WHERE 成绩 IS NOT NULL

注意“IS NOT”不能用“!=”或“<>”代替。

(6) 组合条件

查询条件: 用NOT、AND、OR和括号将多个逻辑表达式连接起来所得的复杂逻辑表达式 。

  • 括号的优先级最高,NOT次之,AND再次之,OR的优先级最低。

【例】查询这样的男生,他的电话号码前3位是“130”,他来自杭州或者宁波,他既不主修电子商务专业,也不主修信息管理专业。

SELECT *

FROM 学生表

WHERE 性别 = ‘男’ AND SUBSTRING(移动电话, 1, 3) = ‘130’ AND ( 籍贯 = '杭州' OR 籍贯 = '宁波' ) AND NOT 专业 IN ('电子商务', '信息管理')

3.对查询结果排序

语法 : ORDER BY{<排序列>[ASC |DESC]}[,...n]

【例】 查询选修了开课计划编号为’010101’的课程的学生学号和成绩,查询结果按分数降序排列

SELECT Sno, Grade

FROM EnrollmentWHERE OnO ='010101

ORDER BY Grade DESC

可以用列在SELECT子中的顺序编号来指定排序列,上例的ORDER BY子可改为: ORDER BY 2 DESC

若需按SELECT子句中的计算列排序,则 ORDER BY子句可用三种方法来表示这个计算列:

1)列表达式;2)列顺序编号;3)列别名。

【例5-21】查询选修了开课计划编号为’010101’的课程的学生学号、成绩以及加了10分后的新成绩,查询结果按原成绩降序、按新成绩升序排列。

SELECT 学号, 成绩, 成绩+10 AS New成绩

FROM 选课表

WHERE 开课号 = '010101'

ORDER BY 成绩 DESC, 成绩+10

上例中的成绩+10也可改写为:New成绩或3。

也可按SELECT子句中没有出现的列排序,此时不能用顺序编号来表示排序列。

来源地址:https://blog.csdn.net/weixin_72077052/article/details/130630770

您可能感兴趣的文档:

--结束END--

本文标题: 查询数据(数据库)——简单查询

本文链接: https://www.lsjlt.com/news/428356.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 查询数据(数据库)——简单查询
    目录 1.最简单的查询 (1)查询指定列 (2)查询所有列 (3)查询计算列 (4)为列起别名 (5)使用DISTINCT关键字消除重复元组 2.查询满足条件的元组 (1) 比较大小 (2) 确定范围 (3) 确定集合 (4) 字符匹配 (...
    99+
    2023-10-11
    数据库 sql mysql
  • python+tkinter+mysql做简单数据库查询界面
    目录一、准备工作:二、代码:三、界面四、总结一、准备工作: 1、安装mysql3.7,创建一个test数据库,创建student表,创建列:(列名看代码),创建几条数据 (以上工作直...
    99+
    2022-11-12
  • python数据库查询
    import pymysqlccon=pymysql.connect( host=‘127.0.0.1‘, user=‘root‘, password=‘password‘, port=3306, db=‘sy...
    99+
    2019-05-27
    python数据库查询 数据库入门 数据库基础教程
  • 数据库的单表查询操作
    数据库的单表查询操作?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。单表查询指的是在一张表中进行数据的查询,它的执行顺序是“fr...
    99+
    2022-10-18
  • php 查询数据库  数组
    在PHP开发中,数据库查询是必不可少的操作之一。 作为一种高效的动态语言,PHP提供了许多内置函数来帮助我们进行数据库操作。其中最重要的是PHP的数组。数组是PHP语言中最为重要和常用的结构之一。它们可以用于存储和操作数据,也可以将多个数据...
    99+
    2023-05-19
  • 用python操作mysql数据库(之简单查询操作)
    1、mysql安装    此处省略一万字.......2、pip安装MySQLdb模块sudo pip install mysql-python3、简单代码#!/us...
    99+
    2022-10-18
  • SQL数据查询——连接查询
    文章目录 一、等值和非等值连接查询1.等值连接查询2.非等值连接查询 二、自连接与非自连接三、内连接与外连接1.内连接2.外连接使用左外连接还是右外连接?满外连接 四、UNIO&...
    99+
    2023-10-26
    sql 数据库 mysql oracle
  • django数据查询之F查询和Q查询
    仅仅靠单一的关键字参数查询已经很难满足查询要求。此时Django为我们提供了F和Q查询: 1 # F 使用查询条件的值,专门取对象中某列值的操作 2 3 # from django.db.models import F ...
    99+
    2023-01-30
    数据查询 django
  • 数据库查询语句
    插入数据    INSERT 语法结构        INSERT [INTO] &l...
    99+
    2022-10-18
  • nodejs查询数据库防
    止SQL注入的方法随着互联网的迅猛发展,应用程序的数据交互越来越频繁,数据库的使用也变得越来越重要,而SQL注入攻击也愈发猖獗。SQL注入是指黑客将恶意代码注入到应用程序的SQL语句中,当数据传入到数据库时,恶意代码就能够执行,从而造成数据...
    99+
    2023-05-16
  • 【Java】Mybatis查询数据库
    文章目录 MyBatis查询数据库1. MyBatis 是什么?2. 为什么要学习MyBatis?3. 怎么学MyBatis?4. 第一个MyBatis查询4.1 创建数据库和表4.2 添加M...
    99+
    2023-09-06
    java mybatis spring
  • MySQL-查询数据库(一)
    有志者,事竟成 文章持续更新,可以微信搜索【小奇JAVA面试】第一时间阅读,回复【资料】获取福利,回复【项目】获取项目源码,回复【简历模板】获取简历模板,回复【学习路线图】获取学习路线图。 ...
    99+
    2023-09-07
    mysql java 数据库
  • SQL查询单表数据(一)
    1 从单表中查询所有的行和列 查询表中所有的数据 select * from t_user 在 SQL 中,字符 "*" 具有特殊的含义,使用用它,将从指定的表中返回每一列,在这里由于没有使用 where 子句,所以...
    99+
    2020-06-12
    SQL查询单表数据(一)
  • MySQL数据库查询之多表查询总结
    目录多表关系表与表之间的联系:一对多(多对一)多对多一对一多表查询多表查询的分类1.连接查询:2.子查询内连接外连接自连接联合查询子查询标量子查询列子查询行子查询表子查询多表查询案例...
    99+
    2022-11-13
    mysql多表查询语句 mysql多表连接查询方式 mysql多表查询面试题
  • 如何用数据库分页查询语句进行数据库查询
    这篇文章主要介绍“如何用数据库分页查询语句进行数据库查询”,在日常操作中,相信很多人在如何用数据库分页查询语句进行数据库查询问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何...
    99+
    2022-10-18
  • MySQL数据库单表查询的示例
    这篇文章主要介绍MySQL数据库单表查询的示例,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、 简单查询1.     Select语句Select [...
    99+
    2022-10-18
  • Thinkphp 6.0数据库的数据查询
    本节课我们来了解一下数据库的数据查询方式,单数据、数据集和其它查询。 一.单数据查询 1. Db::table()中 table 必须指定完整数据表(包括前缀); 2. 如果希望只查询一条数据,可以使用 find()方法,需指定 wh...
    99+
    2023-08-31
    php Powered by 金山文档
  • SQL Server2019数据库之简单子查询的具有方法
    子查询可以完成 SQL 查询中比较复杂的情况,本章主要介绍一些子查询的简单用法。 一、简单子查询 1、简单子查询 子查询是 SELECT 语句内的另外一条 SELECT 语句...
    99+
    2022-11-12
  • php怎么查询数据库输出查询结果
    PHP是一种流行的编程语言,常常被用于服务器端的开发。在PHP开发中,最常见的操作之一是查询数据库,因为多数网站都需要从数据库中读取数据并将其呈现给用户。在查询数据库时,开发人员通常需要输出查询语句,以便于调试和排错。本文将详细介绍PHP查...
    99+
    2023-05-14
    php 数据库
  • php如何查询数据库输出查询结果
    这篇文章主要讲解了“php如何查询数据库输出查询结果”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php如何查询数据库输出查询结果”吧!连接数据库在开始查询数据库之前,需要先连接到数据库。在...
    99+
    2023-07-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作