iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >SQL查询单表数据(一)
  • 160
分享到

SQL查询单表数据(一)

SQL查询单表数据(一) 2020-06-12 10:06:57 160人浏览 无得
摘要

1 从单表中查询所有的行和列 查询表中所有的数据 select * from t_user 在 sql 中,字符 "*" 具有特殊的含义,使用用它,将从指定的表中返回每一列,在这里由于没有使用 where 子句,所以

SQL查询单表数据(一)

1 从单表中查询所有的行和列

查询表中所有的数据

select * from t_user

sql 中,字符 "*" 具有特殊的含义,使用用它,将从指定的表中返回每一列,在这里由于没有使用 where 子句,所以将会返回每一行,即是 查询表中所有的行与列,就是所有的数据 。

还有一种写法就是分别列出每一列 如下

select user_name,user_age,user_agent,user_flag,user_address from t_user

在交互执行的特定查询中,使用 * 写法更容易些,然而,在写程序代码的时候,推荐指定每一列,这样后续开发中就可以很清楚的查看到返回了哪些数据,有利于其他开发者阅读,当然两种写法的性能是一致。

2 从单表中查询部分数据

使用 where 子句指定查询结果要保留哪些行,例如 要查询 年龄为28的所有用户信息,我们可以这样写

select * from t_user where user_age=28
3 从单表中查询满足多个条件的数据

可以使用 where 结合 or 、and 子句综合查询

例如查询 地址为山西中的所有用户,以及地址为北京的所有年龄不超过28岁的用户,我们可以这样写

select * from t_user 
	where user_province="山西" 
	or user_age<= 28 and user_province="北京" 
4 从单表中查询部分列

要查看一个表中特定的列,而不是所有的列的值,例如要查询 用户的 姓名、年龄,可以这样写

select  user_age,user_name from t_user

通过 select 子句中指定列,可以保证不会返回多余的数据,在跨域网络查询数据时,可以避免查询不需要的数据所带来的时间的浪费。

5 为查询的列指定别名

改变查询所返回的列名,使这些数据更具有可读性,可以使用 AS 关键字: 原列名 as 新名称

select user_age as userAge,user_name as userName from t_user

或者可以 省略 as 关键字

select user_age userAge,user_name userName from t_user

使用比较好的别名,可以在实际开发中使其他开发者更容易理解查询结果

6 在 where 子句中引用别名的列

例如查询 年龄不大于 28 岁的所有用户,如下

select user_age as userAge ,user_name as userName from t_user where userAge <=28
7 将查询的多个列值组合成一列

例如在 查询用户表的时候,返回这样的结果集

张三 的年龄是 24 李四的年龄是 25

...

然而在 t_user 表中,姓名,年龄是不同的列,要把不同的列数据连接起来 在 DB2 、oraclepostgresql 中使用双竖线作为连接运算符

select user_name || "的年龄是" || user_age as msg fORM t_user

Mysql 中使用 concat 函数

select concat(user_name,"的年龄",user_age) as msg from t_user

SQL Server 中使用 "+" 运算符进行连接操作

select user_name +"的年龄" + user_age as msg from t_user

查询的结果最终会以 msg 返回

8 在select查询语句中使用条件逻辑

要在 select 查询结果中,使用 if-else 筛选数据操作,例如 用户的年龄小于 18 就返回信息 "少年人",年龄大于60 就返回 "老年人",其他的返回中年人,可以这样写

select user_name ,user_age,
	case when user_age <18 then "少年人"
	     when user_age>60 then "老年人"
	     else "中年人"
	end  as  status
	from t_user

case 表达式可以对查询结果的返回值执行条件逻辑,在上述查询中,case 筛选的结果 使用的别名是 status

在这里插入图片描述

9 限制返回的行数

例如要查询一个表中的前100条数据,可以使用 数据库提供的内置函数来控制返回的行数

在 DB2 中,使用 fetch first 子句

select * from t_user fetch first 100 rows only 

mysql postgreSQL 中

select * from t_user limit 100

