大学SQLServer复习资料辛苦整理.docx

上传人:b****5 文档编号:6218810 上传时间:2023-01-04 格式:DOCX 页数:69 大小:53.18KB
下载 相关 举报
大学SQLServer复习资料辛苦整理.docx_第1页
第1页 / 共69页
大学SQLServer复习资料辛苦整理.docx_第2页
第2页 / 共69页
大学SQLServer复习资料辛苦整理.docx_第3页
第3页 / 共69页
大学SQLServer复习资料辛苦整理.docx_第4页
第4页 / 共69页
大学SQLServer复习资料辛苦整理.docx_第5页
第5页 / 共69页
点击查看更多>>
下载资源
资源描述

大学SQLServer复习资料辛苦整理.docx

《大学SQLServer复习资料辛苦整理.docx》由会员分享,可在线阅读,更多相关《大学SQLServer复习资料辛苦整理.docx(69页珍藏版)》请在冰豆网上搜索。

大学SQLServer复习资料辛苦整理.docx

大学SQLServer复习资料辛苦整理

第一章

一、SQLServer2000版本:

1.企业版(具备所有功能)

---作为生产数据库服务器使用。

支持SQLServer2000中的所有可用功能。

2.个人版(安装个人数据库)

---一般供移动的用户使用。

3.开发版(适用于我们安装,支持企业版的所有功能)

---供程序员用来开发将SQLServer2000用作数据存储的应用程序。

4.标准版(适用于简洁开发)。

---作为小工作组或部门的数据库服务器使用。

注意:

企业版和标准版只能安装在服务器版本的操作系统中,如(2000Server、NT4.0Server等)。

二、SQLServer2000安装组件

1.安装数据库服务器(我们选择该组件)

---启动SQLSERVER安装程序。

2.安装AnalysisServices

---在处理OLAP(联机分析处理)多维数据集的计算机上安装AnalysisServices。

3.安装EnglishQuery

---可通过英语查询数据库。

三、目录路径:

1.\ProgramFiles\MicrosoftSQLServer\MSSQL\Binn

---置放程序文件。

包含程序文件及通常不会更改的文件,需要的空间不大。

2.\ProgramFiles\MicrosoftSQLServer\MSSQL\Data

---置放数据文件。

包含数据库和日志文件、系统日志、备份数据、复制数据所在的目录文件夹,需要的空间大。

3.\ProgramFiles\MicrosoftSQLServer\80

---置放一些共享工具和com组件。

比如联机丛书、开发工具等组件。

四、自带的系统和示例数据库

1.系统数据库

a.master数据库

---记录SQLServer系统的所有系统级别信息。

它记录所有的登录帐户和系统配置设置。

b.model数据库

---用作在系统上创建的所有数据库的模板。

充当所有数据库的原始模板

c.tempdb数据库

---保存所有的临时表和临时存储过程。

在SQLServer每次启动时都会重新创建该数据库,也就说该数据库在每次启动服务器时是没有任何数据的,是干净的。

d.msdb数据库

---供SQLServer代理程序调度警报和作业以及记录操作员时使用。

2.示例数据库

a.pubs数据库

---以一个图书出版公司为模型。

可以演示SQLServer数据库中的许多操作。

b.NorthwindTraders数据库

---包含一个名为NorthwindTraders的虚构公司的销售数据,该公司从事世界各地的特产食品进出口贸易。

 

五、各种主要SQLServer工具

1.查询分析器

---创建查询和其它SQL脚本,并针对SQLServer数据库执行它们等功能。

2.企业管理器

---管理和配置SQLServer,复制、导入、导出和转换数据等所有功能。

3.服务管理器

---启动、关闭服务器。

4.事件探查器

---查找并诊断有问题、运行慢的查询,监视SQLServer的性能以精细地调整工作负荷。

5.导入和导出数据

6.联机丛书

六、SQLServer2000的特性

1.Internet集成

---SQLServer2000程序设计模型与WindowsDNA构架集成,用以开发Web应用程序。

2.可伸缩性和可用性

---同一个数据库引擎可以在不同的平台上使用

3.企业级数据库功能

4.易于安装、部署和使用

5.数据仓库

---析取和分析汇总数据以进行联机分析处理(OLAP)

*********************************************************

第二章

结构化查询语言(SQL---StructuredQueryLanguage):

通过SQL我们可以与数据库交互(访问、修改、删除数据等操作),MSSQLServer2000在SQL-92基础上加入了一些特有的性质,称之为Transact-SQL(T-SQL)。

(SQL是由国际标准化组织(ISO)和美国国家标准学会(ANSI)发布的标准的主题)

