2022SQL学习总结.docx
《2022SQL学习总结.docx》由会员分享,可在线阅读,更多相关《2022SQL学习总结.docx(19页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、2022SQL学习总结 SQL学习总结上个星期,自主学习了SQLServer,基本了解了SQLServer的语法学问和结构,对SQL有了肯定的相识,现在我就对我这一星期对SQl的学习做一个总结:为了永久性的集中存放数据,并且还能体现数据与数据之间联系.此时须要用到数据库来保存数据.由于之前也接触过一两种数据库,向Oracle,MySQL,再就是SQLServer,这三种都是关系型数据库,都是用于存储大量的数据信息,是一种存储数据的仓库。不过,不管是哪一种数据库,他们之间的联系我觉得都是相通的,对于数据库的常见操作,无非就是“三建四句“。所谓的“三建四句“就是说,三建:建库,建表,建约束;四句:
2、增,删,改,查。SQL语言,也称为结构化查询语言,是用于访问关系型数据库的专用语言,同样也是数据库的核心语言,总体上可以分为三类:数据操纵语言(DML),数据定义语言(DDL)、数据限制语言(DCL)。数据操纵语言(DML)主要有四种形式:插入:insert更新:update删除:delete查询:select,涉及到数据的完整性简洁查询、子查询、多表连接查询数据定义语言(DDL)主要用于创建数据库中的各种对象数据库数据表视图:是一种视察数据的途径索引:用于查询数据,提高效率同义词Create,Drop,Alert,Truncate(截断)数据限制语言(DCL):是用于授予和回收访问数据库的某
3、种权限,并对数据库进行监控。Grant(授予),Revoke(回收),Denny(拒绝),RollbackSQL中的运算符:算术运算符、位运算符、比较运算符、逻辑运算符、通配运算符、字符串连接符、赋值运算符上面这些只是SQLServer数据的基本操作,而它真正强大的地方并不止这些,还有程序设计,SQLServer中的编程语言就是T-SQL语言,是一种非过程化的语言。触发器:触发器是一种特别类型的存储过程,主要是通过实践进行触发而被执行。它的主要作用就是能够实现由主键和外键所不能保证的困难的参照完整性和数据的一样性。存储过程:(storedprocedure)类似c语言中的函数,是一组为了完成特
4、定功能的SQL语句集,经编译后存储在数据库中。用户通过指定存储过程的名字并给出参数来执行它。游标:游标是一种能从包含多条数据记录的结果集中每次提取一条记录的机制。将批操作变成行操作,对结果集中得某行进行操作。扩展阅读:SQL学习总结SQL总结1插入,删除,修改(语法)(插入)INSERTINTO列名VALUES(更新)UPDATESET=WHERE(删除)DELETEFROMWHERE留意插入语句假如没有能很好的记住字段在表中的依次最好是写上列名2.条件查询SelectFromWhereOrder3给字段取别名as用法运用AS来为列其别名Select学号asstudentNO,姓名asname
5、,家庭地址asaddressFromstudentinfoWhere家庭地址黑龙江哈尔滨运用=来为列另起别名Select姓名=firstName+.+lastnamefromemployees留意:1.+连接字符数据,结果为字符串数据的连接2假如+连接数值型,结果为数值的和4函数字符串函数函数名CharindexLenLowerUpperLtrimRtrimRightReplaceStudiff描述用来找寻一个指定的字符在另一个字符串中的起始位置返回传递给它的字符串长度将传递给他的字符串变成小写将传递给他的字符串变成大写清空字符左边的空格清空字符右边的空格替换一个字符串中的字符在一个字符串中,
6、删除指定例如SELECTCHARINDEX(lucia,Iamlucia)返回:6Selectlen(sql)Selectlower(SQL)返回sqlSelectltrim(你好)返回你好Selectreplace(连玉龙,龙,凤)返回:连玉凤Selectstudiff(ABCDEFG,2,3,我的音玛丽莲.梦露,2)梦露从字符串右边返回指定数目字符Selectright(长度的字符,并在该位置插入一个新的字符串乐我的世界)返回:A我的音乐我的世界EFG日期函数GetdateDateaddDatediffDatenameDatepart数学函数ConvertCurrent_userDatal
7、engthHost_name备注:日期函数中datediff可以用来计算时间差(例如,年龄)getdate()用来设置默认这些函数简单记也简单忘,尤其是书写的格式规范。用来转变数据类型返回当前用户的名字给指定表达式的字节数返回当前用户所登录的计算机名字Selectconvert(varchar(5),1234)Selectcurrent_user,返回你登录的用户名Selectdatalegth(中国)Selectuser_name(1)返回:从任何数据库中返回abo取得当前的系统日期将指定的数值添加到指定的日期后面的日期两个日期之间的指定日期日期中指定日期部分的字符串日期中指定日期部分的整数
8、形式Selectgetdate()Selectdateadd(mm,4,01/01/1999)返回05/01/19999Selectdatediff(mm,01/01/1999,05/01/1999)Selectdatename(dw,01/01/201*)Selectdatepart(day,01/15/201*)5like用法*通配符*%包含零个或更多字符串*_(下划线)任何单个字符*指定范围(a-f)或集合abcdf中任何的一个单个字符*不属于指定范围a-f或集合abcdef的任何单个字符例SELECT*FROM数据表WHERE编号LIKE008%AC%可能会查询出的编号值为(a)。A、
9、0090ACDB、007_AFFC、008&DCGD、008C6.聚合函数*Count(),*Max(),*Min(),*Avg(),sum()6.1分组查询groupbyhavingSelect任职部门,count(*)Fromlucia工作室Where目前的薪资=201*Groupby任职部门Havingcount(*)47.多表查询*innerjoin内连接:两张表的依次颠倒对结果没有影响*leftjoin左连接:左边的表是主表,表的依次不能颠倒*rightjoin右连接:右边的表是主表,表的依次不能颠倒例SELECTS.姓名,C.课程编号,C.笔试成果FROMStudentInfoAS
10、SINNERJOINScoreInfoASCONC.学号=S.学号8.建表的三大范式第一范式的目标是确保每列的原子性假如每列都是不行再分的最小数据单元(也称为最小的原子单元),则满意第一范式(1NF)假如一个表中个字段关系满意1NF,并且除了主键以外的其它列,都依靠于该主键,则满意其次范式(2NF)其次范式要求每个表只描述一件事情(去除不依靠主键或部分依靠主键的列)由其次范式可知:产品价格不是依靠订单的编号假如一个关系满意2NF,并且除了主键以外的其它列都不传递依靠于主键列,则满意第三范式(3NF)第三范式的目标是确保每列都干脆依靠主键由第三范式可知:产品的结果是依靠产品编号而不是干脆依靠订单
11、编号的9.主键(primarykey),外键(foreignkey)创建/添加语法ConstraintPK_主键名称primarykey(主键名称)ConstraintFK_外键的名称foreignkey(外键名称)References父表(父表字段)修改Altertable子表AddConstraintFK_外键的名称foreignkey(外键名称)References父表(父表字段)(b)其他约束:唯一约束AlterconstraintUQ_stuIDunique(stuID)默认约束AlterconstraintDF_addressdefault(地址不详)foraddress检查约束A
12、lterconstraintCK_stuAgecheck(stuAgebetween15and40)10变量(局部变量,全局变量)局部变量*声明局部变量DECLARE变量名数据类型*赋值*SET变量名=值*SELECT变量名=值全局变量是系统的,是不能变更的较常用的是:变量ERRORIDENTITYLANGUAGEMAX_CONNECTIONSROWCOUNTSERVERNAMETRANCOUNTVERSION变量含义最终一个T-SQL错误的错误号最终一次插入的标识值当前运用的语言的名称可以创建的同时连接的最大数目受上一个SQL语句影响的行数本地服务器的名称当前连接打开的事务数SQLServe
13、r的版本信息11.ifelse,while,caseend,whenthen用法例题=ifelse=ifexists(select*fromsysobjectswherename=NewTable)droptableNewTableselect姓名,S.学号,笔试成果,机试成果,是否通过=casewhen笔试成果60and机试成果60then1else0endintoNewTablefromstudentinfoassleftjoinscoreinfoascons.学号=c.学号go=while=declarewrittenAvgdecimaldeclarelabavgdecimalselec
14、twrittenAvg=avg(笔试成果)fromstudentscoreselectlabavg=avg(机试成果)fromstudentscoreif(writtenAvglabavg)beginprint(笔试成果大于机试成果)while(1=1)beginupdatestudentscoreset机试成果=机试成果+1if(selectmax(机试成果)fromstudentscore)=97breakendendelsebeginprint(机试成果大于笔试成果)while(1=1)beginupdatestudentscoreset笔试成果=笔试成果+1if(selectmax(笔
15、试成果)fromstudentscore)=97breakendendgoselect*fromstudentscorego=caseend=select姓名,学号,笔试成果=casewhen笔试成果isnullthen缺考elseconvert(varchar(5),笔试成果)end,机试成果=casewhen机试成果isnullthen缺考elseconvert(varchar(5),机试成果)end,是否通过=casewhen是否通过=1then是when是否通过=0then否endfromNewTablego=whenthen=ifexists(select*fromsysobject
16、swherename=NewTable)droptableNewTableselect姓名,S.学号,笔试成果,机试成果,是否通过=casewhen笔试成果60and机试成果60then1else0endintoNewTablefromstudentinfoassleftjoinscoreinfoascons.学号=c.学号goselect*fromnewTable12子查询(in,exists)SELECT姓名FROMStudentInfoWHERE学号IN(SELECT学号FROMScoreInfo)GO留意:基本上in可以等价于“=”可是“=”只能是子查询返回的是单个结果,假如是多个查询
17、结果只能用inExists用法用例:IFEXISTS(SELECT*FROMsysdatabasesWHEREname=LuciaBank)DROPDATABASELuciaBank14存储过程优点:执行的速度更快允许模块化程序设计提高系统平安性削减网络流通量14.1分类系统存储过程“sp_”或者是“XP_”常用系统存储过程Sp_database:列出服务器上的全部数据库Sp_helpdb:报告有关指定数据库或全部数据库的信息Sp_rename:更改数据库的名称Sp_tables:返回当前环境下可查询的对象的列表sp_columns:返回某个表列的信息sp_help:查看某个表的全部信息sp_
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022 SQL 学习 总结
限制150内