SQL 语句练习

TOP子句:

mysql:SELECT * FROM PERSONS LIMIT 5;

oracle:SELECT *FROM PERSONS WHERE ROWNUM <= 5;


LIKE 和 NOT LIKE

SELECT * FROM PERSONS WHERE NAME LIKE ‘L%’

SELECT * FROM PERSONS WHERE NAME NOT LIKE '%L%';


%是通配符, -仅代表一个字符, [CHARLIST]字符列中的任何单一字符, ^charlist]

或者

 

[!charlist],不在字符列中的任何单一字符。

ps: 通配符只有 配合like有用。


IN:

当我们要查询的内容,能确定只在这几个值里面时可以使用“in”子句

SELECT * FROM PERSONS WHERE NAME IN('JIM', 'LILY');



BETWEEN操作:

 

BETWEEN 操作符在 WHERE 子句中使用,作用是选取介于两个值之间的数据范围。

操作符 BETWEEN ... AND 会选取介于两个值之间的数据范围。这些值可以是数值、文本或者日期。

SELECT * FROM PERSONS WHERE NAME BETWEEN 'LILEI' AND 'LILY';


重要事项:不同的数据库对 BETWEEN...AND 操作符的处理方式是有差异的。某些数据库会列出介于 "Adams" 和 "Carter" 之间的人,但不包括 "Adams" 和 "Carter" ;某些数据库会列出介于 "Adams" 和 "Carter" 之间并包括 "Adams" 和 "Carter" 的人;而另一些数据库会列出介于 "Adams" 和 "Carter" 之间的人,包括 "Adams" ,但不包括 "Carter" 。

所以,请检查你的数据库是如何处理 BETWEEN....AND 操作符的!


BETWEEN 操作也可以结合NOT操作符来使用;


SELECT * FROM PERSOMS WHERE NAME NOT BETWEEN 'HEHE'AND 'HAHA';


 

Alias(别名):

通过使用 SQL,可以为列名称和表名称指定别名(Alias)。

为表使用别名:SELECT * FROM PERSONS AS P WHERE P.NAME='LILEI';

可简写:SELECT * FROM PERSONS P WHERE P.NAME='LILEI';


为列使用别名:SELECT NAME AS N FROM PERSONS;或 SELECT NAME N FROM PERSONS;

 

 

 

 

JOIN

SQL join 用于根据两个或多个表中的列之间的关系,从这些表中查询数据。

有时为了得到完整的结果,我们需要从两个或更多的表中获取结果。我们就需要执行 join。

数据库中的表可通过键将彼此联系起来。主键(Primary Key)是一个列,在这个列中的每一行的值都是唯一的。在表中,每个主键的值都是唯一的。这样做的目的是在不重复每个表中的所有数据的情况下,把表间的数据交叉捆绑在一起。

 

R表                S表
A  B  C                     D  B  E
1  a  3                      2  c  7
2  b  6                      3  d  5
3  c  7                      1  a  3       自然连接怎么连接?

一、自然连接是第一步R×S结果是:
A   B     C      D     B       E
1   a     3      2     c       7
1   a     3      3     d       5
1   a     3      1     a       3
2   b     6      2     c       7
2   b     6      3     d       5
2   b     6      1     a       3
3   c     7      2     c       7
3   c     7      3     d       5 
3   c     7      1     a       3
就是用R表中的每一项乘以S表中的每一项。
二、选择R.B=S.B的记录:

R.A    R.B     R.C       S.D     S.B    S.E
1       a       3         1       a       3 
3       c       7         2       c       7

 

三、然后去掉相同且值也相同的B属性,最后R∞S的值为:
   A     B      C      D       E
   1     a      3      1        3
   3     c      7      2        7
最后不知道那个自然连接的符号输的对不。。
 
内连接:
 


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值