sqlserver入门随堂笔记.docx
《sqlserver入门随堂笔记.docx》由会员分享,可在线阅读,更多相关《sqlserver入门随堂笔记.docx(15页珍藏版)》请在冰豆网上搜索。
sqlserver入门随堂笔记
sqlserver概述及应用
一.sqlserver常用工具介绍:
1.企业管理器:
*sqlserver大管家,针对于数据库的所有内容做控制管理
*包括数据库建立,数据表的建立,数据添加删除修改查看等
*数据库安全管理,数据库访问控制等。
2.查询分析器:
可执行任何的sql语句,完成查询、添加、删除、修改等操作,并且可以通过语句控制管理
数据库以及数据表等
3.服务管理器:
可以针对于sqlserver服务以及sqlserveragent服务进行控制管理,如
启动某一服务或停止某一服务。
4.导入与导出数据:
将非sqlserver数据库中的数据,通过该工具与sqlserver数据库实现转化。
5.事件探查器:
探查器可以随时监控数据库服务器所发生的所有事件。
包括哪个用户对哪个数据库及对象做出
何种操作。
探查器在工作时,会占用大量内存及cpu资源,因此建议不要长期运行,否则会影响服务器性能。
二.sqlserver目录:
*sqlserver程序目录C:
\ProgramFiles\MicrosoftSQLServer\MSSQL
*sqlserver数据库目录C:
\ProgramFiles\MicrosoftSQLServer\MSSQL\Data
三.在企业管理器中默认的六个数据库:
[mastertempdbmodelmsdbnorthwindpubs]
1.master数据库:
sqlserver核心数据库,用于保存整个sqlserver的所有配置,包括用户帐号、密码、
所有的数据库名称、字段、安全配置、以及与数据库有关的所有sql语句代码。
master数据库的各种操作,均由sqlserver本身自行完成,用户不允许对其数据库做操作。
2.tempdb数据库:
临时数据库,用于临时存放数据,如针对数据库进行建立索引,或者复制数据库以及创建数据库
时,都需要借助临时数据库,进行数据临时存放.
临时数据库,不允许做对应的操作,而是由sqlserver自行管理.
3.model数据库:
(模板数据库)
在建立一个新数据库时,必须由模板数据库提供最基本的结构以及基本的数据,并将这些
内容复制到新数据库中.因此一个新的数据库结构与模板数据库结构是一致.
4.msdb数据库:
(分布式数据库)
sqlserver具备监控数据库服务器的功能,而所有的监控记录会保存在msdb数据库中.
5.northwind与pubs数据库:
这两个数据库是sqlserver提供的实例,与系统无关.
四.sqlserver中数据库的对象:
[每建立一个数据库后,该数据库就自带多个对象]
1.表=>又称为数据表,数据库中所有的数据,均存放于数据表中.又分为系统数据表与用户数据表
2.关系图=>用于指定两个数据表或多个数据表之间的关系.比如学员信息表与学员成绩表之间,应
该按照学员编号进行关联.
3.视图=>一段select代码,用于查询指定的数据,只是将这一段代码用一个特定的名称表示而已
4.存储过程=>一段sql代码,用于完成sqlserver某项特定功能,同时也可以由用户自行编写
新的存储过程.(存储过程即sqlserver中的子程序)
5.规则=>为数据表中的各字段添加指定的条件,以限制各字段数据输入的准确性.
6.默认=>当为数据表添加数据时,若没有为指定字段添加数据,则该字段会采用默认的数据填充.
7.用户=>针对于不同的数据库,指定不同的管理员,或者设置指定的用户允许访问特定的数据库以
及特定的数据库对象.
8.角色=>相当于服务器系统中的组,不同的角色有不同的权限,将用户添加到指定的角色,则该
用户就与该角色有相同的权限.
9.自定义类型=>用户自行创建对应的数据类型,可以将规则与默认也添加到自定义类型中
10.自定义函数=>用户自行创建函数,建立特定功能的函数.
五.建立数据库的方法:
1.认识数据库对应的文件:
MDF=>数据库的主文件,每个数据库必须有该文件,而且只有一个.
NDF=>当数据库过大时,会导致主数据库文件过大,影响数据库的存取速度,因此可以
增加辅数据库文件,用于分摊整个数据库的数据,提高访问速度.
辅数据库文件允许存在多个,也可以没有.
LDF=>事务文件,用于存放数据库的运行情况以及错误信息等.
2.建立数据库方法:
在企业管理器中,选择"数据库"一项,右键打开选择新建数据库.
指出数据库的名称,是否要采用辅数据库文件,以及数据库的容量增长方式.
还有数据库的最大值.
六.创建数据表:
1.数据表中各字段的数据类型:
[字符型,数字型,日期型,货币型,二进制类型,位类型,国际字符类型]
<1>.字符型:
*char型==>定长型字符串类型最大长度为8000
*varchar型==>变长型字符串类型最大长度为8000
*text型==>文本型数据类型(变长)最大长度为2^31
<2>.数字型:
*bigint型=>大整数类型-2^31~2^31
*int型=>整数类型-2^16~2^16
*smallint型=>小整数类型-32768~32767
*tinyint型=>微整数类型0~255
*float型=>浮点型(小数)
*real型=>实型(小数)
*numeric型=>数值型(小数)
<3>.日期型:
*datetime型=>日期时间型1753-1-1~9999-12-31,精确到1/300秒
*smalldatetime型=>小日期时间型1900-1-1~2079-6-6,精确到分钟
<4>.货币型:
*money型=>-2^63~2^63,精确到万分位
*smallmoney型-2^31~2^31,精确到万分位
<5>.二进制数据类型
*binary型=>定长二进制类型,最大长度为8000
*varbinary型=>变长二进制类型,最大长度为8000
*image类型=>变长大二进制,最大长度为2^31
<6>.bit位类型:
位类型,即数据只允许是0或1两个.
当输入0以外的其他值时,均看作1
bit类型,通常用作逻辑类型,表示是/否
<7>.unicode类型
[用于国际上非英语语言]
*nchar型=>定长型最多为4000个字符
*nvarchar型=>变长型最多为4000个字符
*ntext型=>变长型,最多为2^30个字符
2.建立数据表的方法:
打开企业管理器|数据库|表,右键打开,选择"新建数据表"
在窗口中,指出各字段,以及字段对应的数据类型
注意:
数据表中,应指定一个具体的字段为主键
对于编号的字段,可以设定为自动编号(标识)
对于字段不允许为空的,应该选中"不允许空"
sql语句具体用法
一.sql介绍:
sql称为结构化查询语言,是所有关系型数据库的标准.
该语言查询及操作时,完全面向结果,即用户只需要提出需求,则
sql语句就可以立刻返回对应的结果,而具体的过程则无需关心.
sqlserver中所提供的查询分析器,可以执行各种sql语句,同时查询分析器还具备
采用sql语句实现代码编写,即sqlserver二次开发.
sqlserver所提供的sql语句,称为T-sql或交互式sql语句.
sqlserver可以提供select语句,delete语句,update语句,insert语句等
二.select语句用法:
1.采用select语句,查询整个数据表
select*fromxyxx
注意:
*表示所有字段
2.查询指定的数据表字段
selectxh,xm,xb,nl,zyfromxyxx
注意:
只查询五个字段的数据
3.查询指定的数据表字段,并且别名表示字段名
selectxhas学号,xmas姓名,zyas专业fromxyxx
注意:
查询了三个字段,用学号表示xh,用姓名表示xm,用专业表示zy
4.查询数据表的前N条数据记录
selecttop10*fromxyxx
注意:
top10表示取出数据表的前10条记录
selecttop10*fromxyxxorderbyshfdesc
5.显示某一个字段中不重复的所有数据:
[显示出全班的同学分别来自哪些地区]
selectdistinct字段名fromxyxx
selectdistinctdzfromxyxx
6.select语句中的统计函数:
[相关的统计函数包括sumavgmaxmincount]
selectavg(yw)as语文平均分fromxycj
selectcount(yw)as语文及格人数fromxycjwhereyw>=60
selectcount(xh)as全班总人数fromxycj
7.按条件进行数据查询:
<1>.条件语句的格式:
select*fromxyxxwhere具体的条件
如select*fromxyxxwhereshf<=500
select*fromxyxxwherezy='一年网络'andxb=1
[找出专业为一年网络并且是男同学]
<2>.采用关键字in来表示条件所在的具体范围:
select*fromxyxxwhere具体条件
如select*fromxyxxwherexhin(95003,95007,95008,95010)
说明:
(95003,95007,95008,95010)是一个集合.
而条件是判定xh在上述的集合中.
<3>.采用between制定条件所在的范围:
如select*fromxyxxwherenlbetween16and33
其中between表示在....之间
上述的语句,表示查nl字段在16到33之间的数据记录
<4>.采用模糊查询方式,进行数据搜索:
select*fromxyxxwheredzlike'%西%'
其中%表示任意的字符
like表示相似类似
select*fromxxwherexwlike'%汽车%'
找出xw字段含有汽车两字的.
8.数据排序:
按照某一个字段的升序或者降序进行排列数据记录
select*fromxyxxorderby字段排序方式
说明:
order排序
by按照
字段,即为要排序的依据
排序方式asc-->升序,也是默认的方式
desc-->降序
select*fromxyxxorderbyshfdesc
select*fromxyxxorderbydzdesc,xhdesc==>如果第一个排序字段相同,则采用第二个字段排序.
9.字段组合:
select*,(yw+sx+yy+jsj+ty)as总分,(yw+sx+yy+jsj+ty)/5as平均分
fromxycjwhere(yw+sx+yy+jsj+ty)>=400orderby总分desc
例selectxhfromxycjwhere(yw+sx+yy+jsj+ty)>=400
10.数据分组查询:
[按照指定的字段进行分类]
select分组的字段,统计函数from数据表groupby分组字段
如selectxb,avg(shf)fromxyxxgroupbyxb==>按性别进行分组,统计每组的平均生活费
selectdz,avg(shf)fromxyxxgroupbydz==>按地区进行分组,统计每组的平均生活费
11.分类汇总数据:
select*fromxyxxorderbyxbcomputeavg(shf)byxb
分类汇总,即按照某一个字段进行分类,同时将每一种进行汇总统计
[如按地区进行分类,同时将每个地区的学员的平均年龄求解]
[分类汇总时,一定要注意在分类时一定要为分类的字段做排序操作,否则出错]
如
select*fromxyxxorderbydzcomputeavg(nl)bydz
12.多表查询:
<1>.所要查询的数据,来自于多个数据表
[要查询所有同学的学员信息以及考试总分,这些信息分别来自于学员信息表与学员成绩表]
select*fromxyxx,xycj==>数据表1中的每一条记录都要与数据表2中所有记录对应
[该方式查询是错误的]
select*fromxyxx,xycjwherexyxx.xh=xycj.xh==>在查询时,要找出数据表1中的
关联数据与数据表2中的关联数据相对应
selectxyxx.xh,xm,xb,(yw+sx+yy+jsj+ty)aszffromxyxx,xycjwherexyxx.xh=xycj.xhand(yw+sx+yy+jsj+ty)>=400
<2>.通过多表子查询的方式,实现多表查询
select*fromxyxxwherexhin===>找出学号在集合当中的信息
(
selectxhfromxycjwhere(yw+sx+yy+jsj+ty)>=400===>该语句产生了满足条件的所有学员
的学号,并形成一个学号集合
)
<3>.通过不存在性查询,实现不关联的数据查询
[如在学员信息表中存放全班所有学员的信息,但学员成绩表中会存在没有成绩的学员]
select*fromxyxxwherenotexists
(
select*fromxycjwherexyxx.xh=xycj.xh
)
说明:
select*fromxyxx===>找出xyxx表中所有数据
select*fromxyxx,xycjwherexyxx.xh=xycj.xh===>多表查询后的结果(关联)
notexists===>不存在性查询的关键字
注意:
不存在性查询的子语句select*fromxycjwherexyxx.xh=xycj.xh,不需要再指出xyxx数据表
13.通过selete语句,将select查询结果,保存为数据表
select*intolqxybfromxyxxwherexhin(selectxhfromxycjwherezf>=400)
三.insert语句用法:
[insert语句,即向指定的数据表中,添加数据记录]
insert语句的格式
insertinto数据表名(字段名1,字段名2,字段名3,...)values(数据1,数据2,数据3,...)
例:
insertintoxyxx(xm,xb,nl,dz,rxrq,shf,zy)values('江民',1,50,'北京','2010-7-1',800,'一年网络')
四.update语句用法:
[update语句,即用于对指定数据表做数据记录的修改]
update语句的格式
update数据表名set字段名1=数据1,字段名2=数据2,字段名3=数据3...where条件
在进行使用update语句时,一定要添加上条件,否则将会修改数据表中所有记录
例:
updatexyxxsetxm='王有民',nl=60,dz='上海',rxrq='2009-8-1'wherexh=95025
五.delete语句用法:
[delete语句,即用于对指定数据表中记录做删除操作]
delete语句的格式
deletefrom数据表名where条件
在使用delete语句时,一定要添加条件,否则将删除数据表中所有记录
索引的应用
一.索引的介绍:
*索引可以高效地快速地在大量数据记录中,找到所需要的数据.
[相当于书本的目录]
*索引通常是针对于大型的数据表,以及记录数较多的场合下应用.
*索引的建立是需要花费较多的计算机与服务器资源的.
当数据记录发生变化时或者数量发生变化时,索引必须要重新建立
二.创建索引的注意事项:
*数据表的记录数很少,通常不需要建立索引
*不要为某一个数据量很少的字段建立索引,如性别
*不要为某一个数据量很大的字段建立索引,如简介或者文章的内容
*数据表的添加、删除、修改等操作远远大于查询操作,此时也不要建立索引
针对于学员信息表,可以为数据表中学号姓名地址等建立索引
三.索引的类型:
1.按结构分类:
*聚集索引
聚集索引,在数据表中,只允许有一个存在,通常是主键.
聚集索引建立后,会存在一个以主键为内容的小表,该小表的数据存放地址与原数据表完全相同
当查询时,找到小表中的数据,也就表示找到了原数据表中的数据记录.
*非聚集索引
非聚集索引,在建立索引时,会产生一个小表,小表中存放建立索引的字段,以及对应
数据记录所在的存储地址。
当查询时,先在小表中找到数据,然后对应找到存储地址,最后通过存储地址,找到
原数据表中的数据记录。
2.按索引唯一性分:
*唯一性索引=>建立索引的字段是唯一的
*非唯一性索引=>建立索引的字段不唯一
四.索引创建方法:
打开数据表的设计窗口,右键打开选择"索引/键"一项
*如果数据表已经有了主键,则会自动存在一个聚集索引与唯一性索引
*若要为其它字段建立索引,如姓名,可以单击"新建"按钮,指出要建立索引的字段,如xm
,并指出是否为聚集索引(如果有了主键,则不能再建立聚集索引)
指出是否为唯一性索引,(如果该字段存在相同的数据,则也不能建立唯一性索引).
*通常不能建立聚集索引与唯一性索性,则该索引称为非聚集非唯一性索引。
五.索引的管理:
在企业管理器的数据表上,右键打开“所有任务|管理索引”
可查看到数据表中所建立的所有索引,包括建立的字段名与类型。
若要修改索引,则直接单击“编辑”按钮即可.
注:
数据表建立了索引后,可以在对大量数据查询时,提高记录的查询的速度。
客户首先将查询的条件提交给数据库服务器,服务器收到条件后,去查询索引表,根据索引表,
找到对应的数据记录存储位置,并根据位置找到对应的数据记录。
在这个过程当中,客户并没有直接与索引接触。
数据导入导出中的驱动程序:
*ODBC==>开放式数据库连接
如在asp中调用odbc的方法:
先在控制面板|管理工具|ODBC|建立系统数据源,要求指出驱动程序,数据库以及名称
接着在asp中直接调用所建立的odbc即可,若odbc的名称为wdlj,则在asp中直接
通过db.openwdlj调用即可.
*在sqlserver中sqlserver的驱动程序有:
用于sqlserver的microsoftodbc驱动程序==>通过odbc调用.
用于sqlserver的microsoftoledb驱动程序==>该驱动为sqlserver本身驱动程序
*在sqlserver的access驱动程序有:
microsoftaccess==>access驱动程序
*在sqlserver的excel驱动程序有:
microsoftexcel97-2000==>excel驱动程序
在sqlserver中链接服务器的使用方法:
<1>.通过sqlserver中的链接服务器,链接access文件
*打开企业管理器|安全性|链接服务器,右键打开,选择“新建链接服务器”
*指出链接服务器的名称,如access123456[任意]
指出链接服务器的驱动程序,此处所使用的驱动为通用的桌面型数据库驱动程序
microsoftjet4.0oledbprovider
指出所要链接的产品名称,如access[任意]
指出数据源,即所要链接的access文件路径与文件名,如d:
\aaa\db1.mdb
确定后完成即可。
*链接服务器建立完成后,必须通过查询分析器以及sql语句查询
如select*fromaccess123456...xyxx
-----------------
链接服务器名称...数据表
<2>.通过sqlserver中的链接服务器,连接excel文件
*在新建链接服务器窗口中,指出链接服务器名称,如excel9900
指出链接服务器的驱动程序,microsoftjet4.0oledbprovider
指出所要链接的产品名称,如excel
指出数据源,如d:
\aaa\123456.xls
指出程序字符串,excel5.0[excel的程序字符串,必须是excel5.0]
确定后完成即可。
*使用的方法与access链接服务器相同。
sqlserver中权限配置方法
一.在sqlserver中建立允许登录到sqlserver的登录帐号:
[与数据库暂时无关]
1.建立采用sqlserver验证的用户登录:
*在企业管理器|安全性|登录,新建登录
在窗口中指出登录的新帐号,如wuwei
选择登录类型为sqlserver身份验证
并指出登录的密码,即可.
2.建立采用windows身份验证的用户登录:
[与windows计算机中的用户有关]
*打开windows计算机中的本地用户和组窗口,在其中,首先建立一个新的用户,如xp
*完成后,在sqlserver企业管理器中,打开安全性|登录,并在其中新建登录
在登录帐号中,选择刚刚所建立的windows用户帐号,如xp
登录类型选择"windows身份