第九章数据库开发李卓航

#第九章主要内容```1、数据库介绍、类型、特性数据库库即存放数据的仓库,而且数据是按一定的格式存放的;数据库是长期存放在计算机内、有组织、可共享的数据集合。数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。常见的数据库模型分为关系型数据库(MySQL、Oracle、SQLServer....)和非关系型数据库(文档存储数据库MongoDB;键值存储数据库Redis、Memcached、列存储数据库HBase、图形数据库Neo4J)

2、MySQL中char和varchar的区别,varchar(50)和char(50)分别代表什么意思?char和varchar都是字符串类型,char(50):定长,字符的长度为50,浪费空间,存取速度快,数据不足时,会往右填充空格来满足长度。varchar(50):变长,字符的长度为50,节省空间,存取速度慢,存储数据的真实内容,不会填充空格,且会在真实数据前加1-2bytes,表示真实数据的bytes字节数。

3、MySQL中int类型存储多少个字节?int存储4字节,最小值-2147483648,最大值21477483647

4、主键具有什么特征?唯一且非空

5、简述你对innerjoin、leftjoin、rightjoin、fulljoin的理解;多表连接查询:innerjoin:内连接,只连接匹配的行,找两张表共有的部分;leftjoin:外连接之左连接,优先显示左表全部记录,在内连接的基础上增加左表有右表没有的结果;rightjoin:外连接之右连接,优先显示右表全部记录,在内连接的基础上增加右表有左表没有的结果;fulljoin:=leftjoinonunionrightjoinon...mysql不支持fulljoin但是可以用union...全外连接,显示左右两个表全部记录,在内连接的基础上增加左表有右表没有和右表有左表没有的结果;

6、concat,group_concat函数的作用是什么?定义显示格式:concat()用于连接字符串eg:selectconcat('姓名:',name,'年薪:',salasy*12)asannual_salaryfromemployee;concat_ws()第一个参数为分隔符eg:selectconcat_ws(':',name,salary*12)asannual_salaryfromemployee;groupby与group_concat()函数一起使用selectpost,group_concat(name)asemp_membersfromemployeegroupbypost;

7、请介绍事务的实现原理;事务:用于将某些操作的多个sql作为原子性操作,一旦有某一个出现错误,即可回滚到原来的状态,从而保证数据库数据的完整性。原子性:一堆sql语句,要么同时执行成功,要么同时失败!

8、索引的本质是什么?索引有什么优点,缺点是什么?索引是帮助MySQL高效获取数据的数据结构。因此,索引的本质是一种数据结构。在数据之外,数据库系统还可以维护满足特定查找算法的数据结构,这些数据结构以某种方式指向真实数据,这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。优点:1、提高数据检索效率,降低数据库的IO成本;2、通过索引对数据进行排序,降低了数据排序的成本,降低了CPU的利用率;缺点:1、索引实际上也是一张表,索引会占用一定的存储空间;2、更新数据表的数据时,需要同时维护索引表,因此,会降低insert、update、delete的速度;

9、哪些情况下需要创建索引,哪些情况下不需要创建索引?1、主键自动创建唯一非空索引;2、频繁作为查询条件的字段应该创建索引;3、频繁更新的字段不适合简历索引,因为每次更新不仅仅更新数据表同时还会更新索引表;4、查询中经常排序的字段,可以考虑创建索引;5、如果某个字段的重复数据较多,不适合创建普通索引;

10、请分别介绍ACID代表的意思,什么业务场景需要支持事务,什么业务场景不需要支持事务?ACID,指数据库事务正确执行的四个基本要素的缩写。包含:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。一个支持事务(Transaction)的数据库,必须要具有这四种特性,否则在事务过程(Transactionprocessing)当中无法保证数据的正确性。使用场景:银行的交易系统eg:starttransaction;updateusersetbalance=900wherename='wsb';#买支付100元updateusersetbalance=1010wherename='egon';#中介拿走10元uppdateusersetbalance=1090wherename='ysb';#卖家拿到90元,出现异常没有拿到rollback;commit;