在 Oracle 中,使用 where 子句通过 rownum 来限制行数

select * from t_user where rownum <=100

在 SQL Server 中 使用 top 关键字来限制返回的行数

select top 100 * from t_user
注意 :

在 Oracle 中,必须使用 rownum 函数开得到每行的行号,从1开始递增,在使用 rownum <=100 来返回 前100行时,会发生如下操作

  • 1 Oracle 执行查询
  • 2 Oracle 获取第 1个合条件的行,称为第1行
  • 3 判断结果是否有 100 行了吗,如果没有,那么,Oracle 就再返回行,因为要满足行号小于先于100的条件,如果到了100行,那么 Oracle 就不再返回行
  • 4 Oracle 获取到下一行,并递增行号,然后再返回到步骤3中
10 从表中随机返回 n 条记录

可以使用数据库中内置函数来生成随机数,例如随机返回表中的5条数据

在 DB2 中,使用内置函数 rand 与 order by 和 fetch

select * from t_user
	order by rand() fetch first 5 rows only 

在 MySQL 中,同时使用 内置的 rand 函数、limit 和 order by

select * from t_user
	order by rand() limit 5

在 PostgreSQL 中 ,同时使用 random 函数 limit 和 order by

select * from t_user
	order by random() limit 5

在 SQL Server 中同时使用内置函数 newid top orderby

select top 5 * from t_user
	order by newid()
11 查找表中的空值

要查找某列中值为空的所有的行,要确定值是否为空,可以使用 IS_NULL

select * from t_user 
	  where user_addres is null

null 不能使用等于或者不等于,为了确定某一行是否有空值,必须使用 is null 或者 is not null

12 将空值转换为实际值

在一些行中包含空值,我们在实际开发中可以将这些空值设置成一些默认的值,可以使用 coalesce 函数来替换空值

select * coalesce(user_address,"北京") from t_user 

在这里查询的结果集中,user_address 的值非空就返回 user_address的值,如果是空,就返回 北京,当然使用 case 也可以实现相同的效果

select * 
	case when user_address is null then "北京"
	else user_address
	end 
from t_user

完结

您可能感兴趣的文档:

--结束END--

本文标题: SQL查询单表数据(一)

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

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

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

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

