SQL语法很难?其实只须要记住这部分行了

这里给你们分享一个快速记忆SQL命令的一个诀窍:code

紧紧记住下面这几个特殊的语句,SQL命令将不是问题

字符串问题

在标准 SQL 中,字符串使用的是单引号。
若是字符串自己也包括单引号,则使用两个单引号(注意,不是双引号,字符串中的双引号不须要另外转义)索引

1、select

1.语句【记住】

select *
from user
where username='xiaomin'
order by user_id DESC 
limit 1 offset 2 或者 limit 2,1


'order by user_id DESC' :根据 user_id 倒序排列。若是没有 DESC 表示正序排列  
'limit' : 设定返回的记录数  
'offset' : 设定查询时偏移个数,默认为0。

2. 难点

问题:ip

LIMIT 2,1
LIMIT 1 OFFSET 2

这两个语句为何表达的意思是同样的呢?

解答:开发

记住三点:
1.在计算机中索引都是从0开始的。可是LIMIT、OFFSET后面的数字只表示个数,和索引没有关系。
2.通常涉及到偏移参数(偏移3行),这样的描述都不包含所描述的那个个数,即3行数据已经不在“视野”内,偏移到“视野外”了,看不见,天然就不包含了。
3.通常涉及到索引参数(截取索引3到索引5),这样的描述包含索引2,不包含索引5

LIMIT 2,1 : 表示偏移2行数据,获取1个数据。即获取的是第3行数据
LIMIT 1 OFFSET 2 : 表示获取1个数据,可是偏移2行数据,即获取的也是第3行数据

题外话:
Java和Javascript在字符串截取的时候都有一个方法:substring(),都是以索引的值做为参数的。根据上面的描述,下面的结果不可贵出来。字符串

//表示开始的索引值和结束的索引值

"0123456789".substring(3); //3456789
"0123456789".substring(3,5); //34

2、insert

insert into user(name,age) values ('song',18)

3、update

update user set age=18 where id=3

3、delete

delete from user where id=4

4、多表查询

1. join ... on ... (内链接,或等值链接)

链接两张表,只返回知足条件的数据。string

user 表和 permission表:

select user.name , permission.type from user
join permission on permission.id = user.id

2. left join ... on ... (左链接)

获取左表全部记录,即便右表没有对应匹配的记录,并将没有匹配的右表字段记为null。it

user 表和 permission表:

select user.name , permission.type from user
left join permission on permission.id = user.id

固然上面的仅仅能够知足平常开发需求,可是对于自己就不容易记的SQL语句,你是否是又学到了比较好的记忆方法呢?io

但愿本文对你有帮助。date

相关文章
相关标签/搜索