《知识点、语句学习及详细总结 .docx》由会员分享,可在线阅读,更多相关《知识点、语句学习及详细总结 .docx(78页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精品名师归纳总结资料word 精心总结归纳 - - - - - - - - - - - -。一.数据库简介和创建1. 系统数据库在安装好 SQL SERVER后,系统会自动安装5 个用于保护系统正常运行的系统数据库:(1) ) master :记录了 SQL SERVER实例的全部系统级消息,包括实例范畴的元数据(如登录帐号)、端点、链接服务器和系统配置设置。(2) ) msdb :供 SQLSERVER代理服务调度报警和作业以及记录操作员的使用,储存关于调度报警、作业、操作员等信息。(备份仍原时)(3) ) model : SQL SERVER实例上创建的全部数据库的模板。(4) )temp
2、db :暂时数据库,用于储存暂时对象或中间结果集,为数据库的排列等操作供应一个暂时工作空间。(每次启动都会重新创建)(5) )Resource :一个只读数据库, 包含了 SQL SERVER的全部系统对象。(隐匿的数据库)2. 数据库的组成2.1 数据文件( 1)主要数据文件:扩展名为.mdf,每个数据库有且只能有一个。( 2)次要数据文件:扩展名为.ndf, 可以没有或有多个。-可编辑修改 -可编辑资料 - - - 欢迎下载精品名师归纳总结学习资料 名师精选 - - - - - - - - - -第 1 页,共 39 页 - - - - - - - - - -可编辑资料 - - - 欢迎下
3、载精品名师归纳总结资料word 精心总结归纳 - - - - - - - - - - - -。2.2 日志文件扩展名为 .ldf,用于存放复原数据库的全部日志信息。2.3 数据的储备安排( 1 )数据文件和日志文件的默认存放位置为:ProgrameFilesMicrosoftSQL ServerMSSQL.1MSSQLData文件夹。( 2)数据的储备安排单位是数据页。一页表是一块8KB 的连续磁盘空间。( 3)页是储备数据的最小空间安排单位,页的大小打算了数据库表中一行数据的最大大小。3. SQL语句数据库操作( 1)创建数据库CREATEDATABASEdatabase_name二. SQ
4、L基础SQL (StructuredQueryLanguage ,结构化查询语言)是用户操作关系数据库的通用语言。1. SQL功能概述-可编辑修改 -可编辑资料 - - - 欢迎下载精品名师归纳总结学习资料 名师精选 - - - - - - - - - -第 2 页,共 39 页 - - - - - - - - - -可编辑资料 - - - 欢迎下载精品名师归纳总结资料word 精心总结归纳 - - - - - - - - - - - -。2. 系统供应的数据类型2.1 数值数据类型储备数据类型说明空间-可编辑修改 -可编辑资料 - - - 欢迎下载精品名师归纳总结学习资料 名师精选 - -
5、- - - - - - - -第 3 页,共 39 页 - - - - - - - - - -可编辑资料 - - - 欢迎下载精品名师归纳总结资料word 精心总结归纳 - - - - - - - - - - - -。储备数据类型说明空间可编辑资料 - - - 欢迎下载精品名师归纳总结bitbit 数据类型是整型,其值只能是0 、1 或空值。这种数据类型用于储备只有两种可1 字能值的数据,如Yes或 No 、True或 False、On或 Off. (很省空间的一种数据节类型,假如能够满意需求应当尽量多用。)可编辑资料 - - - 欢迎下载精品名师归纳总结可编辑资料 - - - 欢迎下载精品名
6、师归纳总结tinyinttinyint数据类型能储备从0 到 255之间的整数。它在你只准备储备有限数目的数1 字值时很有用。节可编辑资料 - - - 欢迎下载精品名师归纳总结smallint数据类型可以储备从- 2 的 15 次幂 -32768 到 2 的 15 次幂 32767 之间的可编辑资料 - - - 欢迎下载精品名师归纳总结smallint整数。 这种数据类型对储备一些常限定在特定范畴内的数值型数据特别有用。(如2 字果 tinyint 类型太单调不能满意您的需求,您可以考虑用smallint类型, 由于这个类节型相对也是比较安全的,不接受恶意脚本内容的嵌入。)可编辑资料 - -
7、- 欢迎下载精品名师归纳总结可编辑资料 - - - 欢迎下载精品名师归纳总结intint数据类型可以储备从- 2 的 31 次 幂 -2147483648到 2 的 31 次幂21474834 个647 之间的整数。储备到数据库的几乎全部数值型的数据都可以用这种数据类型字节可编辑资料 - - - 欢迎下载精品名师归纳总结可编辑资料 - - - 欢迎下载精品名师归纳总结numeric( p,s ) 或decimalp,s数据类型能用来储备从 -10 的 38 次幂 -1 到 10 的 38 次幂 -1 的固定精度和范畴的数值型数据。使用这种数据类型时,必需指定范畴和精度。 范畴是小数点左右所能储
8、备的数字的总位数。精度是小数点右边储备的数字的位数最多17 个字节可编辑资料 - - - 欢迎下载精品名师归纳总结-可编辑修改 -可编辑资料 - - - 欢迎下载精品名师归纳总结学习资料 名师精选 - - - - - - - - - -第 4 页,共 39 页 - - - - - - - - - -可编辑资料 - - - 欢迎下载精品名师归纳总结资料word 精心总结归纳 - - - - - - - - - - - -。2.2 一般编码字符串类型数据类型说明可编辑资料 - - - 欢迎下载精品名师归纳总结charnchar 数据类型用来储备指定长度的定长非统一编码型的数据,n 表示字符串的最大
9、长度,取值范畴为 18000(如实际字符串控件小于n, 系统自动在后面补空格)可编辑资料 - - - 欢迎下载精品名师归纳总结varcharn可变长度的字符串类型,n 表示字符串的最大长度,取值范畴为18000 。可编辑资料 - - - 欢迎下载精品名师归纳总结texttext数据类型用来储备大量的非统一编码型字符数据。这种数据类型最多可以有231-1 或 20 亿个字符 .可编辑资料 - - - 欢迎下载精品名师归纳总结char和 varchar 的区分:如某列数据类型为varchar20 ,存字符串 ”Jone ”时,只占用 4 个字节,而 char( 20)会在为填满的空间中填写空格。所
10、以, varchar 类型比 char 类型更节约空间,但它的开销会大一些, 处理速度也慢一些。 因此,n 值比较小(小于 4 ), 用 char 类型更好些。2.3 统一编码字符串类型( Unicode )-可编辑修改 -可编辑资料 - - - 欢迎下载精品名师归纳总结学习资料 名师精选 - - - - - - - - - -第 5 页,共 39 页 - - - - - - - - - -可编辑资料 - - - 欢迎下载精品名师归纳总结资料word 精心总结归纳 - - - - - - - - - - - -。数据类型说明nchar数据类型用来储备定长统一编码字符型数据。统一编码用双字节结构
11、来储备每个字符,而可编辑资料 - - - 欢迎下载精品名师归纳总结ncharn不是用单字节一般文本中的情形。它答应大量的扩展字符。此数据类型能储备4000 种字符,使用的字节空间上增加了一倍.可编辑资料 - - - 欢迎下载精品名师归纳总结可编辑资料 - - - 欢迎下载精品名师归纳总结nvarcharnnvarchar数据类型用作变长的统一编码字符型数据。此数据类型能储备4000 种字符,使用的字节空间增加了一倍.可编辑资料 - - - 欢迎下载精品名师归纳总结ntext最多可储备2 的 30 次方 -1 将近 10 亿个字符三. SQL数据操作语言1.数据查询语句1.1 查询语句的基本结构
12、SELECT-需要哪些列From-来自哪张表WHERE-可编辑修改 -可编辑资料 - - - 欢迎下载精品名师归纳总结学习资料 名师精选 - - - - - - - - - -第 6 页,共 39 页 - - - - - - - - - -可编辑资料 - - - 欢迎下载精品名师归纳总结资料word 精心总结归纳 - - - - - - - - - - - -。GROUPBYHAVINGORDERBYSELECT 子句用于指定输出的字段。FROM 子句用于指定数据的来源。WHERE 子句用于指定数据的挑选条件。GROUP BY子句用于对检索到的记录进行分组。HAVING子句用于指定组的挑选条件
13、。ORDER BY子句用于对查询的结果进行排序。以上子句中, SELECT子句和 FROM 子句是必需的,其它是可选的。1.2 单表查询1.2.1 挑选表中如干列( 1)查询指定的列SELECT列名FROM表名1-可编辑修改 -可编辑资料 - - - 欢迎下载精品名师归纳总结学习资料 名师精选 - - - - - - - - - -第 7 页,共 39 页 - - - - - - - - - -可编辑资料 - - - 欢迎下载精品名师归纳总结资料word 精心总结归纳 - - - - - - - - - - - -。例 子 :SELECT Sname,Sno FROM Student( 2)查
14、询全部列SELECT* FROM表名1例 子 :SELECT * FROM Student( 3)查询经过运算的列SELECT列名FROM表名1例 子 :SELECT Sname,yeargetdata - yearBirthdate FROM Student1.2.2 挑选表中的如干元祖( 1)排除取值相同的行: DISTINCTSELECTDISTINCTSnoFROM表名1例子 :SELECT DISTINCT Sno FROM Student( 2)查询满意条件的元祖查询条件谓 词-可编辑修改 -可编辑资料 - - - 欢迎下载精品名师归纳总结学习资料 名师精选 - - - - - -
15、 - - - -第 8 页,共 39 页 - - - - - - - - - -可编辑资料 - - - 欢迎下载精品名师归纳总结资料word 精心总结归纳 - - - - - - - - - - - -。查询条件谓 词比较= 、= 、= 、 、.=、. 、.确定范畴BETWEENAND 、 NOT BETWEENAND确定集合IN、NOT IN字符匹配LIKE、NOT LIKE空值IS NULL 、IS NOT NULL多重条件(规律谓词)AND 、ORa.比较大小例 子 :SELECT Sname FROM Student WHERE yeargetdata - yearBirthdate
16、= 80 AND Grade = 90例子 :SELECT Sno,Cno FROM SC WHERE Grade NOT BETWEEN 80 AND 90此查询等价于: SELECT Sno,Cno FROM SC WHERE Grade 90c. 确定集合IN 运算符的含义:当列中的值和集合中的某个常量值相等时,结果为True 。 NOT IN 运算符的含义:当列中的值和集合中的全部常量值 都不相等时,结果为 True 。例子 :SELECT Sno FROM Student WHERE Dept IN 信息治理系 ,运算机系 此查询等价于: SELECT Sno FROM Studen
17、t WHERE Dept = 信息治理系 OR Dept = 运算机系 例子 :SELECT Sno FROM Student WHERE Dept NOT IN 信息治理系 ,运算机系 此查询等价于: SELECT Sno FROM Student WHERE Dept .= 信息治理系 AND Dept .= 运算机系 -可编辑修改 -可编辑资料 - - - 欢迎下载精品名师归纳总结学习资料 名师精选 - - - - - - - - - -第 10 页,共 39 页 - - - - - - - - - -可编辑资料 - - - 欢迎下载精品名师归纳总结资料word 精心总结归纳 - - -
18、 - - - - - - - - -。d. 字符串匹配Like 运算符用于查找指定列中与匹配串匹配的元祖。列名NOTLIKE通配符含义_(下划线)匹配任意一个字符% (百分号)匹配 0 个或多个字符匹配 中的任意一个字符。如abcd 表示匹配abcd 其中任何一个,如是连续的,可以用- 表示不匹配 中的任意一个字符。如abcd 表示不匹配abcd 其中任何一个,如是连续的,可以用例 子 :查询姓 “张”的同学具体信息SELECT* FROMStudentWHERESnameLIKE张%查询不姓 “张”的同学具体信息-可编辑修改 -可编辑资料 - - - 欢迎下载精品名师归纳总结学习资料 名师精
19、选 - - - - - - - - - -第 11 页,共 39 页 - - - - - - - - - -可编辑资料 - - - 欢迎下载精品名师归纳总结资料word 精心总结归纳 - - - - - - - - - - - -。SELECT* FROMStudentWHERESnameNOTLIKE张%(查询姓 “张 ”、“李”的同学具体信息)SELECT* FROMStudentWHERESnameLIKE张李 %(查询名字的其次个字为“小” 或 “大”的同学具体信息)SELECT* FROMStudentWHERESnameLIKE_ 小大 %e. 涉及空值的查询空值( NULL )在
20、数据库中有特别含义,表示当前不确定或未知的值。判定是否为 NULL 时,不行用一般的比较运算符,需用IS NULL例 子 :SELECT Sno FROM Student WHERE Grade IS NULL1.2.3 对查询结果进行排序将查询结果依据指定的次序显示。ASC表示按列值 升序 排列(从上往下,值从大到小)。DESC 表示按列值 降序排列(从上往下,值从小到大) 。默认为 ASC 。ORDERBY ASC|DESC例 子 :SELECT Sno,Grade FROM SC ORDER BY Grade DESC-可编辑修改 -可编辑资料 - - - 欢迎下载精品名师归纳总结学习资
21、料 名师精选 - - - - - - - - - -第 12 页,共 39 页 - - - - - - - - - -可编辑资料 - - - 欢迎下载精品名师归纳总结资料word 精心总结归纳 - - - - - - - - - - - -。1.2.4 使用聚合函数统计数据聚合函数也称为统计函数或集合函数,作用是对一组值进行运算并返回一个统计结果。聚合函数含义COUNT*统计表中元祖的个数COUNTDISTINCT统计本列的非空列值个数SUM运算列值的和值(必需是数值型列)AVG运算列值的平均值(必需是数值型列)MAX运算列值的最大值MIN运算列值的最小值上述函数除COUNT*外,其它函数在运
22、算过程中均忽视NULL 值(统计同学总人数)SELECTCOUNT*FROMStudent-可编辑修改 -可编辑资料 - - - 欢迎下载精品名师归纳总结学习资料 名师精选 - - - - - - - - - -第 13 页,共 39 页 - - - - - - - - - -可编辑资料 - - - 欢迎下载精品名师归纳总结资料word 精心总结归纳 - - - - - - - - - - - -。(统计 “001 ”学号同学的考试平均成果)SELECTAVGGradeFROMSCWHERESno= 001(查询 “C001 ”号课程考试成果的最高分和最低分)SELECTMAXGrade最高分
23、 ,MINGrade最低分FROMSCWHERECno=C001聚合函数不能显现在WHERE子句中!1.2.5 对数据进行分组统计需要先对数据进行分组,然后再对每个组进行统计。分组子句GROUP BY 。在一个查询语句中,可以用多个列进行分组。分组子句跟在 WHERE子句的后面:GROUPBY,.nHAVING( 1)使用 GROUP BY子句(统计每门课程的选课人数,列出课程号和选课人数)-可编辑修改 -可编辑资料 - - - 欢迎下载精品名师归纳总结学习资料 名师精选 - - - - - - - - - -第 14 页,共 39 页 - - - - - - - - - -可编辑资料 - -
24、 - 欢迎下载精品名师归纳总结资料word 精心总结归纳 - - - - - - - - - - - -。SELECTCnoas课程号 , COUNTSnoas 选课人数FromSCGroupBYCno(统计每个同学的选课门数和平均成果)SELECTSno学号 , COUNT*选课门数 ,AVGGrade平均成果FromSCGroupBY Sno带 WHERE子句的分组(统计每个系的女生人数)SELECTDept,COUNT*女生人数FromStudentWhereSex=女 GroupBYDe pt( 2)使用 HAVING子句 HAVING 子句用于对分组后的统计结果再进行挑选,它的功能与
25、WHERE 子句类似,它用于组而不是单个记录。在HAVING 子句中可以使用聚合函数,但在 WHERE 子句中不能,通常与GROUP 子句一起使用。(查询选课门数超过3 门的同学的学号和选课门数)SELECTSno学号 , COUNT*选课门数 ,AVGGrade平均成果FromSCGroupBY SnoHAVINGCOUNT*3-可编辑修改 -可编辑资料 - - - 欢迎下载精品名师归纳总结学习资料 名师精选 - - - - - - - - - -第 15 页,共 39 页 - - - - - - - - - -可编辑资料 - - - 欢迎下载精品名师归纳总结资料word 精心总结归纳 -
26、- - - - - - - - - - -。( 3) WHERE、GROUP BY、HAVING的作用及执行次序WHERE 子句用于挑选 FROM 子句中指定的数据所产生的行数据。GROUP BY子句用于对经 WHERE子句挑选后的结果数据进行分组。 HAVING 子句用于对 分组后 的统计结果再进行挑选。可以分组操作之前应用的挑选条件,在WHERE子句中指定它们更有效,这样可以削减参加分组的数据行。在HAVING子句中指定的挑选条件应当是那些必需在执行分组操作之后应用的挑选条件。(查询运算机系和信息治理系每个系的同学人数)第一种:SELECTDept,COUNT*FROMStudentGRO
27、UPBYDeptHavingDeptin 运算机系 ,信息治理系 其次种:SELECTDept,COUNT*FROMStudentWHEREDeptin运算机系 ,信息治理系 G ROUPBYDept以上例子比较: 第一种是依据系分组好了之后, 只实行全部系中的两个系, 明显效率不高。而其次种是先进行 WHERE 挑选条件之后,再进行 GROUP BY 运算,显示更好。-可编辑修改 -可编辑资料 - - - 欢迎下载精品名师归纳总结学习资料 名师精选 - - - - - - - - - -第 16 页,共 39 页 - - - - - - - - - -可编辑资料 - - - 欢迎下载精品名师
28、归纳总结资料word 精心总结归纳 - - - - - - - - - - - -。1.3 多表连接查询如一个查询同时涉及到两张或以上的表,就称为连接查询。1.3.1 内连接使用内连接时, 假如两个表的相关字段满意条件,就从两个表中提取数据组成新的记录。FROM表 1 INNERJOIN表 2ON1留意:连接条件中的连接字段必需是可比的,必需是语义相同的列。(查询同学及选课的具体信息)SELECT* FROMStudentINNERJOINSCONStudent.Sno=SC.Sno(查询运算机系同学的选课情形,列出该同学的名字、所修课程号、成果) - 行挑选条件SELECTSname,Cno
29、,GradeFROMStudentINNERJOINSCONStudent.Sno= SC. SnoWHEREDept= 运算机系 (统计每个系的平均成果)- 分组的多表查询-可编辑修改 -可编辑资料 - - - 欢迎下载精品名师归纳总结学习资料 名师精选 - - - - - - - - - -第 17 页,共 39 页 - - - - - - - - - -可编辑资料 - - - 欢迎下载精品名师归纳总结资料word 精心总结归纳 - - - - - - - - - - - -。SELECTDept,AVGGradeASAverageGradeFROMStudentS INNERJOINSC
30、O NS.Sno=SC.SnoGroupBYDept(统计运算机系每个同学的选课门数、平均成果、最高成果、 最低成果) - 分组和行挑选条件的多表连接查询SELECTSno,COUNT*,AVGGrade,MAXGrade,MINGradeFROMStudentS JOI NSCONS.Sno= SC.SnoWHEREDept=运算机系 GroupBYDept1.3.2 自连接自连接 是一种特别的内连接, 相互连接的表在物理上是一张表,但在规律上可以看做是两张表。FROM表 1 AST1JOIN表 1 AST21通过为表取别名的方法, 可以让物理上的一张表在规律上成为两张表。(肯定要为表取别名
31、!)(查询与刘晨在同一个系学习的同学的姓名、所在系)SELECTS1.Sname,S1.DeptFROMStudentS1JOINStudentS2ONS1.Dept=S2.Dept- 同一个系的同学-可编辑修改 -可编辑资料 - - - 欢迎下载精品名师归纳总结学习资料 名师精选 - - - - - - - - - -第 18 页,共 39 页 - - - - - - - - - -可编辑资料 - - - 欢迎下载精品名师归纳总结资料word 精心总结归纳 - - - - - - - - - - - -。WHERES2.Sname= 刘晨 -S2 表作为查询条件ANDS1.Sname.=刘晨
32、 -S1 表作为结果表,并从中去掉刘晨 本人信息1.3.3 外连接在内连接 操作中,只有满意条件的元祖才能显现在查询结果集中。外连接 是只限制一张表中的数据必需满意条件,而另一张表的数据可以不满意 条件。FROM表 1 LEFT|RIGHTOUTERJOIN表 2 ON1LEFTOUTERJOIN 称为左外连接 ,含义是限制 表 2 中的数据必需满意条件,但不管 表 1 中的数据是否满意条件,均输出表1 中的数据。LEFTOUTERJOIN 称为右外连接 ,含义是限制 表 1 中的数据必需满意条件,但不管 表 2 中的数据是否满意条件,均输出表 2 中的数据。-可编辑修改 -可编辑资料 - -
33、 - 欢迎下载精品名师归纳总结学习资料 名师精选 - - - - - - - - - -第 19 页,共 39 页 - - - - - - - - - -可编辑资料 - - - 欢迎下载精品名师归纳总结资料word 精心总结归纳 - - - - - - - - - - - -。内连接与外连接的区分:内连接: 表 A 与表 B 进行内连接,就结果为两个表中满意条件的记录集,即C部分。外连接: 假如表 A 和表 B 进行左外连接, 就结果为记录集 A +记录集 C。假如表 A 和表 B 进行右外连接,就结果为记录集 B +记录集 C。(查询没有人选的选修课程名)SELECTCnameFROMCourseC LEFTJOINSCONC.Cno= SC.CnoWHERE SC.CnoISNULL例子解析: 假如存在部分课程为被人挑选,就必定在Course 表中有但在 SC 表中没有显现,即在进行外连接时没人选的课程在与SC 表构成的连接结果集中 ,对应的 Sno 、Cno 、Grade 列必定为空,所以只需 * 在连接后的结果中选出 *SC 表中 Sno 或 Cno 为空的元祖即可。(统计运算机系每个同学的选课门数,包括没选课的同学)
限制150内