精华内容
下载资源
问答
  • 很实用的下拉框带检索功能
  • 在分享之前,先说说初学者如何学习编程,这个话题想必非常的重要,要学好编程,给你一些学习网站也好、实用工具也好,但前提是你知道如何去学习它。 见过多初学者,以及小鹿我刚开始学习的时候,也是自己瞎摸索,...

    我应该学哪些方向?要学习哪些知识?怎么学习,看视频还是做项目?要学好编程,给你一些学习网站也好、实用工具也好,但前提是你知道如何去学习它。对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。


    注意:文中分享的资源小鹿全部给你整理好了,如果想去获取,直接获取即可,如果觉得文章不错,转发、点赞、评论,谢谢你,嘿嘿!

    一、视频学习网站

    1、哔哩哔哩

    这个网站如果让我评价,可谓是上边的视频都是非常高质量的,你可以去搜索看一下。

    在这里插入图片描述

    2、慕课网

    一开始刚入坑编程,每天在慕客网上逛,虽然有些视频时付费的,但是那些免费的入门足以,很多的课程视频都给分类。但是有些付费慕课网的视频都被流出了,相对于B站,还是差了点,毕竟B站都是用户自觉上传,很多视频都是某些机构付费的。
    在这里插入图片描述

    3、极客学院

    我对该网站的第一感觉就是无论是技术还是内容,从入门到实战,一步步将视频给你分好,最好的就是避免了初学者学习时的迷茫,一步步跟着它排列的顺序学习就好,但是里边有部分付费,但是个人觉得不影响大局。

    在这里插入图片描述

    2、收藏资料

    除了这几个网站,还有之前我学习时候收藏的学习视频和电子书,在这里毫无保留提供给大家使用,有 java、Python、Android、前端等方向,里边从基础到实战,非常的详细,获取方式在下方。还有之前收藏的一些电子书,收藏不易,都拿出来分享给你们!

    可以在我的公众号『小鹿动画学编程』,后台回复『资源』即可获取。

    在这里插入图片描述
    在这里插入图片描述

    PS: 这三个视频网站,已经够你学习的了,其他的网站推荐还有腾讯课堂、实验楼、果壳MOOC学院等。

    二、非视频学习网站

    1、菜鸟教程

    这个网站虽然不是视频网站,一听名字就知道适合菜鸟的,但是基础的知识写的非常详细,很清晰易懂,非常适合刚开始学习编程的小伙伴。

    在这里插入图片描述

    2、W3School

    之前刚开始学WEB开发时,经常在该网站,就是结合w3school学习前端,开发时,如果遇到记不清的标签,就去w3school搜索,平常有时间,就来慕课看前端视频。
    在这里插入图片描述


    三、实用工具

    利用网上的免费服务,如谷歌大学联盟或Mozilla开发者网站,来了解更多有关编程的知识。这些公司希望更多的开发者来帮助他们的平台蓬勃发展,所以这些资源可能是网络上最好的。

    1、吾爱破解网

    这里边有各种工具让你使用,没有搜不到,只有你想不到,很多破解的软件都可以在上边找到破解版,尤其是对于学习编程来说,可以说必上的一大网站,电子书、软件、视频等,很多用户都积极的网上传,从而进行得分下载。
    在这里插入图片描述

    2、冰点文库

    还害怕百度文库的文档下载不了吗?还愁着花钱买积分吗?这个工具可以让你省不少力气,只要将下载的文件网页链接放到工具中,就可以进行下载。

    四、刷题网站

    1、LeedCode

    LeedCode 是专门用来刷算法,面试、比赛,基本都是在这个网站进行大量刷题。而且每周都会有周赛,一旦你进入了名次,直接可以有进入大厂的资格,但是前提是,你要有一定的数据结构和算法基础。
    在这里插入图片描述

    2、牛客网

    牛客网”是一个专注于程序员的学习和成长的专业平台,集笔面试系统、课程教育、社群交流、招聘内推于一体。身边很多朋友大佬,都是通过牛客网内推进入阿里、腾讯、百度等大厂,上边聚集了每年大厂的算法题,而且增加了 AI 在线面试,可以去体验一下视频面试的感觉。
    在这里插入图片描述

    五、应聘网站

    1、拉勾网

    今年的暑假招聘就是在拉钩网上获得的 offer,如果你即将实现或者找工作,直接将写好的简历海投,还有几个招聘网站推荐给你们。
    在这里插入图片描述

    2、Boss 直聘

    该网站唯一的好处就是直接和老板谈,跳过了 HR 的层层筛选,有关工资、工作内容等,老板说了算,也是非常受大学生喜欢的一个招聘平台。
    在这里插入图片描述

    小结

    上边是我大学四年收藏的一些自学工具、资料和网站,都拿出来分享给了你们,收藏起来确实不容易,需要经过自己不断的筛选,把一些好的进行收藏,挑选出一些精华,后续还会有一些好的网站,筛选一下重点的,可以持续关注我哦。

    文章涉及到的工具,资料,电子书,我都进行整理打包成一个文件夹,在我的公众号『小鹿动画学编程』回复『资源』即可获取!

    ❤️ 不要忘记留下你学习的脚印 [点赞 + 收藏 + 评论]

    文章整理了好几个小时,不妨点赞支持一下。嘻嘻,你不点赞说明你很自私,你怕那么好的文章让别人也看到。开个小小玩笑。

    在这里插入图片描述

    作者Info:

    【作者】:小鹿

    【原创公众号】:小鹿动画学编程。

    【简介】:和小鹿同学一起用动画的方式从零基础学编程,将 Web前端领域、数据结构与算法、网络原理等通俗易懂的呈献给小伙伴。先定个小目标,原创 1000 篇的动画技术文章,和各位小伙伴共同努力一起学习!公众号回复 “资料” 送一从零自学资料大礼包!

    【转载说明】:转载请说明出处,谢谢合作!~

    展开全文
  • 休闲实用英语:别误会这些英文的意思 转自:腾讯网 教育频道 记得原来在考试的时候看到一个词组,叫confidence man,想都没想,就选择了自信的男人那个选项,下来后发现是错的,一查,是骗子的意思,百思不得其解...

    休闲实用英语:别误会这些英文的意思

    转自:腾讯网 教育频道

    记得原来在考试的时候看到一个词组,叫confidence man,想都没想,就选择了自信的男人那个选项,下来后发现是错的,一查,是骗子的意思,百思不得其解,这明明是自信的意思啊。也许,这就像中文里心宽体胖中的“胖”其实不读pang这个音,而是读“盘”,语言里有些词组是不按最简单的规则来进行的,今天列举几个常见的容易被误会的词组,希望能对喜爱英语的朋友有所帮助。

    1. Lover.

    老友记里有一集Phoebe去见Mike的父母,本意想当着母亲的面儿给足Mike面子,夸Mike两句,不成想把Mike说成了一个gentle lover,母亲顿时脸色就变了。第一次看的时候我还纳闷,Mike不就是Phoebe的lover吗,后来看的美剧多了,发现lover这个词往往不是爱人的意思,而是情人,而且有sexual的意思,所以在家长面前说lover其实是不大礼貌的。男女之间最好还是说boyfriend或girlfriend,男生间的好友用buddies,女生间的好友用besties。

    2. Dead president.

    没背过这个词组的朋友一般都会翻译成已经去世的总统,但实际的意思是美钞。在美国俚语里,美钞有很多说法,dollar,buck,green,都是指绿颜色的印有总统头像的钞票。

    3. Busboy and bellboy.

    第一个是公共汽车售票员?不是,是餐厅打杂的杂工。第二个是圣诞节要铃铛唱圣诞歌的男孩子?不是,是星级酒店里帮你把行李送进你房间等着你给小费的行李员。

    4. Busybody.

    小的时候看语文课本,总是说一些商人非常的繁忙,看到这个词,那日理万机的形象就油然而生了,可惜我又猜错了,这个词不是大忙人的意思,而是多管闲事的人,经典句型是you're such a busybody!

    5. Con man.

    如开头所说,骗子的意思。完整的拼法是confidence man。尼古拉斯凯奇的电影火柴人就是讲述的con man的故事,非常好看!


    2006年年初,在英国的电视荧屏上出现了一部叫做《Eleventh hour》的电视剧,中文翻译为第11小时,又名危机逼近,而这个剧名也是一个容易被误读的词组。

    6. Heart man.

    意为接受心脏移植手术的人,即换心人,但容易被误解为好心人。

    7. Dry goods.

    在美语里为纺织品的意思,在英国为谷物的意思,但无论在哪里,都不是干货的意思。

    8. Mad doctor.

    精神科医生的俗称,即专门诊断和治疗精神病人的医生,具有处方权,不是发疯的医生。

    9. Eleventh hour.

    最后时刻的意思,所以英剧《Eleventh hour》的翻译“危机逼近”更接近其原意,不是第11小时的意思。

    10. Blind date.

    很容易被翻译成瞎约会或者盲目的约会,在老友记里,有一集Phoebe给Rachel安排了一个男孩子和她约会,Rachel在此之前并没见过这个男孩子,所以blind date一般惯常的翻译是由第三方安排的男女初次见面。(黑猴:其实就是相亲)


    打开微博,铺天盖地的负面新闻,如果去看一些正处于舆论漩涡的名人微博,就会发现在他们的评论处会有很多匿名网友的语言攻击,称为verbal assault,而针对个人的语言攻击就是personal remark.

    11. personal remark.

    人身攻击。容易误解为个人评论,这个习语很唬人,以后看到名人微博下面那些痛骂的文字,记得那是personal remark.

    12. sporting house.

    妓院。不是运动室的意思。

    13. horse sense.

    常识。不是马的感觉。

    14. criminal lawyer.

    刑事律师。不是有罪的律师。

    15. service station.

    加油站。不是服务站。

    16. sweet water.

    淡水,不是甜水的意思。

    这些习语里,personal remark和sweet water确实很容易被误解,我问过身边五个同事,五个里有五个说的答案是个人评价和甜水。


    记得以前老师有教过white lie就是善意的谎言,somebody looks blue是看起来没精打采,这些和颜色相关的习语里有些确实还蛮容易让人误会的,今天来区分下列五个。

    17. Black tea.

    红茶。绿茶是green tea,但红茶却不是red tea。

    18. Black art.

    妖术。这个习语除了妖术外,还有两个意思,一种是用不大诚实但很聪明的方法达到目的的方式,另一种是黑人的艺术形式,但没有黑色艺术的意思。

    19. Black stranger.

    完全陌生的人。不是陌生的黑人,这个习语还蛮容易闹误会的,需谨慎使用。

    20. White coal.

    (作为动力来源的)水。我看一些地方也翻译成白煤,对应的英文翻译是

    flowing water considered as a source of hydroelectric power,可见还是作为动力的流动水是更接近的。

    21. White man.

    忠实可靠的,善良的人。不是白人的意思。关于在危难时刻挺身而出的人,我最先想到的就是老友记里的Joey,虽然花心,但是对朋友绝对两肋插刀,靠谱!

    上面五个里,我最后一个总是记不住,区别的方式是,一般提到白人,一般用的是复数,即white men,而且white man本身也不是非常常用,其实reliable完全可以代替忠实可靠这个修饰词。


    对于八零后,后街男孩是一代人的集体记忆,从96年开始就活跃在欧美流行乐坛,一般后街迷会说后街的前四张专辑更为经典和好听,第四张的名字是《black and blue》,对于我来说,真的是致青春的一张专辑,因为之后大学再听到的后街体验就不像从前了,祝福今年后街的专辑能更上一层楼,Backstreet Boys' back! 今天一起学习一下和颜色相关的习语。

    22. Yellow book

    黄皮书,不是黄色书籍。法国政府报告书,以黄纸封,故被成为黄皮书。

    23. Red tape

    官僚习气,或者繁文缛节,不是红色的带子。

    24. Green hand

    新手,不是绿色的手。在口语中类似rookie或者newbie的意思,新手。

    25. Blue stocking

    女学者,不是蓝色的长筒袜。

    26. Black and blue

    遍体鳞伤,尤指那种青一块紫一块的淤青,而不是那种出血的划伤。


    以前看中央台的国际新闻时,听到主持人讲China policy,以为是中国的政策,后来听到其他国家的领导人提到这个词,我还纳闷中国的政策为什么会从别国的总统口中说出来呢?后来查了辞典才知道这个习语的意思是对华政策,而非中华政策,今天和大家分享几个和国家相关的习语。

    27. Chinese dragon.

    麒麟。不是中国龙的意思。中国古代的神兽,雄为麒,雌为麟,明代郑和下西洋带来了长颈鹿后,又用来代指长颈鹿(在日本依然如此),常用来比喻杰出的人。

    28. American beauty.

    美国一种月月开花的红蔷薇。不是美国的美人。同名电影在奥斯卡奖颁奖礼上出尽风头,影片翻译到中文后变成了《美国丽人》,这个翻译并不是错,很可能有双关的意思。

    29. Indian summer.

    愉快宁静的晚年,不是印度的夏天。

    30. Greek gift.

    害人的礼物,不是希腊的礼物。电影《特洛伊》中的木马就是这样的一种礼物,表面是礼物,实际是另外的意思。

    31. Spanish athlete.

    吹牛的人,不是西班牙的运动员。

    32. French chalk.

    滑石粉,不是法国的粉笔。最近激战正酣的NBA总决赛主角之一,勒布朗詹姆斯在赛前有个习惯性的仪式,就是把滑石粉抛向天空。

    33. English disease.

    软骨病,不是英国病。

    这些和国家相关的习语中,有些容易记住,有些很容易忘记,但China policy如何也忘不掉了,毕竟只要你看国外的新闻就基本会听到播音员常常念叨,下周见!


    最近很红的美剧《生活大爆炸》中的男主角Sheldon在一集中这样讲,my socks are on, knock them off,在美语里knock someone's socks off的意思是让人大吃一惊,理解这个习语才能懂这句话的笑点,今天带来几个常见的容易被误解的习语句子。

    34. pull one's leg.

    类似kidding是开玩笑的意思,不是拉后腿的意思。还有一个常见的句子是break a leg,意思是祝你好运,不是断腿的意思。

    35. in one's birthday suit.

    类似naked是赤身裸体的意思,不是穿着生日礼服。

    36. eat one's word.

    这句话很容易被误解为食言的意思,实际为收回前言的意思,即take it back。

    37. an apple of love.

    Apple of my eye的意思是你是我的掌上明珠,apple of love有一个近似的意思是爱情信物,但还有一个令人意想不到的意思,即西红柿。

    38. handwriting on the wall.

    不是大字报的意思,而是不祥之兆。

    Sheldon在剧中有时会把习语按字面意思拆开来用,下次看的时候记得看双语字幕版,字幕组的翻译高手们经常会把文化的部分放在屏幕上方,把一语双关的地方解释得很清楚,按照情境学习美语的时候,美剧是很好的选择,下周见!


    美国饶舌歌手Eminem在他的半自传电影《8英里》里的最后部分将影片带入高潮,底特律黑人区的即兴饶舌大赛中,他扮演的Jimmy获得了冠军,当全场的饶舌歌迷随着音乐和Eminem一起上下挥舞手臂时,你可能会感到热血沸腾,许多众多的饶舌歌手就是看了这部分而坚定了自己做中文饶舌音乐的信念,而这种让全场high起来的英文却很容易被误解为别的意思。

    39. bring down the house.

    博得满堂喝彩,不是推倒房子。

    40. have a fit.

    发脾气,勃然大怒,不是试穿衣服的意思。

    41. make one's hair stand on end.

    令人毛骨悚然,不是令人发指。

    42. be taken in.

    受骗上当,不是被接纳。

    43. pull up one's socks.

    鼓起勇气,不是提上袜子。

    一转眼,2013年已经过半,你的梦想实现的怎么样了?鼓起勇气追求梦想可以不只是别人的事情,也可以是你的事情,也祝你pull up your socks and chase your dream,下周见!


    我在手机里常存的两部美剧,一部是《老友记》一部是《人人都爱雷蒙德》,我的朋友问我这两部是不是太老了,其实《生活大爆炸》和《破产姐妹》我也在追,学些最新的美语,不过这两部一个是强调年轻人的社会生活,一个是强调家庭生活,我发现里面的句子确实实用性超强,我看过18遍老友记,现在正在第19遍,仍然没有停下来的感觉,每一次都发现新的句子是我过去没懂的。今天介绍的几个句子也都曾在这两部美剧里出现过。

    44. Don't have the heart to do.

    不是没有心去做,而是不忍心做。女孩子常用这句话表明一些不好拒绝别人,不好伤害别人感情的事情上。有时也可以简单说为I didn't have the heart.

    45. What a shame.

    太可惜了的意思,不是多可耻的意思。经常用于表达一个人对另一个发出邀约但另一个人有事在身无法赴约的情景。

    46. You don't say.

    老友记里Joey说过的一句台词。表示“是吗”的意思,不是“你别说”的意思。经常发生的状况是一个人说了一句显而易见的话,或者有时干脆就是自吹自擂,你可以很nice的说一句you don't say,表示你同意。

    47. You can say that again.

    说得好的意思,不是你可以再说一遍。基本上就是同意的意思,我在现实中和美国同事聊天的时候他们有时也这么说,表示的是yes+you're right。

    48. I haven't slept better.

    我睡得很好,不是我从未睡好过。如果有人问你昨晚睡得怎么样,你还可以说I slept like a baby,或者I slept like a log。

    去年的7月12号我在ChinaDaily发了第一篇稿子,一晃眼一年已经过去,在这里谢谢所有分享过我的文章并和我一起进步的英文爱好者,谢谢你们的支持,下周见!


    49. You can't be too careful in your work.

    正确的意思是你工作越仔细越好,但很容易被翻译成你工作不能太仔细。

    50. It has been 4 years since I smoked.

    我已经戒烟四年,这句话很容易被误解为我已经抽了四年的烟了。如果你的男友对你说这句话,不要批评而是表扬他。

    51. All his friends did not turn up.

    他的朋友没全到,不是他所有的朋友都没到。这句话我到现在也不是很理解为什么不说成not all of his friends showed up.

    52. It can't be less interesting.

    太没劲了,不是它不可能没有兴趣。

    53. He was only too pleased to let him go.

    他很乐意让他们走,too…to的直接翻译就是太…以至于的意思。

    54. People will be long forgetting him.

    人们会在很长时间内记住他的,不是人们会永远忘记他。

    展开全文
  • MySQL中特别实用的几种SQL语句送给大家

    万次阅读 多人点赞 2020-06-11 17:23:49
    减少程序与数据库的交互次数,有利于数据库高可用性,同时也能显得你的SQL牛B,让同事们眼前一亮。 目录 实用的SQL 1.插入或替换 2.插入或更新 3.插入或忽略 4.SQL中的if-else判断语句 5.指定数据快照或...

    在写SQL时,经常灵活运用一些SQL语句编写的技巧,可以大大简化程序逻辑。减少程序与数据库的交互次数,有利于数据库高可用性,同时也能显得你的SQL很牛B,让同事们眼前一亮。

    小伙伴想精准查找自己想看的MySQL文章?喏 → MySQL专栏目录 | 点击这里

    目录

    实用的SQL

    1.插入或替换

    2.插入或更新

    3.插入或忽略

    4.SQL中的if-else判断语句

    5.指定数据快照或备份

    6.写入查询结果集

    7.强制使用指定索引

    心得体会:

    (续)评论区问题反馈

    @当年经理的SQL

    @修改后最终版SQL

    @最终版SQL原理


    高能预警,这是一篇干货满满的MySQL技术文章,总有一天,你必然会用到,记得收藏! -- 来自一位被技术经理毒打多年的程序员的忠告

    实用的SQL

    1.插入或替换

    如果我们想插入一条新记录(INSERT),但如果记录已经存在,就先删除原记录,再插入新记录。

    • 情景示例:这张表存的每个客户最近一次交易订单信息,要求保证单个用户数据不重复录入,且执行效率最高,与数据库交互最少,支撑数据库的高可用。

    此时,可以使用"REPLACE INTO"语句,这样就不必先查询,再决定是否先删除再插入。

    "REPLACE INTO"语句是基于唯一索引或主键来判断唯一(是否存在)的。
    "REPLACE INTO"语句是基于唯一索引或主键来判断唯一(是否存在)的。
    "REPLACE INTO"语句是基于唯一索引或主键来判断唯一(是否存在)的。

    注意事项:如下SQL所示,需要在username字段上建立唯一索引(Unique),transId设置自增即可。

    -- 20点充值
    REPLACE INTO last_transaction (transId,username,amount,trans_time,remark) 
       VALUES (null, 'chenhaha', 30, '2020-06-11 20:00:20', '会员充值');
    
    -- 21点买皮肤
    REPLACE INTO last_transaction (transId,username,amount,trans_time,remark) 
       VALUES (null, 'chenhaha', 100, '2020-06-11 21:00:00', '购买盲僧至高之拳皮肤');


    若username='chenhaha'的记录不存在,REPLACE语句将插入新记录(首次充值),否则,当前username='chenhaha'的记录将被删除,然后再插入新记录。

    id不要给具体值,不然会影响SQL执行,业务有特殊需求除外。

    2.插入或更新

    如果我们希望插入一条新记录(INSERT),但如果记录已经存在,就更新该记录,此时,可以使用"INSERT INTO ... ON DUPLICATE KEY UPDATE ..."语句:

    • 情景示例:这张表存了用户历史充值金额,如果第一次充值就新增一条数据,如果该用户充值过就累加历史充值金额,需要保证单个用户数据不重复录入。

    这时可以使用"INSERT INTO ... ON DUPLICATE KEY UPDATE ..."语句。

    注意事项:同上,"INSERT INTO ... ON DUPLICATE KEY UPDATE ..."语句是基于唯一索引或主键来判断唯一(是否存在)的。如下SQL所示,需要在username字段上建立唯一索引(Unique),transId设置自增即可。

    -- 用户陈哈哈充值了30元买会员
    INSERT INTO total_transaction (t_transId,username,total_amount,last_transTime,last_remark) 
       VALUES (null, 'chenhaha', 30, '2020-06-11 20:00:20', '充会员') 
       ON DUPLICATE KEY UPDATE  total_amount=total_amount + 30, last_transTime='2020-06-11 20:00:20', last_remark ='充会员';
    
    -- 用户陈哈哈充值了100元买瞎子至高之拳皮肤
    INSERT INTO total_transaction (t_transId,username,total_amount,last_transTime,last_remark) 
       VALUES (null, 'chenhaha', 100, '2020-06-11 20:00:20', '购买盲僧至高之拳皮肤') 
       ON DUPLICATE KEY UPDATE total_amount=total_amount + 100, last_transTime='2020-06-11 21:00:00', last_remark ='购买盲僧至高之拳皮肤';

    若username='chenhaha'的记录不存在,INSERT语句将插入新记录,否则,当前username='chenhaha'的记录将被更新,更新的字段由UPDATE指定。

    3.插入或忽略

    如果我们希望插入一条新记录(INSERT),但如果记录已经存在,就啥事也不干直接忽略,此时,可以使用INSERT IGNORE INTO ...语句:情景很多,不再举例赘述。

    注意事项:同上,"INSERT IGNORE INTO ..."语句是基于唯一索引或主键来判断唯一(是否存在)的,需要在username字段上建立唯一索引(Unique),transId设置自增即可。

    -- 用户首次添加
    INSERT IGNORE INTO users_info (id, username, sex, age ,balance, create_time) 
       VALUES (null, 'chenhaha', '男', 12, 0, '2020-06-11 20:00:20');
    
    -- 二次添加,直接忽略
    INSERT IGNORE INTO users_info (id, username, sex, age ,balance, create_time) 
       VALUES (null, 'chenhaha', '男', 12, 0, '2020-06-11 21:00:20');


    若username='chenhaha'的记录不存在,INSERT语句将插入新记录,否则,不执行任何操作。

    4.SQL中的if-else判断语句

    众所周知,if-else判断在任何地方都很有用,在SQL语句中,"CASE WHEN ... THEN ... ELSE ... END"语句可以用在增删改查各类语句中。

    • 给个情景:妇女节大回馈,2020年注册的新用户,所有成年女性账号送10元红包,其他用户送5元红包,自动充值。

    示例语句如下:

    -- 送红包语句
    UPDATE users_info u 
        SET u.balance = CASE WHEN u.sex ='女' and u.age > 18 THEN u.balance + 10 
                             ELSE u.balance + 5 end 
                             WHERE u.create_time >= '2020-01-01'
    • 情景2:有个学生高考分数表,需要将等级列出来,650分以上是重点大学,600-650是一本,500-600分是二本,400-500是三本,400以下大专;

    原测试数据如下:


    查询语句:

    SELECT *,case when total_score >= 650  THEN '重点大学' 
                  when total_score >= 600 and total_score <650 THEN '一本'
                  when total_score >= 500 and total_score <600 THEN '二本'
                  when total_score >= 400 and total_score <500 THEN '三本'        
                  else '大专' end as status_student 
                  from student_score;

    5.指定数据快照或备份

    如果想要对一个表进行快照,即复制一份当前表的数据到一个新表,可以结合CREATE TABLE和SELECT:

    -- 对class_id=1(一班)的记录进行快照,并存储为新表students_of_class1:
    CREATE TABLE students_of_class1 SELECT * FROM student WHERE class_id=1;

    新创建的表结构和SELECT使用的表结构完全一致。

    6.写入查询结果集

    如果查询结果集需要写入到表中,可以结合INSERT和SELECT,将SELECT语句的结果集直接插入到指定表中。

    例如,创建一个统计成绩的表statistics,记录各班的平均成绩:

    CREATE TABLE statistics (
        id BIGINT NOT NULL AUTO_INCREMENT,
        class_id BIGINT NOT NULL,
        average DOUBLE NOT NULL,
        PRIMARY KEY (id)
    );

    然后,我们就可以用一条语句写入各班的平均成绩:

    INSERT INTO statistics (class_id, average) SELECT class_id, AVG(score) FROM students GROUP BY class_id;


    确保INSERT语句的列和SELECT语句的列能一一对应,就可以在statistics表中直接保存查询的结果:

    SELECT * FROM statistics;
    +----+----------+--------------+
    | id | class_id | average      |
    +----+----------+--------------+
    |  1 |        1 |        475.5 |
    |  2 |        2 | 473.33333333 |
    |  3 |        3 | 488.66666666 |
    +----+----------+--------------+
    3 rows in set (0.00 sec)


    7.强制使用指定索引

    在查询的时候,数据库系统会自动分析查询语句,并选择一个最合适的索引。但是很多时候,数据库系统的查询优化器并不一定总是能使用最优索引。如果我们知道如何选择索引,可以使用FORCE INDEX强制查询使用指定的索引。例如:

    SELECT * FROM students FORCE INDEX (idx_class_id) WHERE class_id = 1 ORDER BY id DESC;

    指定索引的前提是索引idx_class_id必须存在。
     

    心得体会:

           记得那一年,我还是个孩子,记得第一个需求是做个统计接口,查询近两小时每隔5分钟为一时间段的网站访问量,JSONArray中一共返回24个值,当时菜啊,写了个接口循环二十四遍,发送24条SQL去查(捂脸),由于那个接口,被技术经理嘲讽~~表示他写的SQL比我吃的米都多。虽然我们山东人基本不吃米饭,但我还是羞愧不已。。

           然后经理通过调用一个dateTime函数分组查询处理一下,就ok了,效率是我的几十倍吧。从那时起,我就定下目标,深入MySQL学习,日后争取嘲讽回去~~~

           筒子们,MySQL路漫漫,其修远兮。永远不要眼高手低,一起加油,希望本文能对你有所帮助。

     

    ------------------------------------------------------------- 华丽的分割线 ---------------------------------------------------------

     

    (续)评论区问题反馈

            这一周有好几个朋友在评论区评论或私信我,问我当年那条SQL是咋写的,经理是咋写的。。看大家对知识的热情这么高,我必须得开源一下了,在这贴出来当时的SQL。有个点声明,项目数据库在内网不好测试,我就模拟了一张表来给大家统计一下吧。

            需求回顾:时间就'2020-01-14 00:00:00' - '2020-01-15 00:00:00' 为准,统计当天以每10分钟为间隔的分组数据。

    @当年经理的SQL

    其中时间根据需求自行修改,由于我只生成了一天的测试数据,我就以此为例。

    SELECT DATE_FORMAT(p.createTime, '%H') as date_str,count(*) as count 
        from data_timing p
    	where DATE_FORMAT(p.createTime, '%Y-%m-%d %H:%i:%S') >= DATE_FORMAT('2020-01-14 00:00:00', '%Y-%m-%d %H:%i:%S')
    	    AND DATE_FORMAT(p.createTime, '%Y-%m-%d %H:%i:%S') < DATE_FORMAT('2020-01-15 00:00:00', '%Y-%m-%d %H:%i:%S')
    		GROUP BY HOUR(p.createTime)

    经理这条SQL查询的结果如下,基本保留了当年原版~~这条的意思是取“2020-01-14”这天24小时每小时的count。当时我很有启发,也很有感觉,发现SQL还能这么玩儿。完事儿写完他说就要撤了,说要去接孩子。我说:“大佬,咱别吃饭吃一半儿啊,再给我来一下子呗”。

    @修改后最终版SQL

    然后经过我后续修改SQL如下:

    SELECT concat( date_format( p.createTime, '%Y-%m-%d %H:' ) , floor( date_format( p.createTime, '%i' ) /10 )*10 ) as date_str
    , count(*) as count from data_timing p
        where DATE_FORMAT(p.createTime, '%Y-%m-%d %H:%i:%S') < DATE_FORMAT('2020-01-15 00:00:00', '%Y-%m-%d %H:%i:%S')
            AND DATE_FORMAT(p.createTime, '%Y-%m-%d %H:%i:%S') >= DATE_FORMAT('2020-01-14 00:00:00', '%Y-%m-%d %H:%i:%S')
            GROUP BY  concat( date_format( p.createTime, '%Y-%m-%d %H:' ) , floor( date_format( p.createTime, '%i' ) /10 ))
    

    乍一看是不是还挺复杂,并不是多复杂,只是其中几个函数内容比较多。。比如concat()里的那一堆,以及date_format那些。先看结果吧。后面跟各位说一下查询原理:

    @最终版SQL原理

    如上所述,是每隔10分钟为一个时间段,当时只能想到了以每分钟为时间段分组的SQL,如下。

    SELECT concat( date_format( p.createTime, '%Y-%m-%d %H:' ) , floor( date_format( p.createTime, '%i' ) )) as date_str
    , count(*) as count from data_timing p
    		where DATE_FORMAT(p.createTime, '%Y-%m-%d %H:%i:%S') < DATE_FORMAT('2020-01-15 00:00:00', '%Y-%m-%d %H:%i:%S')
    		AND DATE_FORMAT(p.createTime, '%Y-%m-%d %H:%i:%S') >= DATE_FORMAT('2020-01-14 00:00:00', '%Y-%m-%d %H:%i:%S')
    		GROUP BY MINUTE(p.createTime)

    查询结果:

    那我怎么以10分钟为单位呢??网上各种查,网上虚的太多。也没有找到真正有用的写法,这不是坑爹吗,后来我想了想。想到了个好主意,每10分钟的特征在于“yyyy-MM-dd HH:m”这里,如果我将“10分钟”级为单位的字符串切分出来,不管“1分钟”级的。不就能分组匹配了么,哎呀我tm真是有点佩服我自己。

    因此,按每分钟分组的SQL和上面按10分钟分组的SQL不同之处就在这里:

    group by concat( date_format( p.createTime, '%Y-%m-%d %H:' ) , floor( date_format( p.createTime, '%i' ) /10 ) )

    我将分钟'%i'除以10然后向下取整,再进行group by 分组,最后展示的时候我可以在处理一下加“ *10 ”用于展示,当然,也可以不用“*10 ”,结果如下,有点畸形,看着难受,但不妨碍使用。

     

    好了,答应各位的已经搞定啦。有细心的小伙伴会发现,咦,你这数据中,如果没查到为0的怎么不显示呢?比如凌晨1点多的,都没有显示。这样岂不是还得后台处理补全?这个问题留给大家,如果有好的方法可以在评论区留言,我会随时关注老铁们的动态的~~

     

    展开全文
  • 鼠标获取窗口信息 MouseHook鼠标钩子很实用看就懂了
  • 2018高考语文大一轮复习现代文阅读实用类文本阅读考点精练一筛选整合信息概括中心意思
  • 接下来,我们写个很实用的脚本吧,假设你现在在机房,你想要看看机房哪些ip在开着,方便咱。。。,是吧。 我们可以 通过ping命令测试192.168.0.151到192.168.0.254之间的所有主机是否在线 #!/bin/bash for i in `...

    大家好!我是handsomecui,下面我为大家讲解一下shell脚本的写法,讲的不好的地方,欢迎大家留言拍砖。希望同仁们,支持下鄙人的小窝 http://www.aikannet.com

    1.在linux下会写shell脚本是非常重要的,下面我参照例子给大家展示几个脚本,顺带这学习shell 的语法:

    什么时候helloworld是必不可少的,第一个脚本肯定与helloworld是离不开的:

    #!/bin/sh
    a="hello world!"
    num=2
    echo "a is : $a num is : ${num}nd"
    运行结果: a is : hello world! num is : 2nd

    shell脚本简单易懂,只要有一点点c语言的基础,这些都是小case;

    2.下面带着大家学学if语句:

    先抛出一个问题:写一个脚本,判断当前所用的shell

     

    #!/bin/sh
    #注意if的空格以及[]里面的空格这里错了半天啊
    if [ "$SHELL" = "/bin/bash" ];then
    echo "your login shell is the bash \n"
    echo "SHELL is : $SHELL"
    else 
    echo "your login shell is not bash but $SHELL"
    fi
    #[ -f "somefile" ] : 判断是否是一个文件
    #[ -x "/bin/ls" ] : 判断/bin/ls是否存在并有可执行权限
    #{ -n "$var" } : 判断$var变量是否有值
    #[ "&a" = "$b" ] : 判断$a和$b是否相等
    [ -f "/etc/shadow" ] && echo "This computer uses shadow passwords"
    if [ -f "/etc/shadow" ];then
    echo "电脑密码使用隐藏字符"
    else
    echo "并没有"
    fi

     

    #是注释的意思,相关部分已经在里面详细给大家注释解释了,注意if语句的格式

    if[];then

    elif[];then

    else

    fi

    另外注意if语句还可以简单的用&&与||或语句来代替;另外如果想要深入了解if可以找男人test(在linux遇到问题要学会找男人解决,man)

    3.为了让大家更加熟练的运用shell,那么练习下吧,问题:写一个脚本使其从一个文件里面读入有echo的语句,并把其写在本文件末尾;

     

    #!/bin/sh
    #-r代表此文件是否可读,具体见man test
    mailfolder=/home/handsome/work/linux_learn/shell_learn/readme.txt
    #[ -r "$mailfolder" ] || { echo "Can not read $mailfolder" ; exit 1;}
    #echo "$mailfolder has mail from : "
    #grep "^echo " $mailfolder
    
    if [ -r "$mailfolder" ];then
        echo "$mailfolder has massage from : "
        echo | grep '^echo ' $mailfolder >> readme2.txt
        chmod +r readme2.txt
        cat readme2.txt >> $mailfolder
        rm -f readme2.txt
    else
        echo "Can not read $mailfolder"
        touch $mailfolder
        chmod +rw $mailfolder
        echo "echo 人生自古谁无死,六区蛋清找旱情! " >> $mailfolder
    fi

     

    这里由于重定向不能本文见输出到本文件输出,于是我就想了个办法,新建个文件,再重定向到这个文件,大神有别的简单方法可以下面留言拍砖;

    4.接下来,我们练习下while的用法,老规矩具体问题来分析;

    问题:写一个脚本(不建议使用for变量--for是根据空格取值)

    1.设定变量FILE的值为/etc/passwd

    2.依次向/etc/passwd中的每个用户问好,并且说出对方的ID什么(Hello,root,your UID is0.)

    3.统计一个有多少个用户

     

     

    #!/bin/bash
    fl=/etc/passwd
    count=`cat $fl | wc -l`
    #下面是一个管道,下面循环读文件中的每一行
    cat $fl |
    while read line
    do
        user=`echo $line|awk -F ':' '{print $1}'`
        #代表以 :分段$1就是取第1段
        uid=`echo $line|awk -F ':' '{print $3}'`
        echo "hello, $user Your UID is $uid"
    done
    echo "====User_count:$count===="
    #前面求得的用户数

     

     

    这里要注意到awk的用法,可以找linux的男人解决;

    5.练习一下for语句吧

    问题:写个脚本;

    1.切换工作目录至/tmp

     

     

    2.依次向/tmp目录中的每个文件或子目录问好(Hello,log)

     

     

    3.统计/tmp目录下共有多个文件,并显示出来

     

    1

    2

    3

    4

    5

    6

    7

    8

    #!/bin/bash

    cd /tmp

    for in /tmp/*

    do

        echo "Hello , $i"

    done

    count=`ls -l|grep '^-'|wc -l`

    echo "====file_count:$count===="

     

     这个问题就相对简单了些,一个for语句就可以搞定,当然可以while搞搞

    6.那么问题来了:

    question:

    传递两个整数给脚本,让脚本分别计算并显示这两个整数的和,差,积,商

     

     

    #!/bin/bash
    a=$1
    b=$2
    [ -z $a ] && echo "please \$1 number1" && exit 1
    [ -z $b ] && echo "please \$2 number2" && exit 2
    [ ! $# -eq 2 ] && echo "--please num1 num2" && exit 3
    # $#传递到脚本的参数个数
    # -eq相当于=, -ne相当于不等于, -ge >= , -gt >, -le <=, -lt <
    echo "$a + $b = $(($a+$b))"
    echo "$a - $b = $(($a - $b))"
    echo "$a * $b = $(($a*$b))"
    echo "$a / $b = $(($a/$b))"

     

     

    这里要注意的是,需要传入两个参数;

    具体用到的一些知识请看下面:

    读到这里大家对上面的小脚本是不是感觉特别easy了,哈哈;

    7.写一个脚本;求1到100的和?

     

    #!/bin/bash
    sum=0
    i=1
    while [ $i -le 100 ]
    do
        sum=$(($sum + $i))
        i=$(($i+1))
    done
    echo "$sum"

     

    这个脚本就so easy了;

    8.接下来,我们写个很实用的脚本吧,假设你现在在机房,你想要看看机房哪些ip在开着,方便咱。。。,是吧。

    我们可以 通过ping命令测试192.168.0.151到192.168.0.254之间的所有主机是否在线

     

     

    #!/bin/bash
    for i in `seq 2 254`
    do
        ping -c1 -w1 192.168.51.$i > /dev/null 2>&1
        #-c可以指定ping的次数,-w测试的时间 -w 1就是1秒中无论成功失败都结束
        #-c -w后面都要输入参数所以都要带上l
        #$?代表最后命令退出状态,0代表没错,其他代表有错
        [ $? -eq 0 ] && echo "192.168.51.$i IP is UP!" || echo "192.168.51.$i IP is down!"
    done

     

     

    在这里2>&1代表不显示错误信息,其实就是把错误重定向到标准输出,然后重定向到/dev/null,/dev/null就是个黑洞,写入的任何东西都会丢失,其实简要说就是把正确或错误的输出扔到垃圾桶。

    写到这里大家是不是感觉耳目一新呐,哈哈!

    随笔练习:还有点bug

     

    #/bin/bash
    i=1
    sum=0
    #while
    while [ $i -le 100 ]
    do
            ((sum=sum+i))
            ((i=i+1))
    done
    echo $sum
    #for
    sum=0
    for ((j=1;j<=100;j++))
    do
            ((sum=sum+j))
    done
    echo $sum
    
    #select
    select flag in $@
    do
            case $flag in
                    $1)echo $1;;
                    $2)echo $2;;
                    $3)echo $3;;
                    $4)echo $4;;
                    *)echo "input error"
                    break ;;
            esac
    done
    #shift
    echo -e "the all arg is\n"
    while [ $1 ]
    do
            echo $1
            shift
    done
    #if
    num=`ls | wc -l`
    [ num == 0 ] && echo -e "have no file\n" || echo -e "there are $num files\n"
    for file in `ls`
    do
            echo "this file $file is "
            [ -f $file ] && echo -e "ordinary file"
            if [ -d $file ];then
                    echo -e "dictionary file";
                fi
    done
    
    #function
    filename=""
    rename(){
            filename=echo `date` | awk -F ' ' '{print $1 $2 $3}'
    }
    rename
    echo -e "filename is $filename"
    [ $? == 0 ] && mkdir $filename || echo -e "have error\n"

     

    展开全文
  • foxmail设置,服务器备份(很实用

    万次阅读 2015-04-27 09:23:57
    由于公司邮箱一般比较小,所以就需要foxmail这种本地的接收工具,但是如果不清楚服务器的邮件话,服务器空间早晚会满,所以foxmail的服务器备份就用上了。。 一开始设置邮件类型为:IMAP,只有本地备份,并不符合...
  • tcpdump -w dataAll.pcap -i bond0 -s0 host ip and port port 注意这里的-s0参数重要,因为当你不适用该参数选项的时候,你抓的网络数据通过wireshark来分析的时候,会出现“packet size limited during capture...
  • Vue中你不知道但却很实用的黑科技

    万次阅读 2016-12-06 10:27:21
    作者:Aresn ... 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 ...iView 的开源工作中,完成了大大小小 30...其中也有多带有技巧性和黑科技的组件,这些特性有的是 Vue 文档中提到
  • 但是微信并不仅仅像看上去那么简单,今天小魔来聊聊在微信里面找到一些实用的隐藏功能No.1 多页签有时候我会遇到一种情况:我们在某个公众号上阅读一篇好文章时,突然一个好友发来了紧急消息(或者另一半来查岗?...
  • IDEA实用快捷键

    千次阅读 2019-06-19 12:11:24
    IDEA实用快捷键 一、运行类快捷键 1、选择某个类文件的代码运行:Alt+shift+F10 2、运行当前类代码:shift+F10 3、断点调试:shift+F9 二、代码注释快捷键 1、单行注释:Ctrl+/ 取消注释:再次按Ctrl+/ 2...
  • 30 个 Python 编程实用技巧

    万次阅读 多人点赞 2021-10-03 22:13:12
    下面的语句与它的意思相同,即“如果 y 为 9,则将 10 分配给 x,否则将 20 分配给 x ”。如果需要,我们可以扩展运算符的链接。 x = 10 if (y == 9) else 20 同样,我们可以对类对象做同样的事情。 x = (classA if...
  • 很多人一定会在这个界面卡顿久,其实这是as在检测更新。所以我们在点开as之前先修改它的配置文件,让它不再更新。 找到你安装as的目录,进入bin文件夹找到idea.properties文件,如图: 右键编辑,在最后...
  • 实用Android 屏幕适配方案分享

    千次阅读 2015-05-11 16:35:49
    实用Android 屏幕适配方案分享 真正可用,并且简单易行,可以在多个屏幕大小和屏幕密度上有良好表现的Android 屏幕适配方案,已用在一款成熟互联网应用中,效果还不错。 说起android开发,UI界面的多机型适配,...
  • 非常实用的课件,eclipse实用学习,功能讲解。非常难得的资料。
  • 实用】如何在windows下快速截图?

    千次阅读 2017-09-22 15:59:10
    我们都知道键盘上有一个“prt sc”也是截图的意思,但这个功能默认不开启(不爽),在其他系统比如unix和mac下都是自由实用的,然而windows下默认不成立。废话不多,这里以win7为例。 1、打开开始按钮,找到所有...
  • 电子类缩略语词汇---方便实用 包括简写,全称,中文意思
  • VSCode超实用插件

    千次阅读 多人点赞 2021-02-22 14:11:52
    内含语法高亮,智能提示,emmet,错误提示,格式化,自动补全,debugger等实用功能 代码风格规范类插件 ESlint 规范 js 代码书写规则,如果觉得太过严谨,可自定义规则 TSLint ts 的书写规范,这个插件是一个系列,...
  • 微信小程序实用代码段(持续更新中)

    万次阅读 多人点赞 2019-10-30 13:32:18
    前言 排名不分先后,按自己的习惯来的。 一、tab切换
  • lsof 02实用命令

    万次阅读 2017-08-02 11:14:16
    实用命令 lsof `which httpd` //那个进程在使用apache的可执行文件 lsof /etc/passwd //那个进程在占用/etc/passwd lsof /dev/sda1 //那个进程在占用hda6 lsof /dev/cdrom //那个进程在占用光驱 lsof -c sendmail //...
  • Linux Systemtap和gdb工具实用技巧两则

    千次阅读 2019-10-31 19:14:35
    月末最后一晚,总结简单实用的Linux调试工具使用技巧两则。 systemtap脚本简化内核模块编程 为了测试或者修改Linux内核的一个特性,我们通常会写一个模块,比如打印一些内核的信息,比如修改一个物理页面之类。 以...
  • 实用的J2EE开发文档(中文版),便于新手理解名称的意思及用法。
  • Android5.0之Palette简单实用

    千次阅读 2014-12-21 20:54:50
    在介绍代码之前,首先说一下Palette这个类,看一下文档,这个类并没有提供可用的构造方法,而且提供了一系列的静态generate和generateAsync方法,好理解,就是生成的意思,来说说generate和generateAsync的区别,...
  • 三元运算符要点及实用案例

    千次阅读 2020-01-29 18:45:01
    这条语句的意思是,如果A>B的话,就将100赋给C,否则就将200赋给C。 2: int a = 10; int b = 20; a==b?10:20; 结果为20 在JDK1.5以前的版本中,表达式1和表达式2都要求是相同的类型,比如都是String或者char之...
  • jQuery Datatable 实用简单实例

    万次阅读 2016-08-29 23:59:13
    目标: ...构造数据列表,并且增加...表格建立简单,只需用将表格定义好 id ,以及表头定义好。 2.  我们可以到 jQuery Datatable 官网上去下载一份 jQuery 和 jQuery Datatable 的 js 库。 ...
  • 超级实用sap table

    万次阅读 2017-09-25 11:37:32
    (虽然SAP是允许同一采购订单行项目是允许多个交货计划(EKET),但我们实际上业务中只允许一个交货计划,多开发和考核都是基于此) RBKP,凭证表头:发票收据 RSEG,凭证项目:收款发票 通过发票凭证...
  •  需要谨记的是这个异常的一个副作用是NoClassDefFoundError,而Java程序抛出这个异常的位置可能会离java.lang.ExceptionInInitializerError远,这取决于你的客户端代码何时引用到这个类。因此,在查看类路径解决...
  • source insight实用配置

    千次阅读 2016-05-07 00:30:30
    1.设置字体大小options-document options ,...2.往里添加中文注释时,字间距大。解决方法如下:  1、Options->Style Properties  2、左边Style Name下找到Comment Multi Line、Comment、Comment Right、Comm
  • Rational Rose简明实用教程

    万次阅读 多人点赞 2015-11-04 18:41:25
    它的意思和面向对象程序设计中的继承的概念是类似的。 不同的是继承使用在实施阶段,泛化使用在分析、设计阶段。在泛化关系中子用例继承了父用例的行为和含义,子用例也可以增加新的行为和含义或者覆盖父用例中的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 110,239
精华内容 44,095
关键字:

很实用的意思