资讯专栏INFORMATION COLUMN

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

lewif / 3350人阅读

摘要:如果字符串本身也包括单引号,则使用两个单引号注意,不是双引号,字符串中的双引号不需要另外转义一语句记住或者根据倒序排列。如果没有表示正序排列设定返回的记录数设定查询时偏移个数,默认为。

这里给大家分享一个快速记忆SQL命令的一个诀窍:

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

在标准 SQL 中,字符串使用的是单引号。
如果字符串本身也包括单引号,则使用两个单引号(注意,不是双引号,字符串中的双引号不需要另外转义)

一、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. 难点

问题:

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
    insert into user(name,age) values ("song",18)
三、update
update user set age=18 where id=3
三、delete
delete from user where id=4
四、多表查询 1. join ... on ... (内连接,或等值连接)

连接两张表,只返回满足条件的数据。

user 表和 permission表:

select user.name , permission.type from user
join permission on permission.id = user.id
2. left join ... on ... (左连接)

获取左表所有记录,即使右表没有对应匹配的记录,并将没有匹配的右表字段记为null。

user 表和 permission表:

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

当然上面的仅仅可以满足日常开发需求,但是对于本身就不容易记的SQL语句,你是不是又学到了比较好的记忆方法呢?

希望本文对你有帮助。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/68175.html

相关文章

  • 几个数据持久化框架Hibernate、JPA、Mybatis、JOOQ和JDBC Template的

    摘要:不管是还是,表之间的连接查询,被映射为实体类之间的关联关系,这样,如果两个实体类之间没有实现关联关系,你就不能把两个实体或者表起来查询。 因为项目需要选择数据持久化框架,看了一下主要几个流行的和不流行的框架,对于复杂业务系统,最终的结论是,JOOQ是总体上最好的,可惜不是完全免费,最终选择JDBC Template。 Hibernate和Mybatis是使用最多的两个主流框架,而JOO...

    xietao3 评论0 收藏0
  • 开源|性能优化利器:数据库审核平台Themis的选型与实践

    摘要:正是存在问题,促使我们考虑引入数据库审核平台。的确,与很多互联网公司相比,数据库数十套的估摸并不是太大但与互联网类公司不同,类似宜信这类金融类公司对数据库的依赖性更大,大量的应用是重数据库类的,且其使用复杂程度也远比互联网类的复杂。 作者:韩锋 出处:DBAplus社群分享 Themis开源地址:https://github.com/CreditEaseDBA 拓展阅读:宜信开源|数...

    wenhai.he 评论0 收藏0

发表评论

0条评论

lewif

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<