SQL查询入门(上篇) 推荐收藏

来源:asp之家 时间:2011-09-30 11:47:11 

SQL语言是一门简单易学却又功能强大的语言,它能让你快速上手并写出比较复杂的查询语句。但对于大多数开发者来说,使用SQL查询数据库并没有一个抽象的过程和一个合理的步骤,这很可能会使在写一些特定的SQL查询语句来解决特定问题时被”卡”住,本系列文章主要讲述SQL查询时一些基本的理论,以及写查询语句的抽象思路。

SQL查询简介
SQL语言起源于1970年E.J.Codd发表的关系数据库理论,所以SQL是为关系数据库服务的。而对于SQL查询,是指从数据库中取得数据的子集,这句话貌似听着有些晦涩是吧,下面通过几张图片简单说明一下:
假如一个数据库中只有一个表,再假如所有数据如下图(取自AdventureWork示例数据库):


而对于子集的概念,look下图:


最后,子集如下:


其实,SQL中无论多复杂的查询,都可以抽象成如上面的过程.

精确查询的前置条件
对于正确取得所需要的数据子集.除了需要思路正确并将思路正确转变为对应SQL查询语句之外。还有很重要的一点是需要数据库有着良好的设计.这里的良好设计我所指的是数据库的设计符合业务逻辑并至少实现第三范式,对于实现第三范式,这只是我个人观点,对于范式的简单介绍,请看我的博客:数据库范式那些事.如果数据库设计很糟糕,存在很多冗余,数据库中信息存在大量异常,则即使SQL写的正确,也无法取得精确的结果。
两种方式,同一种结果
在SQL中,取得相同的数据子集可以用不同的思路或不同的SQL语句,因为SQL源于关系数据库理论,而关系数据库理论又源于数学,思考如何构建查询语句时,都可以抽象为两种方法:
1.关系代数法
关系代数法的思路是对数据库进行分步操作,最后取得想要的结果.
比如如下语句:

代码如下:


Select Name,Department,Age
From Employee
where Age>20


关系代数的思路描述上面语句为:对表Employee表进行投影(选择列)操作,然后对结果进行筛选,只取得年龄大于20的结果.

标签:SQL查询入门
0
投稿

猜你喜欢

  • Python subprocess库六个实例快速掌握

    2021-02-22 05:53:56
  • pygame游戏之旅 载入小车图片、更新窗口

    2022-08-06 18:12:39
  • Python全景系列之模块与包全面解读

    2022-12-09 19:26:48
  • 自适应线性神经网络Adaline的python实现详解

    2023-11-03 03:57:40
  • linux中用shell快速安装配置Go语言的开发环境

    2024-02-12 22:38:11
  • python实现图片筛选程序

    2021-06-25 07:24:32
  • 轻松解决:mysql数据库连接过多的错误

    2010-09-30 14:28:00
  • 在数据库中自动生成编号的实现方法分享

    2024-01-23 03:02:04
  • 【总结】ASP如何获取访客真实的IP地址

    2007-08-15 13:43:00
  • Windows下的Python 3.6.1的下载与安装图文详解(适合32位和64位)

    2021-06-28 16:02:24
  • python下读取公私钥做加解密实例详解

    2022-04-17 03:39:00
  • Pytorch中的 torch.distributions库详解

    2021-05-17 22:26:47
  • 基于python实现Pycharm断点调试

    2021-05-18 03:16:22
  • python开根号实例讲解

    2022-10-03 12:29:07
  • python 遍历字符串(含汉字)实例详解

    2022-10-06 05:08:58
  • 详解Python中Addict模块的使用方法

    2021-11-04 00:06:04
  • 深入浅出讲解MySQL的并行复制

    2024-01-21 20:22:26
  • SQL Server 2008中有关XML的新功能

    2008-06-04 12:57:00
  • 如何给eWebEditor编辑器加上运行代码框功能

    2007-09-25 07:02:00
  • DRF使用simple JWT身份验证的实现

    2022-01-14 12:09:00
  • asp之家 网络编程 m.aspxhome.com