生活工程体验信仰哲学精神
投稿投诉
精神世界
探索历史
哲学文学
艺术价值
信仰创造
境界审美
体验技术
技能工具
工程信息
医学生产
生活运用
操作能力

吊打阿里面试官的几个SQL问题和答案

5月5日 皇极城投稿
  1。编写查询,查找表中的行总数。
  答:selectcount()
  2。编写查询,消除表结果中的重复记录。
  答:SelectdistinctfromtblS
  3。编写查询,获取temployee表中designation字段前3个字符。
  答:Selectsubstr(designation,1,3)
  4。查询temployee表,合并输出Designation和Department两个字段的内容。
  答:SelectDesignation‘‘D
  5。如果使用union和unionall合并4条SQL子查询,union会有多少次被用来去除重复行?
  答:1次。
  6。IN和BETWEEN之间的区别是什么,在WHERE子句中如何使用?
  答:BETWEEN子句是用来获取一个范围值,而IN子句是从指定值列表中获取对应数据。
  7。解释LIKE关键字在WHERE子句中如何使用?SQL有哪些通配符?
  答:LIKE是用于部分字符串的匹配。SQL有两个通配符,(匹配字符串的任何字符)和(匹配任意单个字符)。
  8。怎样使用LIKE语句?
  答:在局部搜索中使用。例如,你需要找到lastname包含gat字母的所有员工,那么你可以使用下面的查询、匹配搜索条件:Selectempid,firstname,lastnamefromtemployeewherelastnamelike‘gat’;这可能会搜索到lastname包含字符gat的所有雇员,像Gates、Gatsby、Gatsburg、Sogatsky。。。用于表示名称中剩余的所有字符。这个查询获取在字符串中包含gat的所有记录。
  9。解释GROUPBY和HAVING子句的用法。
  答:利用groupby子句分组数据,当select语句中使用到组函数和字段一起连用时会用到groupby,否则会出现错误。Groupby把select查询的结果集分成几个小组,这个groupby子句可以跟在where后面且在having前面。Groupby子句也会触发排序操作,会按分组字段排序。b
  10。在temployee表中,department字段可为空。编写查询,获取尚未分配部门的员工。
  答:Selectempid,firstname,
  获取更详细的私信博主(学习)一、SQL分类:
  DDL数据定义语言(CREATE,ALTER,DROP,DECLARE)
  DML数据操纵语言(SELECT,DELETE,UPDATE,INSERT)
  DCL数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK)二、基本语法
  1、创建数据库
  createdatabasedatabasename
  2、删除数据库
  dropdatabasedbname
  3、创建新表
  createtabletabname(col1type1〔notnull〕〔primarykey〕,col2type2〔notnull〕,。。)
  根据已有的表创建新表:
  A:createtabletabnewliketabold(使用旧表创建新表)(在orcale中不能用)
  B:createtabletabnewasselectcol1,col2fromtabolddefinitiononly
  4、删除新表
  droptabletabname
  5、增加一个列
  Altertabletabnameaddcolumncoltype
  注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。
  6、添加主键
  Altertabletabnameaddprimarykey(col)
  7、创建索引
  create〔unique〕indexidxnameontabname(col。)
  删除索引
  dropindexidxname
  注:索引是不可更改的,想更改必须删除重新建。
  8、创建视图
  createviewviewnameasselectstatement
  删除视图:
  dropviewviewname
  9、几个简单的基本的sql语句
  选择:selectfromtable1where范围
  插入:insertintotable1(field1,field2)values(value1,value2)
  Insertintotable1values(‘001’,’sll’)
  删除:deletefromtable1where范围
  更新:updatetable1setfield1value1where范围
  查找:selectfromtable1wherefield1like’value1’
  表示模糊查询(匹配字符串)
  排序:selectfromtable1orderbyfield1,field2〔desc〕
  总数:selectcount()astotalcountfromtable1
  求和:selectsum(field1)assumvaluefromtable1
  平均:selectavg(field1)asavgvaluefromtable1
  最大:selectmax(field1)asmaxvaluefromtable1
  最小:selectmin(field1)asminvaluefromtable1
  10、使用外连接
  A、leftouterjoin:
  左外连接(左连接):结果集几包括连接表的匹配行,也包括左连接表的所有行。
  sql:selecta。a,a。b,a。c,b。c,b。d,b。ffromaLEFTOUTJOINbONa。ab。c
  B:rightouterjoin:右外连接(右连接):结果集既包括连接表的匹配连接行,也包括右连接表的所有行。
  C:fullouterjoin:全外连接:不仅包括符号连接表的匹配行,还包括两个连接表中的所有记录。
  D:等值连接无条件连接,取两个表的笛卡尔积
  11、in的使用方法
  selectfromtable1wherea〔not〕in(‘值1’,’值2’,’值4’,’值6’)
  13、两张关联表,删除主表中已经在副表中没有的信息
  deletefromtable1wherenotexists(selectfromtable2wheretable1。field1table2。field1)三。MySQL索引技巧
  举例,业务场景,用户表,表结构为:
  tuser(
  uidprimarykey,
  loginnameunique,
  passwd,
  logintime,
  age,
  );
  聚集索引(clusteredindex):聚集索引决定数据在磁盘上的物理排序,一个表只能有一个聚集索引,一般用primarykey来约束。
  举例:tuser场景中,uid上的索引。
  非聚集索引(nonclusteredindex):它并不决定数据在磁盘上的物理排序,索引上只包含被建立索引的数据,以及一个行定位符rowlocator,这个行定位符,可以理解为一个聚集索引物理排序的指针,通过这个指针,可以找到行数据。
  举例,查找年轻MM的业务需求:
  selectuidfromtuserwhereage18andage26;
  age上建立的索引,就是非聚集索引。
  联合索引:多个字段上建立的索引,能够加速复核查询条件的检索
  举例,登录业务需求:
  selectuid,logintimefromtuserwhere
  loginname?andpasswd?
  可以建立(loginname,passwd)的联合索引。
  联合索引能够满足最左侧查询需求,例如(a,b,c)三列的联合索引,能够加速a(a,b)(a,b,c)三组查询需求。
  这也就是为何不建立(passwd,loginname)这样联合索引的原因,业务上几乎没有passwd的单条件查询需求,而有很多loginname的单条件查询需求。
  提问:
  selectuid,logintimefromtuserwhere
  passwd?andloginname?
  能否命中(loginname,passwd)这个联合索引?
  回答:可以,最左侧查询需求,并不是指SQL语句的写法必须满足索引的顺序(这是很多朋友的误解)
  索引覆盖:被查询的列,数据能从索引中取得,而不用通过行定位符rowlocator再到row上获取,即被查询列要被所建的索引覆盖,这能够加速查询速度。
  举例,登录业务需求:
  selectuid,logintimefromtuserwhere
  loginname?andpasswd?
  可以建立(loginname,passwd,logintime)的联合索引,由于logintime已经建立在索引中了,被查询的uid和logintime就不用去row上获取数据了,从而加速查询。
  末了多说一句,登录这个业务场景,loginname具备唯一性,建这个单列索引就好。
  四。MySQL的orinunion与索引优化
  假设订单业务表结构为:
  order(oid,date,uid,status,money,time,)
  其中:
  oid,订单ID,主键
  date,下单日期,有普通索引,管理后台经常按照date查询
  uid,用户ID,有普通索引,用户查询自己订单
  status,订单状态,有普通索引,管理后台经常按照status查询
  moneytime,订单金额时间,被查询字段,无索引
  假设订单有三种状态:0已下单,1已支付,2已完成
  业务需求,查询未完成的订单,哪个SQL更快呢?
  selectfromorderwherestatus!2
  selectfromorderwherestatus0orstatus1
  selectfromorderwherestatusIN(0,1)
  selectfromorderwherestatus0
  unionall
  selectfromorderwherestatus1
  结论:方案1最慢,方案2,3,4都能命中索引
  但是。。。
  一:unionall肯定是能够命中索引的
  selectfromorderwherestatus0
  unionall
  selectfromorderwherestatus1
  说明:
  直接告诉MySQL怎么做,MySQL耗费的CPU最少
  程序员并不经常这么写SQL(unionall)
  二:简单的in能够命中索引
  selectfromorderwherestatusin(0,1)
  说明:
  让MySQL思考,查询优化耗费的cpu比unionall多,但可以忽略不计
  程序员最常这么写SQL(in),这个例子,最建议这么写
  三:对于or,新版的MySQL能够命中索引
  selectfromorderwherestatus0orstatus1
  说明:
  让MySQL思考,查询优化耗费的cpu比in多,别把负担交给MySQL
  不建议程序员频繁用or,不是所有的or都命中索引
  对于老版本的MySQL,建议查询分析下
  四、对于!,负向查询肯定不能命中索引
  selectfromorderwherestatus!2
  说明:
  全表扫描,效率最低,所有方案中最慢
  禁止使用负向查询
  五、其他方案
  selectfromorderwherestatus2
  这个具体的例子中,确实快,但是:
  这个例子只举了3个状态,实际业务不止这3个状态,并且状态的值正好满足偏序关系,万一是查其他状态呢,SQL不宜依赖于枚举的值,方案不通用
  这个SQL可读性差,可理解性差,可维护性差,强烈不推荐
  说明:本文限于篇幅,故而只展示部分的面试内容,完整的Java面试学习文档小编已经帮你整理好了,有需要的朋友点赞关注私信我777免费领取Java、大厂面试学习资料哦!