一、T-SQL数据类型:

1.字符串

a.char---固定长度的非Unicode字符数据,最大长度为8,000个字符

b.varchar---可变长度的非Unicode数据,最长为8,000个字符。

c.text---可变长度的非Unicode数据,最大长度为2^31-1(2,147,483,647)个字符。

2.Unicode字符串

a.nchar---固定长度的Unicode字符数据,最大长度为4,000个字符

b.nvarchar

c.ntext

3.整数

a.bigint---从-2^63(-9223372036854775808)到2^63-1(9223372036854775807)的整型数据(所有数字)。

b.int---从-2^31(-2,147,483,648)到2^31-1(2,147,483,647)的整型数据(所有数字)。

c.smallint---从-2^15(-32,768)到2^15-1(32,767)的整数数据。

d.tinyint---从0到255的整数数据。

e.bit---1或0的整数数据

f.decimal和numeric---从-10^38+1到10^38–1的固定精度和小数位的数字数据。

g.money---货币数据值介于-2^63(-922,337,203,685,477.5808)与2^63-1(+922,337,203,685,477.5807)之间,精确到货币单位的千分之十。

h.smallmoney---货币数据值介于-214,748.3648与+214,748.3647之间,精确到货币单位的千分之十。

4.浮点精度数字

a.float---从-1.79E+308到1.79E+308的浮点精度数字。

b.real---从-3.40E+38到3.40E+38的浮点精度数字。

5.日期

a.datetime---从1753年1月1日到9999年12月31日的日期和时间数据,精确到百分之三秒(或3.33毫秒)。

b.smalldatetime---从1900年1月1日到2079年6月6日的日期和时间数据,精确到分钟。

6.二进制字符串

a.binary---固定长度的二进制数据,其最大长度为8,000个字节。

b.varbinary---可变长度的二进制数据,其最大长度为8,000个字节。

c.image---可变长度的二进制数据,其最大长度为2^31-1(2,147,483,647)个字节。

7.其它

a.timestamp---数据库范围的唯一数字,每次更新行时也进行更新。

b.sql_variant---种存储SQLServer支持的各种数据类型(text、ntext、timestamp和sql_variant除外)值的数据类型。

c.cursor---游标的引用。

二、SQL语句:

1.DML

---SQL语句的子集,用于检索和操作数据。

2.DCL

---用于控制对数据库对象的权限的SQL语句的子集。

使用GRANT和REVOKE语句来控制权限

3.DDL

---一种语言,通常是数据库管理系统的一部分,用于定义数据库的所有特性和属性,尤其是行布局、列定义、键列(有时是选键方法)、文件位置和存储策略。

DQL

三、DML:

1.Select子句

用于将数据返回给应用程序或另一个Transact-SQL语句、或者用以填充游标的Transact-SQL语句。

SELECT语句返回一个表格格式的结果集,它通常由从一个或多个表中析取的数据组成。

语法:

SELECT[ALL|DISTINCT]select_column_list

[INTO[new_table_name]]