11、什么是触发器,请简述触发器的使用场景?使用触发器可以定制用户对表进行【增、删、改】操作时前后的行为,注意:没有查询。触发器无法由用户直接调用,而知由于对表的【增/删/改】操作被动引发的。eg:createtriggertri_before_insert_tb1beforeinsertontb1foreachrowbegin...end

12、什么是存储过程,存储过程的作用是什么?存储过程包含了一系列可执行的sql语句,存储过程存放于MySQL中,通过调用它的名字可以执行其内部的一堆sql。优点:1.用于替代程序写的SQL语句,实现程序与sql解耦2.基于网络传输,传别名的数据量小,而直接传sql数据量大缺点:1.程序员扩展功能不方便

13、什么是视图,简单介绍视图的作用和使用场景?视图是一个虚拟表(非真实存在),其本质是【根据SQL语句获取动态的数据集,并为其命名】,用户使用时只需使用【名称】即可获取结果集,可以将该结果集当做表来使用。视图取代复杂的sql语句,方便用来查询。eg:createviewteacher_viewasselecttidfromteacherwheretname='李平老师';

17、请介绍*select*语句的执行顺序;fromwheregroupbyhavingselectdistinctorderbylimit说明:1.找到表:from2.拿着where指定的约束条件,去文件/表中取出一条条记录3.将取出的一条条记录进行分组groupby,如果没有groupby,则整体作为一组4.将分组的结果进行having过滤5.执行select6.去重7.将结果按条件排序:orderby8.限制结果的显示条数

19、请举出MySQL中常用的几种数据类型;mysql常用数据类型:1.数值类型:整数类型:tinyintsmallintintbigint浮点型:floatdoubledecimalfloat:在位数比较短的情况下不精准(一般float得精确度也够用了)double:在位数比较长的情况下不精准0.000001230123123123存成:0.000001230000decimal:(如果用小数,则推荐使用decimal)精准内部原理是以字符串形式去存2.日期类型:最常用:datetimeyeardatetimedatetimetimestamp3.字符串类型:char(6)varchar(6)char(10):简单粗暴,浪费空间,存取速度快,定长;root存成root000000varchar:精准,节省空间,存取速度慢,变长;sql优化:创建表时,定长的类型往前放,变长的往后放比如性别比如地址或描述信息>255个字符,超了就把文件路径存放到数据库中。比如图片,视频等找一个文件服务器,数据库中只存路径或url。4.枚举类型与集合类型:enum('male','female')set('play','music','read','study')

20、什么情况下会产生笛卡尔乘积,如何避免?交叉连接:不适用任何匹配条件。生成笛卡尔积;select*fromemployee,department;避免:selectemployee.id,employee.name,employee.age,employee.sex,department.namefromemployee,departmentwhereemployee.dep_id=department.id;

21、请列举MySQL中常用的函数;聚合函数:聚合函数聚合的是组的内容,若是没有分组,则默认一组;count()、max()、min()、avg()、sum()

22、请说明groupby的使用场景;1、首先明确一点:分组发生在where之后,即分组是基于where之后得到的记录而进行的2、分组指的是:将所有记录按照某个相同字段进行归类,比如针对员工信息表的职位分组,或者按照性别进行分组等3、为何要分组呢?取每个部门的最高工资取每个部门的员工数取男人数和女人数

小窍门:‘每’这个字后面的字段,就是我们分组的依据4、大前提:可以按照任意字段分组,但是分组完毕后,比如groupbypost,只能查看post字段,如果想查看组内信息,需要借助于聚合函数

###二、编程题1、创建一个表student,包含ID(学生学号),sname(学生姓名),gender(性别),credit(信用卡号),四个字段,要求:ID是主键,且值自动递增,sname是可变长字符类型,gender是枚举类型,credit是可变长字符类型;createtablestudent(IDintprimarykeyauto_increment,snamevarchar(16)notnull,genderenum('male','female')notnulldefault'female',creditvarchar(32));

