SQL之数据查询

SQL之数据查询

文章为个人读书总结笔记 发现错误以及如果有什么建议可以及时通知我哟!

SQL语言使用SELECT语句进行查询数据

  • 格式

    SELECT    [ALL|DISTINCT] 
    <目标表达式>
    [,<目标表达式>]
    ...
    FROM <表名或者视图名>
    [,<表名或者视图名>...] | (<SELECT语句>)[AS]<别名>
    [WHERE <条件表达式> ]
    [GROUP BY <列名1> [HAVING <条件表达式>]]
    [ORDER BY <列名2> [ASC|DESC]];
    • 含义
      • 根据WHERE子句的条件表达式FROM子句指定的基本表或者视图找出满足条件元组
      • 再按SELECT子句罗列出的表达式选出元组中的属性值形成结果表
      • 如果有GROUP BY子句,将结果表<列名1>值进行划分组,值相同为一组
      • 如果GROUP BY子句带有HAVING条件短语,则以组为单位,选出满足条件的组
      • 如果有ORDERBY子句,将结果表按照<列名2>的值进行升序或者降序处理
        • ASC : 升序
        • DESC : 降序

假如我想:单表查询

实现:选择表中的若干列(SELECT

我能:查询指定列
  • 例子:查询表S的所有Sno, Sname

    SELECT Sno,Sname
    FROM S;
    • 执行过程
      • 从S表中取出一个元组
      • 选择元组的Sno, Sname的属性值形成一个新的元组作为输出
      • 对S表中的其他元组做同样的处理
      • 形成最终结果关系输出
  • 例子:查询S表中的所有Sname,Sno,Sdept

    SELECT    Sname,Sno,Sdept
    FROM S;
    • 注意:目标表达式中各个列的顺序可以与查询表中的顺序不同( 由用户自定义结果表
我能:查询全部列
  • 例子:查询全部S表的所有属性

    • 方法一 : 列出完整目标表达式
    SELECT Sno,Sname,Sdept,Sage
    FROM    S;
    • 方法二 : 使用 * 代替整个目标表达式
    SELECT  *
    FROM    S;
我能:查询经过计算后得到的值
  • 补充:目标表达式

    • 不仅可以是表中的属性列

    • 例子参照上面罗列出来的

    • 还可以是表达式 ( 例如针对整数的减法运算

    • 例子:查询S表的Sname,以及出生年份( 2018 - Sage

      SELECT    Sname,2018-Sage
      FROM  S;
    • 还可以是字符串常量

    • 例子:查询S表的Sname,添加字符串 “Year of Birth:’ 属性列,以及出生年份

      SELECT    Sname,'Year of Birth:',2018-Sage
      FROM  S;
    • 还可以是函数

    • 例子:查询S表中的Sdept,要求数据为小写

      SELECT    LOWER(Sdept)
      FROM  S;
  • 补充:为目标表达式指定别名

    • 例子:查询表S,结果表为表达式 2018-Sage 指定别名为BIRTHDAY

    • 影响:结果表中的属性列标题由2018-Sage 变成了 BIRTHDAY

    SELECT  2018-Sage BIRTHDAY, Sname
    FROM    S;

实现:选择表中的若干元组(WHERE

我能:消除取值重复的行(DISTANCT
  • 使用:DISTINCT

  • 例子:查询SC表中的Sno,消除重复的行

    SELECT    DISTANCT Sno
    FROM  SC;
我能:查询满足条件的元组(WHERE
  • 常用的查询条件 ( 条件表达式
查询条件 谓词
比较 [NOT] =,>,<,>=,<=,!=,<>,!>,!<
确定范围 [NOT] BETWEEN AND
确定集合 [NOT] IN
字符匹配
  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQL Server是一种关系型数据库管理系统,它提供了丰富的高级数据查询功能。以下是SQL Server高级数据查询的一些重要特性和技术: 1. 子查询:子查询是嵌套在主查询中的查询语句,可以用来获取更复杂的查询结果。子查询可以用在SELECT、FROM、WHERE等子句中,用于过滤、排序、聚合等操作。 2. 联接:联接是将两个或多个表中的数据按照某种关系进行合并的操作。SQL Server支持多种联接类型,如内联接、外联接、交叉联接等。联接可以通过共享列值将相关数据连接在一起。 3. 窗口函数:窗口函数是一种在查询结果集上执行计算的函数。它可以在不改变查询结果的情况下,对结果集中的行进行排序、分组、聚合等操作。常见的窗口函数包括ROW_NUMBER、RANK、DENSE_RANK、SUM、AVG等。 4. 分组和聚合:SQL Server提供了GROUP BY子句和聚合函数,用于对数据进行分组和计算汇总值。通过GROUP BY子句可以将数据按照指定的列进行分组,然后使用聚合函数如SUM、AVG、COUNT等计算每个组的汇总值。 5. 存储过程和函数:SQL Server支持存储过程和函数的创建和调用。存储过程是一组预定义的SQL语句,可以接受参数并返回结果。函数是一段可重用的SQL代码,可以接受参数并返回一个值。 6. 索引和优化:SQL Server提供了索引来提高查询性能。索引可以加速数据的检索和排序操作。此外,SQL Server还提供了查询优化器,它可以根据查询的复杂度和数据分布情况选择最优的执行计划。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值