[FROM{table_name|view_name}[(optimizer_hints)][[,{table_name2|view_name2}[(optimizer_hints)]

[WHEREclause]

[GROUPBYclause][HAVINGclause]

[ORDERBYclause][COMPUTEclause]

[FORBROWSE]

简单语法:

SELECTselect_column_list

[FROM{table_name}]

(所有例子及练习均使用pubs数据库)

例1:

检索Shippers表中的所有书籍信息:

SELECT*FROMShippers

“*”代表所有的表字段,即所有列。

例2:

检索所有作者的姓:

(authorstable)

SELECTau_lnameFROMauthors

可以在SELECT之后接我们所要查找的所有作者的姓字段。

例3:

检索所有作者的姓和名:

(authorstable)

SELECTau_lname,au_fnameFROMauthors

可以得知,在SELECT之后我们可以接一个到多个表字段(列)。

练习:

1.打印所有员工的职位ID。

(employeetable)

2.打印所有出版图书的种类、标题、发行日期。

(titlestable)

 

例4:

检索所有作者的姓、名,并且以以下格式显示:

作者姓

作者名

...

...

...

...

分析:

通过上面的学习,我们得知,显示的结果表格的列名都是默认的取查询表的对应列名。

但我们发现,为了简洁方便,我们一般将部分表列名缩写,比如作者姓---au_lname,可是对客户来说就不怎么友好了,客户可能希望以上格式的结果,因此,SQL提供了一种“用户自定义标题”的功能,从而实现客户友好化。

解答1:

SELECTau_lname'作者姓',au_fname'作者名'FROMauthors

解答2:

SELECT'作者姓'=au_lname,'作者名'=au_fnameFROMauthors

解答3:

SELECTau_lnameas'作者姓',au_fnameas'作者名'FROMauthors

 

例5:

需求1:

检索所有员工详细信息。

需求2:

检索所有名为’Helen’的员工详细信息(如员工ID、职位ID、受雇日期等)。

解答1:

通过以上所学,我们可以很快得出解决方案:

SELECT*FROMemployee

解答2:

这是一个带条件的需求了,客户只想看到名为’Helen’的员工信息,也就是说其余的员工信息不是他所关心的,光靠以上所学我们是满足不了客户的需求的,SQL提供了带条件查询的解决方案:

SELECTlnamefromemployee

WHEREfname=‘Helen’

WHERE子句语法:

SELECTselect_column_list

[FROM{table_name}]

[WHERE]

该子句用于返回满足搜索条件的特定行。

 

例6:

检索员工ID为’F-C16315M’的员工的职位ID以及雇用日期。

解答:

SELECTjob_id,hire_dateFROMemployee

WHEREemp_id=‘F-C16315M’

 

练习:

1.按以下格式打印发货人的相关信息:

发货人ID

公司名称

联系电话

...

...

...

2.打印订单ID为’10253’的订单中订购的所有产品ID及每种产品数量。

*********************************************************

第三章

一、算术运算符:

可以在数据类型为数字的列或者数字常量上进行加、减、乘、除、求模。

1.+(加)

两个数相加。

这个加法算术运算符也可以将一个以天为单位的数字加到日期中。

例1:

需求:

计算客户可订购的总单元数

解答:

useNorthwind

SELECTProductName,UnitsInStock+UnitsOnOrder

FROMProducts

例2:

需求:

打印订单号为’10248’的订单签订日期后10天的具体日期

解答:

useNorthwind

SELECTorderdateas‘10天之前日期’,

orderdate+10as’10天之后日期’

FROMorders

WHEREOrderID=‘10248’

2.-(减)

两个数相减。

该减法算术运算符也可以从日期中减去一个以天数为单位数值。

3.*(乘)

例1:

需求:

检索现代食谱图书的标识号和价格,并将价格乘以1.15。

解答:

USEpubs

SELECTtitle_id,price*1.15ASNewPrice

FROMtitles

WHEREtype='mod_cook'

4./(除)

例:

需求:

打印编写商务图书的作者应得的版税

解答:

USEpubs

SELECT((ytd_sales*price)*royalty)/100AS'RoyaltyAmount'

FROMtitles

WHEREtype='business'

5.%(求模)

模是两个整数相除后剩余的整数。

例:

SELECT20%6结果为2

SELECT20%2结果为0

运算符优先级:

优先级分别为先乘(*),除(/),求模(%),后为减(-)和加(+)

二、赋值运算符:

‘=’

例:

USENorthwind

GO

SELECTFirstColumnHeading='xyz',

SecondColumnHeading=ProductID

FROMProducts

GO

请大家预测一下结果?

三、比较运算符:

测试两个表达式是否相同。

一般用于WHERE子句中。

=,>,<,<>,>=,<=

例:

需求:

检索折扣大于10的所有折扣类型。

解答:

SELECTdiscounttype

FROMdiscounts

WHEREdiscount>10

四、逻辑运算符:

多个查找条件可以通过用以下的逻辑运算符的结合来做:

OR当任何一个指定查找条件是真时返回结果

trueorture返回true

trueorfalse返回true

falseorfalse返回false

两个条件之一成立。

例1:

需求:

检索类型为商业书籍或心理学书籍的书名

解答:

SELECTtitle,type

FROMtitles

WHEREtype='business'ORtype='psychology'

例2:

需求:

检索标题ID为’BU2075’或价格大于20的书名。

解答:

SELECTtitle

FROMtitles

WHEREtitle_id=‘BU2075’ORprice>20

 

AND当所有指定的查找条件是真时返回结果

trueorture返回true

trueorfalse返回false

falseorfalse返回false

两个条件必须同时成立。

例:

需求:

检索标题ID为’BU2075’且价格大于20的书名。

解答:

SELECTtitle

FROMtitles

WHEREtitle_id=‘BU2075’ANDprice>20

请大家预测一下结果。

 

NOT否定其后的表达式

反转搜索条件的结果

例:

需求:

检索除德国出版商以外的其余出版商的名称。

解答:

SELECTpub_name,country

FROMpublishers

WHERENOT(country=‘Germany’)

 

五、范围运算符:

1.between,notbetween

语法:

test_expression[NOT]BETWEENbegin_expressionANDend_expression

例1:

需求:

检索年度至今单位销售额为4095到12000之间的书标题ID。

 

解答:

SELECTtitle_id,ytd_sales

FROMtitles

WHEREytd_salesBETWEEN4095AND12000

请大家思考以下语句执行结果:

SELECTtitle_id,ytd_sales

FROMtitles

WHEREytd_sales>4095ANDytd_sales<12000

分析以下语句执行结果:

SELECTtitle_id,ytd_sales

FROMtitles

WHEREytd_salesNOTBETWEEN4095AND12000

 

六、列表运算符:

确定给定的值是否与子查询或列表中的值相匹配。

如果匹配则显示匹配的结果集。

例:

需求:

列出所有居住在加利福尼亚、印地安纳或马里兰州的作者。

解答1:

SELECTau_lname,state

FROMauthors

WHEREstateIN('CA','IN','MD')

解答2:

大家思考!

NOTIN正好相反。

 

七、串联运算符:

可以通过’+’运算符将字符串串联起来。

例:

需求:

打印完整的作者姓名,并按特定格式显示(姓名),比如姓为joe,名为zhou,则应显示命名格式为’joezhou’。

解答:

SELECT(au_lname+‘’+au_fname)‘name’

FROMauthors

 

上机练习:

1.打印姓名为’SmithAnn’的员工信息。

(pubs--employee)

2.查找姓为Carson、Carsen、Karson或Karsen的作者所在的行。

(使用通配符)

3.查找所有员工的ID(pubs--employee)

4.打印食品种类的ID、名称、描述。

(northwind--Categories)

5.打印所有居住在西雅图的客户的电话号码。

(northwind--customers)

6.打印所有装运所在城市为France,且运费大于30的订单详细资料。

(northwind--orders)

7.打印产品ID为1到10之间的所有产品名称。

(northwind--products)

8.打印产品供应商ID为2或者产品种类ID为2的产品名称。

(northwind--products)

9.检索订单日期为1996年7月19日的所有订单。

(northwind--orders)

10.打印产品单价为12.75、16.75、20的所有产品名称。

(northwind--products)

11.按以下格式检索:

出版者

详细地址

其中,地址格式应为:

国家|州|城市(pubs--publishers)

 

*********************************************************

 

第四章

一、通配符:

通过关键字LIKE来查找带通配符机制的字符串。

LIKE关键字用来选择那些与字符串的指定部分匹配的行

SQLSERVER2000有以下通配符:

通配符

描述

%

包含零个或更多字符的任意字符串

_

任何单个字符

[]

指定范围([a-f])或集合([abcdef])中的任何单个字符

[^]

不属于指定范围([a-f])或集合([abcdef])的任何单个字符。

例1:

查找出版商名称以字符串’books’结束的所有出版商信息。

解答:

selectpub_namefrompublishers

wherepub_namelike'%books'

思考:

如果改成’%books%’,会返回什么结果?

思考:

查找出版商名称以字符串’books’开始的所有出版商信息。

例2:

查找出版商名称第二个字符为’i’的所有出版商信息。

解答:

selectpub_namefrompublishers

wherepub_namelike'_i%'

思考:

如果改成’_i_’会返回什么结果?

 

例3:

查找出版商名称包含字符’a’或’b’或’c’的所有出版商信息。

解答:

selectpub_namefrompublishers

wherepub_namelike'%[a-c]%'

思考:

’%[abc]%’,结果

思考:

’%[^abc]%’,结果

 

二、ISNULL和ISNOTNULL关键字:

在SQL中,NULL是一个未知值,或者是一个尚未提供数据的值。

注意:

NULL和零意义不相同

例:

查找stor_id为NULL的所有折扣类型

解答:

SELECT*

FROMdiscounts

WHEREstor_idISNULL

ISNOTNULL意义和ISNULL相反。

ISNULL系统函数---使用指定的替换值替换NULL

语法:

ISNULL(check_expression,replacement_value)

例:

检索书名、类型及价格,当价格为null时应显示0.00。

解答:

SELECTtitleASTitle,typeASType,

ISNULL(price,0.00)ASPrice

FROMtitles

 

三、ORDERBY关键字:

指定结果集的排序。

语法:

SELECTselect_column_list

FROMtable_name

[ORDERBYcolumn_name|select_list_number|expression[ASC|DESC][,column_name|select_list_number|expression

[ASC|DESC]...]

其中ASC代表升序(缺省值),从最低值到最高值对指定列中的值进行排序。

DESC代表降序,从最高值到最

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 其它模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1