知识点、SQL语句学习及详细总结_第1页
知识点、SQL语句学习及详细总结_第2页
知识点、SQL语句学习及详细总结_第3页
知识点、SQL语句学习及详细总结_第4页
知识点、SQL语句学习及详细总结_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 .数据库概述和编制1 .系统数据库安装SQL SERVER后,将自动安装五个系统数据库,以确保系统正常运行(1) master :记录SQL server实例的所有系统级别的消息。 这包括整个实例的元数据,包括登录帐户、端点、链接服务器和系统配置设置。(2)msdb:sqlserver代理服务调度警报和作业,记录操作者的使用,并保存警报、作业、操作者等有关调度的信息。 (备份还原时)(3) model :在SQL server实例中制作的所有数据库的模板。(4)tempdb :保存临时对象和中间结果集,为数据库的配置等操作提供临时工作区的临时数据库。 (每次启动时重新创建)(5) resource :包含SQL server的所有系统对象的只读数据库。 (隐藏数据库)2 .数据库的构成2.1数据文件(1)主数据文件:扩展名为. mdf,每个数据库只有一个。(2)二次数据文件:扩展名为. ndf,可以是多个。2.2日志文件扩展名为. ldf,保存恢复数据库的所有日志信息。2.3数据的存储分配(1)数据文件和日志文件的默认位置是:programme文件 Microsoft SQL serverMSSQL.1MSSQLdata文件夹。(2)数据的存储分配单位是数据页面。 一页上的表是8KB的连续磁盘空间。(3)页是存储数据的最小区域的分配单位,页的大小确定数据库表中一行的数据的最大大小。3. SQL语句数据库操作(一)建立数据库;createdatabase_name2 .基于SQL的结构查询语言(SQL )是用户使用关系数据库的通用语言。1. SQL功能概述2 .系统提供的数据类型2.1数值数据类型数据类型说明存储空间bitbit数据类型为整数,其值仅为0、1或null。 此数据类型仅用于存储两个可能值的数据,例如“是”或“否”、“True”或“False”、“On”或“Off”(一种节省空间的数据类型,应尽可能多地使用以满足您的需要)。 中所述情节,对概念设计中的量体体积进行分析1字节tinyint公司tinyint数据类型可以包含0到255之间的整数。 如果只保存有限数量的数字,则此选项非常有用。1字节smallint公司smallint数据类型可以包含从- 2的15次方(-32768 )到2的15次方(32767 )的整数。 此数据类型用于存储数字类型的数据,该数字类型限于特定范围。 (如果tinyint类型太单调,无法满足您的需求,请考虑使用smallint类型。 因为这种类型相对安全,不能接受恶意脚本内容的嵌入。 中所述情节,对概念设计中的量体体积进行分析2字节intint数据类型可以包含从- 2的31次方(-2147483648 )到2的31次方(2147483 647 )的整数。 此数据类型可用于存储在数据库中的大多数数字类型的数据4字节numeric(p,s )或decimal(p,s )数据类型可用于存储-10的38次方-1到10的38次方-1的固定精度和范围的数值类型数据。 使用此数据类型时,必须指定范围和精度。 范围是小数点左右可以记忆的数字的总位数。 精度是存储在小数点右侧的数字位数最多17字节2.2常规编码字符串类型数据类型说明存储空间char(n )char数据类型用于存储指定长度的固定长度非统一编码类型的数据,其中n表示字符串的最大长度,值范围为1到18000 (如果实际字符串控件小于n,系统将自动在后面添加空格)n字节_ _ _ _ _ _ _ _ _varchar(n )可变长度字符串类型,其中n表示字符串的最大长度,值范围从1到18000。字符数为2字节的开销文本text数据类型用于存储大量的非统一编码字符数据。 该数据类型最多可以是231-1亿字符或20亿字符.每个字符一个字节char和varchar之间的区别:如果列的数据类型为varchar(20 ),则当字符串 Jone 存在时,它只占用4个字节,而char(20 )将占用空格。 因此,varchar类型比char类型节省空间,但开销较大,处理速度也较慢。 因此,由于n的值比较小(小于4 ),所以最好使用char型。2.3统一代码字符串类型(Unicode )数据类型说明存储空间nchar(n )nchar数据类型用于存储固定长度的均匀编码字符类型数据。 集成代码以双字节结构(对于普通文本)存储每个字符,而不是单字节。 这样可以使用大量的扩展字符。 这个数据类型可以容纳4000种文字,使用的字节空间加倍了2n字节.nvarchar(n )nvarchar数据类型用作可变长度的统一编码字符类型数据。 这个数据类型可以容纳4000种文字,使用的字节空间加倍了字符数为2字节的开销ntext最多可容纳2的30次方接近1亿个字符每个字符2字节3.SQL数据操作语言1 .数据查询语句1.1查询语句的基本结构选择目标列名序列-所需的列From表名称-来自哪个表WHERE行选择条件按组列出的列HAVING组ORDER BY排序标准列SELECT子句用于指定输出的字段使用FROM子句指定数据的源使用WHERE子句指定数据选择条件GROUP BY子句用于对检索到的记录进行分组HAVING子句指定组的选择条件ORDER BY子句用于对查询的结果进行排序在以上子句中,SELECT和FROM子句是必需的,其他子句是可选的。1.2单表查询1.2.1选择表中的几列(1)查询指定的列SELECT列名FROM表名1范例: SELECT Sname,Sno FROM Student(2)查询所有列SELECT * FROM表名称1范例: SELECT * FROM Student(3)查询计算出的列SELECT列名FROM表名1示例: SELECT Sname,year (get data () )-year (birth date ) from student1.2.2选择表格的几个元祖(1)删除相同值的行: DISTINCTSELECT DISTINCT Sno FROM表名1范例:从student选取目的地(2)询问符合条件的元祖查询条件谓语比较=、=、=、=、决定范围BETWEENAND,NOT BETWEENAND决定集合IN,NOT IN字符匹配LIKE,NOT LIKE空值IS NULL,IS NOT NULL多条件(逻辑谓词)AND,ORa .比较尺寸示例: selectssnamefromstudentwhereyear (get data () )-year (birth date ) 20b .确定范围BETWEENAND和NOT BETWEENAND用于搜索属性值是否在指定范围内。列名|表达式| NOT BETWEEN下限值AND上限值1BETWEENAND表示的范围在上限值和下限值之间(包括边界值),为true。NOT BETWEENAND表示的范围在上限值和下限值之间(边界值除外),而是true。 (在判定值为边界值的情况下为false )示例: SELECT Sno,cnofromscwheregradebetween 80和90此查询对应于SELECT Sno,cnoosfromscwheregrade=80 and grade=90示例: SELECT Sno,cnofromscwheregradenotbetween 80和90此查询等效于SELECT Sno,cnoosfromscwheregrade 80 or grade 90c .确定收藏IN运算符的含义:如果列中的值等于集合中的常量值,则结果为True。NOT IN运算符的含义:如果列的值不等于集合中的所有常量值,则结果为True。示例: selectsonfromstudentwheredepin (信息管理系统、计算机系统)此查询等效于SELECT Sno FROM Student WHERE Dept=信息管理系统OR Dept=计算机系统)示例: selectsonfromstudentwheredepotin (信息管理系统、计算机系统)此查询是从SELECT Sno FROM Student WHERE Dept!=信息管理系统AND Dept!=计算机系统)d .字符串匹配Like运算符用于查找指定列的匹配祖先。列名NOT LIKE匹配字符串通配符意思_ (下划线)匹配任意一个字符% (百分比符号)匹配至少0个字符与中的任何字元相符。 abcd表示符合其中一个abcd,如果是连续的,则可以用-表示,如a-d与中的任何字元不相符。 指示与其中一个abcd不匹配,例如abcd。 如果是连续的,则可以用-表示,如a-d例如:(询问姓“张”的学生详情)select * fromstudentwheresnamelike张%(询问姓氏不是“张”的学生详情)select * fromstudentwheresnamenotlike张%(询问姓“张”、“李”的学生详情)select * fromstudentwheresnamelike 张李%(查询名字第二个单词为“小”或“大”的学生详细信息)select * fromstudentwheresnamelike _ 大小%e .有关空值的查询NULL值(NULL )在数据库中具有特殊含义,表示当前未知或未知的值。 要确定是否为NULL,常规比较运算符不可用,并且必须为IS NULL示例: selectsonfromstudentwheregradeisnull1.2.3对查询结果进行排序按指定顺序显示查询结果。 ASC表示列值按升序(从上到下,值从大到小)排列。 DESC表示列值按降序排列(从上到下、从小到大)。 默认值为ASC。ORDER BY列名ASC|DESC例如: SELECT Sno,Grade FROM SC ORDER BY Grade DESC1.2.4使用聚合函数的统计聚合函数(也称为统计函数或集合函数)用于计算一组值并返回统计结果。聚合函数意思COUNT(* )统计表中元祖的数量COUNT(DISTINCT列名)合计此列中非null列值的个数SUM (列名)计算列值的值和值(必须是数字类型的列)AVG (列名)计算列值的平均值(必须为数字类型的列)MAX (列名)计算列值的最大值MIN (列名)计算列值的最小值除COUNT(* )之外,上述函数在计算时忽略空值(统计学生总数)SELECT COUNT(*) FROM Student(统计“001”学号学生的考试平均成绩)select avg (grade ) fromscwheresno=001(查询课程“C001”的考试成绩的最高点和最低点)SELECT MAX(Grade )最高点,MIN(Grade )最低点FROM SC WHERE Cno=C001聚合函数不能显示在WHERE子句中1.2.5将数据分组汇总在统计每个组之前,必须对数据进行分组。 分组子句GROUP BY。 查询语句允许对多列进行分组。分组子句跟在WHERE子句之后GROUP BY组基于列, nHAVING组的过滤条件(使用GROUP BY子句(统计各课程的选择人数,列出课程编号和选择人数)SELECT Cno as课程编号,COUNT(Sno) as选择人数From SC Group BY Cno(统计每个学生的选拔人数和平均成绩)SELECT Sno学号,COUNT(* )选择项数,AVG(Grade )平均成绩From SC Group BY Sno使用WHERE子句进行分组(统计各系的女生数)SELECT Dept,COUNT(* )女子数From Student Where Sex=女子组bydept(使用HAVING子句HAVING子句用于过滤分组的统计结果。 与WHERE子句的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论