投诉 评论

吊打阿里面试官的几个SQL问题和答案1。编写查询,查找表中的行总数。答:selectcount()2。编写查询,消除表结果中的重复记录。答:Selectdistinc……冬季跑步你必须知道的四个常识冬季跑步不仅能锻炼身体,还能培养我们的意志力,因为冬季天气比较冷,能从温暖的被窝里爬起来跑步可是很不容易呢,您说对吗?那么,我们在冬季参与跑步运动时需要注意什么呢?下面本安全网……内蒙古从东到西需要倒时差?看完这篇文章我信了如果说这世间景色,我想抓住哪一刻那应该就是日出和日落了吧关于太阳,他们可是最有话语权的他们掌握着光明的开始和结束却在那一瞬间,给了人无限美好和想象……经理局长和领导的笑话1、老杨是经理,因贪污受贿被捕。他的下属对外界解释道:我们的总经理呀可有能耐了!他在位的时候,吃的是高级饭店,住的是高级宾馆,玩的是高级舞厅。哎,现在出事了进的也是高级法院。哎……为什么你需要一台空气循环扇前言:家里因为有孩子空间越发紧凑,老式落地风扇也因为电机老化等等的原因逐渐被淘汰,前几天上海异常的炎热,温度在三月份直逼30度左右,我们都以为今年没有春天,直接步入夏天,……如何挑选高品质的藜麦我们平时购买食物的时候能买一些品质好的吃起来口感和味道也会更好,这样也能够保证它的营养价值,所以平时在购买食物的时候一定要挑选好,其中高品质是我们最常吃的一种,下面一起看一下什……宫颈造句用宫颈造句大全一百八十一、重度宫颈糜烂是否需做手术?琼海的柳女士今年28岁,她说最近体检发现自己患重度宫颈糜烂,检查结果说明宫颈充血,糜烂,糜烂面呈红色颗粒状,质硬,弹性差。一百八十二……不断更换地点男人都有的个性癖好有人说,恋爱是美好的,一旦结了婚就成了噩梦,各种各样的缺点就全都暴露了出来。其中性生活就是一个抱怨的重点,总是觉得男人毛病太多。其实,男人的这些性癖好是有原因的。现在就来为女性……人世间里的10条教育真谛,值得家长深省(建议收藏)你好,我是大周小吴,点击右上方的关注,专注分享女性成长和孩子成长的干货。细细的看我的文章,慢慢的品人生滋味。1hr别相信是金子总会发光,哪怕是一块破抹布给盖住了,那金子都……佤邦为什么说自己是中国人缅甸佤邦到底是不是中国人最近很多人说这个佤邦的一些事情,说得最多的就是很多人问这个佤邦的人到底是不是中国人,还有很多人佤邦人说自己是中国人,那么这些说法对不对呢?这个缅甸的佤邦人是否是真的中国人,他们……父母教育子女时,应躲开钟表效应森林里生活着一群猴子,每天太阳升起的时候它们外出觅食,太阳落山的时候回去休息,日子过得平淡而幸福。但是,有一天,一只叫猛可的猴子捡到了一块手表,很快聪明地掌握了如何看时间……补货N次的熊猫Dunk还这么抢手?女鞋狗怎么搭都好看618期间,Nike对熊猫dunk又双叒叕进行补货,印象中听到熊猫Dunk补货的消息应该不下十次了(总次数),可见它的热度非同寻常!按鞋市以往补货的情况分析,一般来说经历……
闽台棒球打出文产融合精彩一球专注培养青少年科技素养,童程童美相信科创挑战的力量iPad或者安卓平板有没有像电脑的知云文献翻译一样好用的AP这种恐怖片,真是一点道理都不讲啊!106页完整版PPT详解华为以客户为中心的销售策略全套打法!时装周你可以永远相信极简与生俱来的高级感离谱的攻击距离!红警中英国的狙击手,攻击距离有多夸张均胜电子发布年度公告2022年新增订单763亿元候场4年未果再冲A股背靠美的万和集团的顺德农商行能否圆上市梦上市半年降价800元最便宜的骁龙888手机值得买吗?湖南多项非遗亮相新疆是个好地方对口援疆19省市非物质文化遗产2023年会议平板如何选?深度解读,5款会议平板,总有一款适从用户体验设计的角度,学习服务设计的思考方式和闪光点机长怎么考普通人怎么考机长人大代表的权利包括哪些?梅雨季节是什么时间5400兆级速率!一图看懂Redmi电竞路由器AX5400:那里,留下了我的悔恨作文这么强大小公司如何夹缝中求生听来的故事懒蛤蟆的绝招个税红包谁受益将给你我带来哪些影响?读《绿山墙的安妮》有感寄简崇禧司徒高

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找