SQL入门之查询入门

select语法一般结构:

1 SELECT [ALL|DISTINCT] <目标列表达式> [别名] [, <目标列表达式> [别名]]...
2 FROM <表名或视图名> [别名] [,<表名或视图名> [别名]]...
3 [WHERE <条件表达式>]
4 [GROUP BY <列名1> [HAVING <条件表达式>]]
5 [ORDER BY <列名2>[ASC|DESC]

可知select语句是由几个组件或者说子句构成。有一些子句不可缺少(select子句),但有一些可以不用使用。

子句名称 使用目的
select 确定结果集中应该包含哪些列
from 指明所要提取数据的表, 以及这些表是如何连接的
where 过滤不需要的数据
group by 用于对具有相同列值的行进行分组
having 过滤掉不需要的组(必须同group by子句一起用)
order by 按一个或多个列,对最后结果集中的行进行排序

0.select子句

  作为select语句第一个部分,select是最后被执行的,因为需要知道结果集中所有可能包含的列。

select * from department;

  这里*代表通配符,意思是从department表中选择所有的列,相当于将department中所有属性都写出来,如果要只显示需要的属性列,直接写出即可。当然也可以对select子句进行一下修饰。

  • 字符,比如数字或字符串
  • 表达式,如dept_id * 3
  • 调用内建函数,如upper(name)
  • 用户自定义的函数

  通过查询,返回的是每个列的默认属性名,也可以自定义名,即取别名,可以属性名后直接加别名,也可以属性名 as 别名。

  默认情况select语句是不去除重复行的,若不需要则在其后加distinct,如果显示所有的则用all(默认)。但是一定要注意:使用distinct,数据库会对查询结果进行排序,这对于较大的结果集是很浪费时间的,降低效率,因此不要随意使用。

1.frome子句

  from子句定义了查询中所用的表,以及连接这些表的方式。

2.where子句

  where子句用于在结果集中过滤掉不需要的行。

  where后面跟的是条件表达式,满足条件的元组将会被选出。如:

select emp_id, fname, lname, start_date, title
from employee
where title = ‘Head Teller‘;

  可以看出,仅仅title为Head Teller的元组被列了出来。

  条件表达式是多种多样的,这里仅仅用了,相等的条件,其他表达式以后解释。

3.group by和having子句

  group by子句用于根据列值对数据进行分组。having子句与group by子句配合使用,选取满足条件的元组。

select d.name, count(e.emp_id) num_employees
from department d inner join employee e on d.dept_id = e.dept_id
group by d.name
having count(e.emp_id) > 2;

4.order by子句

  order by子句用于对结果集中的原始列数据或是根据列数据计算的表达式结果进行排序。

  如一般情况下的查询

select open_emp_id, product_cd
from account;

  可见结果没有次序,如果使用order by子句

select open_emp_id, product_cd
from account
order by open_emp_id;

  从结果上看,结果按照open_emp_id升序排列(默认),如果想要降序排列,则在后面跟desc。也可以按照多个属性升序或降序排列。

时间: 2024-10-12 13:18:16

SQL入门之查询入门的相关文章

SQL注入之SQLmap入门

什么是SQLmap? SQLmap是一款用来检测与利用SQL注入漏洞的免费开源工具,有一个非常棒的特性,即对检测与利用的自动化处理(数据库指纹.访问底层文件系统.执行命令). 读者可以通过位于SourceForge的官方网站下载SQLmap源码:http://sourceforge.net/projects/sqlmap/ SQLmap的作者是谁? Bernardo DameleAssumpcao Guimaraes (@inquisb),读者可以通过[email protected]与他取得联

SQL Server AlwaysON从入门到进阶(1)——何为AlwaysON?

本文属于SQL Server AlwaysON从入门到进阶系列文章 本文原文出自Stairway to AlwaysOn系列文章.根据工作需要在学习过程中顺带翻译以供参考.系列文章包含: SQL Server AlwaysON从入门到进阶(1)--何为AlwaysON? SQL Server AlwaysON从入门到进阶(2)--存储 SQL Server AlwaysON从入门到进阶(3)--基础架构 SQL Server AlwaysON从入门到进阶(4)--分析和部署Windows Ser

Mybatis最入门---动态查询(foreach)

[一步是咫尺,一步即天涯] 本文,我们来介绍使用Mybatis提供的<foreach>标签实现我们某些循环增改删差的需求.官方文档中的内容过于简陋,于是,博主筛选出比较全面讲述foreach用法的的内容,并且配有例子.希望各位看官能够手动敲一遍下面的例子,达到快速学习的目的. 准备工作: a.操作系统 :win7 x64 b.基本软件:MySQL,Mybatis,SQLyog -----------------------------------------------------------

Mybatis最入门---动态查询(if)

[一步是咫尺,一步即天涯] 前面我们花费很多篇幅来介绍核心元素<resultMap>的使用,在日常开发中,基本的静态的查询情况已经足够对付.但有些时候,我们想寻求一个能够根据参数自动调整SQL查询的方法.如,学校教导主任发现一个学生违反校纪校规,但是并没有当场抓住该学生,于是,他通过已经掌握的学生信息如[性别],[年纪],[身高]等信息来查询符合条件的学生.但是,这些信息的数量每次得到的数量都是不同的.换句话说,我们在设计系统时,无法确定传入参数的数量.也没有获得一个足以唯一确定这个对象的主键

Mybatis最入门---分页查询(拦截器分页原理及实现)

[一步是咫尺,一步即天涯] 前文,我们演示了物理分页的Sql实现方式,这种方式使得我们每次在编写查询服务时,不断的重复造轮子.这样的代码实现方式就显得十分的笨拙了.本文是Mybatis分页查询的最后一片内容,我们将介绍基于拦截器的,精巧的实现方式.在阅读这篇文章之前,强烈建议各位看官能够先阅读上文.这样就能对下文我们提及的各种对象及他们之间的关系有一个清晰的关系.好了,废话不多讲,开始我们的正文部分吧. 准备工作: a.操作系统 :win7 x64 b.基本软件:MySQL,Mybatis,SQ

SQL Server AlwaysON从入门到进阶(2)——存储

本文属于SQL Server AlwaysON从入门到进阶系列文章 前言: 本节讲解关于SQL Server 存储方面的内容,相对于其他小节而言这节比较短.本节会提供一些关于使用群集或者非群集系统过程中对存储的利用建议.当然,重点还是集中在对于一个标准的AlwaysOn可用组配置过程中,对存储的选择和配置上面. AlwaysOn的部署首先建立在一个Windows Server Failover Cluster(WSFC)上.并且每个服务器通常有一个独立的SQL Server实例.另外,每个服务器

T-SQL查询入门(一)

一.数据查询 语法:select <列名> from <表名> [where <查询条件表达式>] order by <排序的列名>  [ASC 或DESC]    --默认为升序ASC: 1.select * from tablename;    --查询所有的数据行和列 2.select ipaddress,actiontime  from tablename;    --查询部分行和列 3.select top 10 * from tablename;

MS SQL Server该如何入门呢

今天,分享一个初学编程如何来学习使用MS SQL Server,我从网上淘来不少资源,像SQL Server2008编程入门经典(第3版), Head First SQL,SQL必知必会(第4版),SQL Server 2008 基础教程,SQL Server2012编程入门经典(第4版)还有今天刚刚得的SQL Server 2012从入门到精通以及SQL Server 2012从零开始学.应该来说这些书学习SQL Server来说足够多了吧,但是除了Head First SQL,SQL必知必会

快速入门和查询Python

评分: 4.5 作者: Ryan Lu 类别:Python 时间: 1. 注释 三种方式: 单行注释以 # 开头 多行注释用三个单引号 ''' 将注释括起来 多行注释用三个双引号 """ 将注释括起来 示例代码如下: #!/usr/bin/python3 # 这是一个注释 ''' 这是多行注释,用三个单引号 这是多行注释,用三个单引号 这是多行注释,用三个单引号 ''' """ 这是多行注释,用三个单引号 这是多行注释,用三个单引号 这是多行注释