2、在上面的student表中增加一个名为class_id的外键,外键引用class表的cid字段;CREATEtableclass(cidintNOTNULLPRIMARYKEYauto_increment,cnameVARCHAR(5));ALTERtablestudentADDclass_idINTUNIQUE;ALTERtablestudentADDFOREIGNKEY(class_id)REFERENCESclass(cid)ONDELETECASCADEONUPDATECASCADE;

3、向该表新增一条数据,ID为1,学生姓名为alex,性别女,修改ID为1的学生姓名为wupeiqi,删除该数据;insertintoclass(cname)values(('一班'));INSERTINTOstudent(sname,gender)VALUES('alex','女');UPDATEstudentSETsname='wupeiqi'whereID=1;DELETEfromstudentwhereID=1;

4、查询student表中,每个班级的学生数;SELECTc.cname,count(ID)fromstudentsLEFTJOINclasscONc.cid=s.class_idGROUPBYID;

5、修改credit字段为unique属性;alterTABLEstudentmodifycreditVARCHAR(18)UNIQUE;

6、请使用命令在你本地数据库中增加一个用户,并给该用户授予创建表的权限;grantCREATEON*.*TO'panda@localhost'identifiedby'123';

7、请使用pymsql模块连接你本地数据库,并向student表中插入一条数据;importpymysqlconn=pymysql.connect(host='127.0.0.1',port=3306,user='root',password='123456',db='db6',charset='utf8')cursor=conn.cursor()sql="insertintostudentvalues(13,'park','男','123456',1)"rows=cursor.execute(sql)conn.commit()cursor.close()conn.close()

8、请使用mysqldump命令备份student表;cdC:\ProgramFiles\MySQL\MySQLServer5.7\binmysqldump-uroot-p123456db6student>student1.sql

9、创建一张名为*student_insert_log*的表,要求每次插入一条新数据到*student*表时,都向*student_insert_log*表中插入一条记录,记录*student_id*,*insert_time*;cdC:\ProgramFiles\MySQL\MySQLServer5.7\binmysqldump-uroot-p123456db6student>student1.sql

