设为首页 收藏本站
查看: 1052|回复: 0

[经验分享] SQL语法很难?其实只需要记住这部分行了

[复制链接]

尚未签到

发表于 2018-10-13 08:54:05 | 显示全部楼层 |阅读模式
  这里给大家分享一个快速记忆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>  

三、delete
  

delete from user where>  

四、多表查询

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语句,你是不是又学到了比较好的记忆方法呢?
  希望本文对你有帮助。



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-620960-1-1.html 上篇帖子: SQL Server 2008 权限管理 下篇帖子: SQL安装过程中“针对SQL Server 注册表的一致性验证“出错解决方式
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表