SQL复习

SQL复习(1)

1、主键:表中每一行都应该有一列可以唯一标识自己。

第2课检索数据

2、检索单个列

select prode_name from	Products;

3、检索多个列

select prod_id,prod_name,prod_price	from Products;

4、检索所有列

select * from Products;

5、检索不同的值

select	vend_id	from Products;

6、限制结果

select  top	5 prod_name	from Products;//只检索前面5行数据

select prod_name from Products limit 5 offset 5//limit指定返回的行数,offset指定从哪儿开始

注意:第0行(第一个被检索的行是第0行,而不是第一行。)因此,limit 1 offset 1,会检索第2行,而不是第一行。

使用注释 --或者# 单行注释//–和#之后的文本就是注释

​ /* */ 多行注释

第3课排序检索数据

3.1排序数据

select prod_name from Products;
select prod_name from Products order  by prod_name;//order by子句应该保证它是select语句中最后一条子句

3.2按多个列排序

select	prod_id,prod_price,prod_name  
from Products order by prod_price,prod_name;

3.3按列位置排序

select prod_id,prod_price,prod_name
from Products order by 2,3;

order by 2表示按select清单中第二个列prod_price进行排序,order by 2,3表示先按prod_price,再按prod_name进行排序。

3.4指定排序方向

默认是升序排序,要进行降序排序需要使用desc关键字。

select prod_id,prod_price,prod_name
from Products order by prod_price desc;
select prod_id,prod_price,prod_name
from Products order by prod_price desc,prod_name;
//desc关键字只应用到直接位于其前面的列。在上例中只对prod_price列指定desc,对prod_name不指定。prod_name仍然是按标准的升序排序
//关键字asc是升序,但实际上是默认升序,asc没多大用处

第4课过滤数据

4.1使用where子句

select prod_name,prod_price
from Products where prod_price = 3,49;//只返回prod_price值为3.49的行

注意:where子句的位置,在同时使用order by和where子句时,应该让order by 位于where之后。

4.2where子句操作符

表4-1where子句操作符

操作符说明操作符说明
=等于>大于
<>不等于>=大于等于
!=不等于!>不大于
<小于between在指定的两个值之间
<=小于等于is null为NULL值
!<不小于
4.2.1检查单个值
select prod_name,prod_price
from Products where prod_price < 10;
4.2.2不匹配检查
select vend_id,prod_name
from Products where vend_id <>'DLL01';//单引号用来限定字符串
——————
select vend_id,prod_name
from Products where vend_id !='DLL01';//!=和<>通常可以互换,但并非所有的DBMS都支持这两种不等于操作符。
4.2.3范围值检查
select prod_name,prod_price
from Products where prod_price between 5 and 10;
4.2.4空值检查
select prod_name 
from Products where prod_price is null;
//这条语句返回所有没有价格的产品,不是价格为0的产品
select cust_name
from Customers where cust_email is null;

第5课高级数据过滤

5.1组合where子句

5.1.1and操作符和or操作符
select prod_id,prod_price,prod_name
from Products where vend_id = 'DLL01' and prod_price <= 4; 
select prod_name,prod_price
from Products where vend_id = 'DLL01' or vend_id = 'BRS01';
5.1.3求值顺序

and的优先级高于or

select prod_name,prod_price
from Products where vend_id = 'DLL01' or vend_id = 'BRS01' and prod_price >= 10;
//在处理or操作符之前,优先处理and操作符。
//输出供应商为BSR01制造价格为10美元以上的所有产品,以及DLL01制造的所有产品,而不管其价格如何。
select prod_name,prod_price
from Products where (vend_id = 'DDL01' or vend_id = 'BRS01') and prod_price >= 10;
//这时sql语句变成了选择供应商为DDL01或BRS01制造的且价格在10美元及以上的所有产品。

5.2 in操作符

select prod_name, prod_price
from Products where vend_id in ('DLL01', 'BRS01') order by prod_name;

5.3 not 操作符

select prod_name from Products where not vend_id = 'DDL01' order by prod_name;

第6课 用通配符进行过滤

通配符搜索只能用于文本字段,非文本数据类型字段不能使用通配符搜索。

6.1 like操作符

6.1.1 百分号(%)通配符
select prod_id, prod_name
from Products where prod_name like 'Fish%';
//将搜索任意以Fish起头的词。%告诉DBMS接受Fish之后的任意字符,不管它有多少字符。

说明区分大小写,根据DBMS的不同及其配置,搜索可以是区分大小写的。

select prod_id, prod_name
from Products where prod_name like '%bean bag%';
//表示匹配任何位置上包含bean bag的值,不论它之前或之后出现什么字符。
select prod_name
from Products where prod_name like 'F%y';
//以F起头,以y结尾的产品
6.1.2 下划线(_) 通配符

(_),下划线的用途与%一样,但它只匹配单个字符,而不是多个字符

select prod_id, prod_name
from Products where prod_name like '__ inch tedyy bear';
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

菜鸟玩家better

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值