这里给你们分享一个快速记忆SQL命令的一个诀窍:code
紧紧记住下面这几个特殊的语句,SQL命令将不是问题
在标准 SQL 中,字符串使用的是单引号。
若是字符串自己也包括单引号,则使用两个单引号(注意,不是双引号,字符串中的双引号不须要另外转义)索引
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。
问题: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
insert into user(name,age) values ('song',18)
update user set age=18 where id=3
delete from user where id=4
链接两张表,只返回知足条件的数据。string
user 表和 permission表: select user.name , permission.type from user join permission on permission.id = user.id
获取左表全部记录,即便右表没有对应匹配的记录,并将没有匹配的右表字段记为null。it
user 表和 permission表: select user.name , permission.type from user left join permission on permission.id = user.id
固然上面的仅仅能够知足平常开发需求,可是对于自己就不容易记的SQL语句,你是否是又学到了比较好的记忆方法呢?io
但愿本文对你有帮助。date