SELECT 基本语法

SQL查询语句常见语法结构
Select select_list
[Into new_table]
From table_source
[Where search_condition]
[Group by group_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  对查询结果进行筛选  否




2、常见的查询语句


(1)查询表中所有的记录


Select * from 数据表名


(2)查询表中所有记录的指定字段


Select 字段1,字段2,…  from 数据表名


(3)允许查询结果中显示重复记录(默认就是all)


Select all 字段1,字段2,…  from 数据表名


(4)不允许查询结果中显示重复记录


Select distinct 字段1,字段2,…   from 数据表名


(5)指定查询前 n 行记录


Select top n 字段1,字段2,…  from 数据表名


(6)指定查询记录数的百分比


Select top n percent 字段1,字段2,…  from 数据表名


(7)带表达式的查询


Select  表达式1,字段2,…   from  数据表名


(8)更改列名显示的查询(AS可以省略)


Select 表达式1 AS 新列名1,字段2  AS 新列名2,… from 数据表名




3、WHERE 条件查询


where条件查询的语法结构
Select <字段列表>
From <表名>
Where <条件表达式>


其中,条件表达式是由各种字段、常量、表达式、关系运算符、逻辑运算符和特殊运算符组合起来的。
(1)where 中的关系运算符:=、<>(!=)、<、>、<=、>=、!>、!<
(2)where 中的逻辑运算符:NOT、AND、OR


注意:逻辑运算符的优先次序是NOT、AND、OR,在同一优先级上的取值顺序是从左到右。


(3)where 中的特殊运算符




特殊运算符  含义 
%  通配符,代表任意多个字符。 
-  通配符,代表严格的一个字符。 
[ ]  指定范围([a-f])或集合([abcdef])中的任何单个字符。 
[^]  不属于指定范围([a-f])或集合([abcdef])中的任何单个字符。例如:where name like ‘wan[^lx]’ 表示查询以wan开始其后的字母不是lx的。 
Between 定义一个取值范围区间,使用and 分开。 
Like  字符串匹配 
In  一个字段的值是否在一个定义的值之中 
Exists  某个字段是否有值 
Is null  字段是否为 null 
Is not null  字段是否不为 null




(4)常见的where 查询实例


4.1  = (<>,!=)查询


Select * from employee where department='市场部' (字符型要用'引起来)
Select * from employee where id=10 (数值型)


4.2 in 查询(或not in)


Select * from employee where department in ('市场部','广告部') (字符型)
Select * from employee where Id in (2,4,6) (数值型)


4.3 between 值1 And 值2 (介于之间)查询


Select * from employee where birthday between '1983' and '1987' (日期、字符型加'') 


4.4 like (模式匹配)查询(%)/查询(_)


Select * from employee where name like '王%' (查询姓王的)
Select * from employee where name like '王_' (查询王某)


4.5 is null/is not noll
Select * from employee where department is null (查询department为null的记录)




(5) order by 排序查询的语法结构


Select <字段名列表>
From  数据表名
[where <条件表达式>]
[Order by {order_by_expression [ASC|DESC]}[,…]]


Order by 子句可以搭配where 子句,也可以单独和 select 、from 搭配使用,而不需要where子句。
order_by_expression : 指定要排序的列、列的别名、表达式,或者指定为代表选择列表内的名称、别名或表达式的位置的负整数。


ASC:升序
DESC:降序


例: Select * from employee order by id desc,name asc




(6)select 连接查询的语法结构
连接查询中用来连接两个表的条件称为连接条件或连接谓词.其形式为:


[<表1>].<列名1> <连接运算符> [<表2>].<列表2>


常见的连接运算符包括:


比较运算符: =、>、<、<= 、>= 、!=、 between 和 and
逻辑运算符:not、and、or
使用Between和And的连接查询形式为:


[<表1>].<列名1> <between> [<表2>].<列名2>  and [<表2>].<列名3>


连接查询的运算过程是:在表1中找到第一个记录,然后逐行扫描表2的所有记录,若有满足连接条件的就组合表1的字段和表2的字段为一个新的记录。依次类推,在表1中扫描完所有的记录后就组合成了连接查询的结果。
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值