SQL语句 - 基本查询
select select_list
[ into new_table ]
from table_source
[ where search_condition ]
[ group by broup_by_expression ]
[ having search_condition ]
[order by order_by_expression [ asc | desc ]

select查询语句中的主要参数说明如下
select_list:查询的列或者表达式的列表,用逗号进行分隔。 new_table:新的表名。 table_source:要查询的表。如果是多个表,用逗号进行分隔。 search_condition:查询条件。 group_by_expression:分组表达式。 order_by_expression:排序表达式。 asc:升序排序。 desc:降序排序。
select查询语句字句的功能列表
子句 | 主要功能 | 是否必需 |
select | 指定由查询返回的列 | 是 |
from | 指定要查询的表 | 是 |
into | 创建新表并将结果行插入新表中 | 否 |
where | 查询条件 | 否 |
group by | 对查询结果进行分组 | 否 |
order by | 对查询结果进行排序 | 否 |
having | 对查询结果进行筛选 | 否 |
二、选择列表
选择列表用于定义select语句的结果集中的列
1、* 查询所有列:
select * from person
*就是结果集合,表示查询person表中的所有列。
2、distinct 去除重复数据:
distinct是对所有列作用,也就是说,所有列都相同才算重复数据。
select distinct name from person
3、包含函数的查询:
例如:
select count(*) from person
三、from子句
from子句实际上就是用逗号分隔的表名、视图名和join字句的列表。使用from子句可以实现如下功能:
1、列出选择列表和where子句引用的列所在的表和视图。可以使用as子句为表和视图指定别名。
2、联接类型。这些类型由on子句中指定的联接条件限定。
分配表名时可以使用如下形式
- table_name as table alias
- table_name as table_alias
需要特别说明的是,如果为表分配了别名,那么T-SQL语句中对该表的所有显示引用都必须使用别名,而不能使用别名。
四、where子句
where子句可以筛选结果集的源表中的行。带有where子句的select语句的结构如下:
select <字段列表>
from <表名>
where<条件表达式>
其中,条件表达式是由各种字段、常量、表达式、关系运算符、逻辑运算符和特殊的运算符组合起来的。
where子句中的运算符:
1、关系运算符
关系运算符用来表示两个表达式之间的比较关系。
关系运算符 | 含义 |
= | 等于 |
< | 小于 |
> | 大于 |
!=(或<>) | 不等于 |
>= | 大于等于 |
<= | 小于等于 |
!> | 不大于 |
!< | 不小于 |
2、逻辑运算符
逻辑运算符用于表示两个表达式之间的逻辑关系:
逻辑运算符 | 含义 |
not | 非(否) |
and | 与 |
or | 或 |
3、特殊运算符
特殊运算符 | 含义 |
% | 通配符,通常与like配合使用 |
_ | 通配符,代表严格的一个字符。where name like '_xxx'将查找以xxx结尾的所有4个字母的名字(sxxx,dxxx等) |
[] | 指定范围([a-f])或集合([abcdefg])中的任何单个字符。where name like '[a-f]xxxx',将超找以abcdef开头,xxxx结尾的字符。 |
[^] | 不属于指定范围的([a-f])或集合([abcdefg])的任何单个字符。 |
between | 定义一个取值范围区间,使用and分开。between开始值与and结束值。 |
like | 字符串匹配 |
in | 一个字段的值是否在一组定义的值之中 |
exists | 子查询有结果集返回(则子查询返回True) |
not exists | 子查询没有结果集返回(则子查询返回True) |
is null | 字段是否为null |
is not null | 字段是否不为null |
在WHERE子句中使用EXISTS(如果使用得当的话)可以大大提高性能。因为使用EXISTS时,只要找到和条件匹配的记录,SQL Server就立即停止。假设有一个包含一百万条记录的表,并且在第三个记录中找到了匹配的记录,那么使用EXISTS选项将避免读取999997条记录!NOT EXISTS以同样的方式工作。
五、group by子句
详见地址:http://www.cnblogs.com/kissdodog/p/3365789.html
六、order by子句
order by子句用于指定结果集的排序
1、语法结构:
select <字段名列表>
from 数据库表名
[where <条件表达式>]
[order by[<字段名或者表达式> [asc|desc],...]]
order by子句可以搭配where子句,也可以和select、fromD搭配使用,而不需要where子句。
order by子句的语法如下:
[ order by { order_by_expression [ asc | desc] } [ ,...n ] ]
其中主要的参数说明如下:
order_by_espression:指定要排序的列、列的别名、表达式或者指定为代表选择列表内的名称、别名或表达式的位置的负整数。
asc:按递增顺序对指定列中的值进行排序。
desc:按递减顺序对指定列中的值进行排序。
七、having筛选查询
详见地址:http://www.cnblogs.com/kissdodog/p/3365789.html
八、into查询
into子句将查询结果生成新表,新表的结构由查询字段列表组成。也可以将查询的结果送入tempdb数据库的临时表中,这样关闭服务器之后临时表会自动删除。
into查询的语法结构:
SELECT <字段名列表>
[ into 新的数据表名 ]
FROM 数据库表名
[ where <条件表达式> ]
SQL语句 - 基本查询的更多相关文章
- SQL语句在查询分析器中可以执行,代码中不能执行
问题:SQL语句在查询分析器中可以执行,代码中不能执行 解答:sql中包含数据库的关键字,将关键字用[]括起来,可以解决. 后记:建数据库的时候尽量避免使用关键字. 例子: sql.Format(&q ...
- 如何在 Linux 上用 SQL 语句来查询 Apache 日志
Linux 有一个显著的特点,在正常情况下,你可以通过日志分析系统日志来了解你的系统中发生了什么,或正在发生什么.的确,系统日志是系统管理员在解决系统和应用问题时最需要的第一手资源.我们将在这篇文章中 ...
- 在Hibernate中使用HibernateTemplate来进行包含sql语句的查询
/** * 使用sql语句进行查询操作 * @param sql * @return */ public List queryWithSql(final Stri ...
- Sql语句之查询所有学生所有科目分数及总分
昨天练Sql语句,数据库建了四个表分别是,学生表,课程表,成绩表以及教师表(教师表不在讨论范围),突然想到以前高中时代老师手上的那张成绩表,然后我就寻思着能不能用Sql语句把表打印出来,以下是我的思考 ...
- Python与开源GIS:在OGR中使用SQL语句进行查询
摘要: 属性选择与空间选择都可以看作是OGR内置的选择功能,这两种功能可以解决大部分实际中的问题.但是也有这种时候,就是进行查询时的条件比较复杂.针对这种情况,OGR也提供了更加灵活的解决方案:支持使 ...
- SQL 语句在查询分析器执行很快,程序 Dapper 参数化查询就很慢(parameter-sniffing)
这个问题困扰我好长时间了,使用SQLSERVER 事务探查器找到执行超时的SQL语句,参数查询都是通过执行exe sp_executesql 的存储过程调用,因为它能够分析并缓存查询计划,从而优化查询 ...
- [Beego模型] 四、使用SQL语句进行查询
[Beego模型] 一.ORM 使用方法 [Beego模型] 二.CRUD 操作 [Beego模型] 三.高级查询 [Beego模型] 四.使用SQL语句进行查询 [Beego模型] 五.构造查询 [ ...
- SQL语句关联查询
一:连接类型: 关联查询:只有存在关联的表才能关联查询,完全独立的表之间无法关联 1.关联的类型:自关联,左关联,右关联,全关联(full join)两张表都是主表 2.关联的表:两张以上,以一张(或 ...
- MySQL的EXPLAIN命令用于SQL语句的查询执行计划
MySQL的EXPLAIN命令用于SQL语句的查询执行计划(QEP).这条命令的输出结果能够让我们了解MySQL 优化器是如何执行SQL 语句的.这条命令并没有提供任何调整建议,但它能够提供重要的信息 ...
- mysql 常用 sql 语句 - 快速查询
Mysql 常用 sql 语句 - 快速查询 1.mysql 基础 1.1 mysql 交互 1.1.1 mysql 连接 mysql.exe -hPup ...
随机推荐
- 在线教学、视频会议 Webus Fox(2) 服务端开发手册
上次在<在线教学.视频会议软件 Webus Fox(1)文本.语音.视频聊天及电子白板基本用法>里介绍了软件的基本用法.本文主要介绍服务器端如何配置.开发. 1. 配置 1.1 IIS配置 ...
- 大熊君说说JS与设计模式之------命令模式Command
一,总体概要 1,笔者浅谈 日常生活中,我们在看电视的时候,通过遥控器选择我们喜欢的频道时,此时我们就是客户端的角色,遥控器的按钮相当于客户请求,而具体执行的对象就是命令对象, 命令模式把一个请求或者 ...
- 享受LINQ:判断一组文字是否在字符串中同时出现的最简单方法
需求是这样的:不允许在一个字符串中同时出现"博", "客", "园", "团", "队"这5个文字. ...
- Sublimetext (for windows)编译运行c出现Error 2错误的解决办法
错误描述大概如下: [Error 2] [cmd: [u'bash', u'-c', u"g++ 'D:\\codeblocks\\project\\test.c' -o 'D:\\ ...
- [51单片机] EEPROM 24c02 [读取存储多字节]
先将数据存进去,然后再读出来显示在数码管上. 除了代码里定义的连线外还要把p0连接到8位数码管的8针上. /*--------------------------------------------- ...
- JS动态修改页面EasyUI datebox不生效、EasyUI动态添加Class、EasyUI动态渲染解析解决方案
这是个小菜在实际工作中遇到的问题,相信很多EasyUI新手很可能也遇到这样的问题,因此小菜觉得有必要拿出来分享一下. 这个问题要从EasyUI的datebox组件说起,小菜用这个组件的时候,发现用$( ...
- Backbone入门——开发第一个Backbone页面
1. 功能描述在新建的html页面中,通过导入的backbone文件搭建一个简单的mvc结构.当用户进入该页时,id号为“divTip”的<div>元素中将显示“hello,backbon ...
- debian7.8 安装 chm
一.CHMSEE 这个比较常见了,呵呵. 安装: sudo apt-get install chmsee 之后在应用程序附件中就可以看到了. 问题1: 启动不了或者出现 chmsee: error w ...
- 使用轻量级ORM Dapper进行增删改查
项目背景 前一段时间,开始做一个项目,在考虑数据访问层是考虑技术选型,考虑过原始的ADO.NET.微软的EF.NH等.再跟经理讨论后,经理强调不要用Ef,NH做ORM,后期的sql优化不好做,公司 ...
- 电子病历,到底是用BS还是CS
电子病历,到底是用BS还是CS 袁永福 2014-8-19 前言:前几天下午去开发医疗软件的S公司,旁听了他们的内部技术讨论会议.他们目前的电子病历是B/S架构,会上一群人讨论起用C/S重构电子病历系 ...