THE END
1.一图看懂更多增量政策将推出!多部门明确2025年“任务书”【一图看懂】更多增量政策将推出!多部门明确2025年“任务书” 全新妙想投研助理,立即体验 原标题:【一图看懂】更多增量政策将推出!多部门明确2025年“任务书” 郑重声明:东方财富发布此内容旨在传播更多信息,与本站立场无关,不构成投资建议。据此操作,风险自担。https://finance.eastmoney.com/a/202412173270810912.html
2.增量预算法是什么意思增量预算方法,又称调整预算方法,是指以基期成本费用水平为基础,结合预算期业务量水平及有关影响成本因素的未来变动情况,通过调整有关原有费用项目而编制预算的一种方法。 这是一种传统的预算方法。 转载请联系作者获得授权,并标注“文章作者”。 环球网校 https://wenda.hqwx.com/videoshow-286.html
3.增量市场的特点是什么?如何在增量市场中寻找商机?基金频道增量市场的特点是什么?如何在增量市场中寻找商机? 增量市场的特点 增量市场,简单来说,是指市场规模不断扩大、需求持续增长的领域。其具有以下显著特点: 首先,市场潜力巨大。新的需求不断涌现,为企业提供了广阔的发展空间。 其次,竞争相对不那么激烈。因为市场还在成长阶段,参与者相对较少,尚未形成固化的竞争格局。https://funds.hexun.com/2024-12-22/216339888.html
4.一图看懂更多增量政策将推出!多部门明确2025年“任务书【一图看懂】更多增量政策将推出!多部门明确2025年“任务书”2024-12-18 09:23:07 来源?: 中国证券报·中证金牛座 热点资讯 1 【一图看懂】更多增量政策将推出!多部门明确2025年“任务书” 2 国资委:六方面改进和加强央企控股上市公司市值管理工作 3 非洲快递“拓荒者”:汇率波动、保安随行在最后一块https://faq.gtjadev.com/cos/look/detail/780041819882084.html
5.IT博客汇生产计划01 什么是生产计划?生产计划,是制造部门为制造产品而制定的计划,核心内容是:在什么时间、什么地点生产多少数量的什么产品。产品:产品名称或零件名称,要具体到规格型号,如:车型CS75 – 左前门;数量:要生产的数量或重量(因为比如线圈、粗胚钢等,是用重量来衡量产出的),如:1000件;时间:要在什么时间完成,具体在哪https://www.bokehui.net/tag/%E7%94%9F%E4%BA%A7%E8%AE%A1%E5%88%92
6.一图看懂更多增量政策将推出!多部门明确2025年“任务书【一图看懂】更多增量政策将推出!多部门明确2025年“任务书”2024-12-18 09:23:07 来源?: 中国证券报·中证金牛座 热点资讯 1 【一图看懂】更多增量政策将推出!多部门明确2025年“任务书” 2 国资委:六方面改进和加强央企控股上市公司市值管理工作 3 非洲快递“拓荒者”:汇率波动、保安随行在最后一块https://www.igtja.com/cos/look/detail/780041819882084.html
7.java测试增量是什么意思啊增量测试与非增量测试java测试增量是什么意思啊 增量测试与非增量测试 1、测试用例的设计:使用一种或多种白盒测试方法分析模块的逻辑结构,然后使用黑盒测试方法对照模块的规格说明以补充测试用例。 2、增量测试:先将下一步要测试的模块组装到测试完成的模块集合中,然后再进行测试。https://blog.51cto.com/u_16099185/6875736
8.专项计划是什么意思?专项计划的好处与坏处有哪些?一、专项计划是什么意思? 专项计划是一种特殊形式报考计划,目前国家专项计划、地方专项计划、高校专项计划隶属于高考三大招生计划。 1.国家专项计划 国家专项计划指:教育部定向招收集中连片特殊脱贫县、国家级脱贫开发重点县以及新疆南疆四地州学生的一种扶贫计划。国家专项计划要求招收偏远、贫困、少数民族地区等含县级以下https://www.gk100.com/read_73491.htm
9.西部计划容易考进去吗西部计划是什么意思2022高考西部计划容易考进去吗 西部计划是什么意思 西部计划通过率高吗 每年的情况不一样,有的年份报考人数多,招收名额少,那么通过率可能就不高,比较难考;如果某一年报考人数少,招收名额多,那么就可能会比较好考,通过率也高了。一般情况下,西部计划的招录工作是没有公务员考试那么严格的。https://www.027art.com/gaokao/HTML/10611867.html
10.主生产计划(MPS)的批量规则是什么意思?主生产计划下达生产产品的数量需要综合考虑产品需求量与生产成本等多方面的因素。因此,每次下达生产的数量不一定等于产品预测量或客户订单量,为达到控制产品数量使之保持一个合理的数量关系,ERP系统会使用批量规则来调节产品数量。http://www.glzzj.com/10553.html
11.「生产和成本理论」成本优化的含义是什么「生产和成本理论」成本优化的含义是什么:成本优化的意思是在一定条件与时间范围内,不能够继续改进质量,降低内外损失成本,内外部损失达到最佳区域,大部分预防质量事故工作已经列入质量改进计划,预防成本达到最佳区域。https://www.dongao.com/wdzt/zjjs_shengchanhechengbenlilun_3057247/
12.天津市型车总量调控管理办法相关政策解读一是摇号工作,市调控办应当在每月9日之前公布当月增量指标的计划配置数量,并于每月26日组织摇号,当日如为非工作日则相应顺延。摇号由公证机构依法予以公证。节能车增量指标和普通车增量指标、单位增量指标和个人增量指标都是分别摇号。申请人可以在指定网站查询摇号结果。 https://www.tj.gov.cn/zwgk/szfgb/qk/2014/6_3307/202005/t20200520_2475772.html
13.战略布局战略定位之间的关系是什么?年度经营计划及预算 从战略规划(SP)到年度经营计划(BP) 增量绩效导向的开放式薪酬包预算 战略执行中的瓶颈突破 战略执行瓶颈的识别与突破 战略执行力不足的冲突表现 战略执行的最大冲突是追求成长与追求稳定之间的冲突 如何解决战略执行中的冲突 领导力是战略管理的根本 http://www.zzfmdn.com/article/1346949
14.PMP知识点:项目生命周期项目生命周期中有三个与时间相关的重要概念:检查点(CheckPoint)、里程碑(MileStone)和基线(ProjectBaseline),描述了在什么时候(When)对项目进行什么样控制。 检查点:指在规定的时间间隔内对项目进行检查,比较实际与计划之间的差异,并根据差异进行调整。可将检查点看作是一个固定“采样”时点,而时间间隔根据项目周期长短https://www.douban.com/note/848703509/
15.如何从零开始构建深度学习项目?这里有一份详细的教程应该选择什么样的项目? 很多人工智能项目其实并没有那么严肃,做起来还很有趣。2017 年初,我着手启动了一个为日本漫画上色的项目,并作为我对生成对抗网络 ( GAN ) 研究的一部分。这个问题很难解决,但却很吸引人,尤其是对于我这种不会画画的人来说!在寻找项目时,不要局限于增量性改进,去做一款适销对路的产品,https://download.csdn.net/blog/column/10595130/111189422
16.进阶必看!大厂设计超爱用的敏捷开发指南优设网计划会议针对本次迭代范围,进行需求评审,并将一个需求拆解为多个任务,明确每个任务的目标和验收标准,以及任务估算排期,产出一份 Sprint Backlog(任务列表)。 这里值得一提的是需求规划和需求评审的区别,前者由 PO 主导,涉及商业、市场、运营,更像是范围层“我们做什么,不做什么”;后者由 PM 主导,涉及业务逻辑、https://www.uisdc.com/agile-development-guide
17.原油产量连续5年保持增长,中国海油的原油增量为何关键?“我们从来不会走一步看一步。”有限天津分公司开发部负责同志介绍,渤海油田往往是三年的规划计划并行实施,“吃着碗里的,望着盆里的”,例如到了每年8月,除了推进下半年的生产任务外,公司已经开始着手落实次年上半年的产量工作、进一步锁定相关资源。 ——管理模式转变带来什么? https://moil.in-en.com/html/oil-2972115.shtml
18.知识产权工作计划(精选13篇)为加快推进我县知识产权文化建设,努力营造“尊重知识、尊重人才、诚实守信”的知识产权保护氛围,为全面完成我县知识产权试点工作的各项任务,根据《湖南省县(市)知识产权工作试点办法》的文件精神,切实推进我县新兴工业化进程,结合我县实际,特制定本计划。 https://yjbys.com/gongzuojihua/2014/1783960.html
19.大数据测试实践之全量改增量(上)腾讯云开发者社区初始计划涉及A系统3张表,B系统8张表,后经过与客户沟通确认全量改增量涉及A系统1张表,替换依赖1张表(解决同径不同名问题),剔除1张表,B系统8张表维持不变,最终期望是10张表进行改造升级,受影响的表为9张全量表、上游依赖这些表的数据表有7张,总计16张表,可通过数据血缘图分析得出。 https://cloud.tencent.com/developer/article/2364409
20.为什么说马斯克的Starlink在商业上不靠谱?1.什么是Starlink(星链)? Starlink是马斯克执掌的SpaceX公司2015年提出的一项计划,简单来说,如上图所示,Starlink是要通过发射卫星,建立一个低轨卫星通信网络,所谓低轨,就是卫星运行在1000公里附近,同步卫星的运行高度大概在36000公里左右。 关于Starlink卫星的数量,2016年向美国FCC(联邦通信委员会,类似中国的工信部)申请https://36kr.com/p/1725077110785.html
21.Scrum指南?ShineScrum认证Sprint 计划会议要解决以下两个问题: 接下来的Sprint交付的增量中要包含什么内容? 要如何完成交付增量所需的工作? 话题一:接下来的 Sprint 交付的增量中要包含什么内容? 开发团队预计这个 Sprint 中要开发的功能。产品负责人讲解 Sprint 的目标以及达成该目标所需要完成的产品待办列表项。整个 Scrum 团队为了更好地了http://mww.shinescrum.com/pages/scrum2017