下载Word文档
猜你喜欢
  • SQL Server单表数据查询举例详解
    目录一、向SQL Server中导入数据二、例题1.查询所有学生的全部信息2.查询学生的学号和姓名3.查询所有学生的姓名和出生年4. 查询所有学生的姓名和出生年,要求列名是汉字形式5...
    99+
    2023-05-15
    sql server单表查询 sqlserver如何查询表数据 数据库单表查询
  • SQL Server单表数据查询举例详解
    一、向SQL Server中导入数据 导入成功之后,可以点开表格查看内容: (如下图即导入成功) 其他表同理可得,也可以同时导入 二、例题 1.查询所有学生的全部信息 SELECT * FR...
    99+
    2023-04-12
    sql server单表查询 sqlserver如何查询表数据 数据库单表查询
  • 查询数据(数据库)——简单查询
    目录 1.最简单的查询 (1)查询指定列 (2)查询所有列 (3)查询计算列 (4)为列起别名 (5)使用DISTINCT关键字消除重复元组 2.查询满足条件的元组 (1) 比较大小 (2) 确定范围 (3) 确定集合 (4) 字符匹配 (...
    99+
    2023-10-11
    数据库 sql mysql
  • sql怎么查询不在数据表的数据
    要查询不在数据表的数据,可以使用LEFT JOIN和IS NULL来进行查询。具体步骤如下:1. 假设有两个表:表A和表B,我们要查...
    99+
    2023-09-23
    sql
  • SQL数据查询——连接查询
    文章目录 一、等值和非等值连接查询1.等值连接查询2.非等值连接查询 二、自连接与非自连接三、内连接与外连接1.内连接2.外连接使用左外连接还是右外连接?满外连接 四、UNIO&...
    99+
    2023-10-26
    sql 数据库 mysql oracle
  • MySQL数据表内容查询(一)
    MySQL数据表内容查询(一) 1 内容 数据表内容的查询主要就是DQL(数据库查询语言的使用),主要使用SELECT关键字去进行查询操作 2 使用 2.1 不带筛选条件的(没有wher...
    99+
    2023-09-22
    mysql 数据库 DQL 谓词 基础查询
  • sql多表数据如何嵌套查询
    在SQL中,可以使用子查询来实现多表数据的嵌套查询。子查询是指在一个查询语句中嵌套另一个查询语句,以实现对多表数据的查询和筛选。 例...
    99+
    2024-04-11
    sql
  • 单表查询
    完整语法 简单查询 where 时分组前的过滤条件 group by 分组 什么是分组:按照所有记录相同的部分进行归类,一定区分度低的字段为何要分组:当我们要以组为单位进行统计时就必须分组,...
    99+
    2024-04-02
  • MySQL数据库单表查询的示例
    这篇文章主要介绍MySQL数据库单表查询的示例,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、 简单查询1.     Select语句Select [...
    99+
    2024-04-02
  • MySql数据库单表查询与多表连接查询效率对比
    这段时间在做项目的过程中,遇到一个模块,数据之间的联系很复杂,在建表的时候就很纠结,到底该怎么去处理这些复杂的数据呢,是单表查询,然后在业务层去处理数据间的关系,还是直接通过多表连接...
    99+
    2024-04-02
  • MySQL之单表查询、多表查询
    一、单表查询: 单个表的查询方法及语法顺序需要通过实际例子来熟悉 先将表数据创建下: mysql> create database singe_t1; # 建个数据库singe_t1 Query OK, 1 row aff...
    99+
    2023-01-31
    MySQL
  • sql怎么从多张表中查询数据
    要从多张表中查询数据,可以使用以下方法:1. 使用JOIN语句:JOIN语句可以将多张表连接起来,根据指定的条件关联表中的数据。常用...
    99+
    2023-09-14
    sql
  • sql 单表/多表查询去除重复记录
      单表distinct  多表group by  group by 必须放在 order by 和 limit之前,不然会报错。  1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来...
    99+
    2024-04-02
  • SQL联表查询
    表1学生信息表 表二专业信息表 – join on 连接查询 – where 等值查询 1、内连接 分为两种 等值连接: 查找两个表中连接字段相等的记录。 --查询每个学生的(学生表)学号、姓名、籍贯、年龄、(专业表)专业、...
    99+
    2023-08-19
    mysql
  • sql多表查询
    多表查询概念:从多张表查询数据 分类:连接查询和子查询。 有两张表A、B 连接查询: 内连接      相当于查询A、B交集数据 例1:select * from emp,dept where emp.dep_id=d...
    99+
    2023-09-01
    sql 数据库 vim mysql java
  • 一条SQL语句查询多个数据库
    需求:一条SQL语句从多个数据库查询出相关联的结果,输出到客户端 调查:spring框架可以配置多数据源;sql也可以将多个数据库附加到一个主数据库下 解决办法:用ATTACH DATABASE语句将多个库...
    99+
    2024-04-02
  • sql中查询表中特定重复数据怎么查
    确定需要检查的重复列后,使用 count() 和 group by 子句统计唯一值出现次数,再使用 having 子句按组聚合函数(如 count())指定条件,即可过滤出特定...
    99+
    2024-04-28
    聚合函数
  • sql如何遍历所有表查询出数据
    可以使用以下步骤来遍历所有表并查询出数据:1. 使用`SELECT name FROM sqlite_master WHER...
    99+
    2023-08-20
    sql
  • sql怎么遍历所有表查询出数据
    如果你想要遍历所有表并查询出数据,你可以使用以下的SQL语句:```DECLARE @TableName NVARCHAR(...
    99+
    2023-08-19
    SQL
  • mysql-单表查询
    语法:一、单表查询的语法    SELECT 字段1,字段2... FROM 表名        &n...
    99+
    2023-01-30
    mysql
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作