•SQLServer数据库教程从基础到应用2015/09/05学习目标掌握数据库相关基础知识掌握简单的T-SQL语句第0章数据库基础什么是数据库数据库是指长期储存在计算机内的、有组织的、可共享的数据集合。数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。数据库由数据库管理系统(DBMS)统一管理,数据的插入、修改和检索均要通过数据库管理系统进行。数据管理员(DBA)负责创建、监控和维护整个数据库。数据库模型层次模型网状模型关系模型关系模型是目前最为流行的一种数据模型,用二维表格结构表示实体集。数据库对象表:由行和列组成每列又称为一个字段,每列的标题称为字段名一行数据称为一个或一条记录一个数据库表由一条或多条记录组成,没有记录的表称为空表。每个表中通常都有一个主关键字(也叫主键),用于唯一地确定一条记录。主键不允许空值。不能存在具有相同的主键值的两个行学号姓名性别年龄籍贯班级001张三男20山东003002李四男21辽宁003………………字段名记录主键概念数据模型与逻辑数据模型转换E-R图同关系模式转换1:1的联系转换为关系模式:bjb(班级编号,院系,专业,人数)bzb(学号,姓名)syb(学号,班级编号)注意:联系关系模式的属性包括包括联系属性,以及各实体的主码;主码选实体集任意一方主码。11联系实体属性概念数据模型与逻辑数据数据模型转换1:n联系E-R图转换为关系模式:bjb(班级编号,专业,人数)xsb(学号,姓名,性别,专业)syb(学号,班级编号)n1概念数据模型逻辑数据数据模型转换n:n联系E-R图转换为关系模式:xsb(学号,姓名,性别,专业)kcb(课程编号,课名,学期,学时,学分学分,学时)cjb(学号,课程编号,成绩)11nn成绩使用SQL语句创建数据库一、创建数据库1、利用对象资源管理器创建用户数据库:(界面方式)(1)选择“开始”—“程序”—MicrosoftSQLServer2012,打开SQLServerManagementStudio。(2)使用“Windows身份验证”连接到SQLServer2012数据库实例。(3)展开SQLServer实例,右击“数据库”,然后在弹出的快捷菜单中选择“新建数据库存”命令,打开“新建数据库”对话框。(4)在“新建数据库”对话框中,可以定义数据库的名称、数据文件和日志文件的逻辑名称和路径、文件组、初始大小和增长方式等。输入数据库名称(pxscj)student。P(29)图使用SQL语句创建数据库2、使用T-SQL语句创建数据库。(命令方式)在SQLServerManagementStudio中,单击标准工具栏的“新建查询”按钮,启动SQL编辑器窗口,在光标处输入T-SQL语句,单击“执行”按钮。SQL编辑器就提交用户输入的T-SQL语句,然后发送到服务器执行,并返回执行结果。P(35)页例1:创建一个只含一个数据文件和一个事务日志文件的数据库参数参数值数据库名称Student1数据文件逻辑名Student1_dat数据文件物理名D:\student1_dat.mdf数据文件初始大小10MB数据文件最大值50MB数据文件增长值原来的20%事务日志文件逻辑名Student1_log日志文件物理名D:\student1_log.ldf日志文件初始大小4MB日志文件最大值25MB日志文件增长值5MBcreatedatabasestudent1on(name=student1_dat,filename='d:\student_dat.mdf',size=10,maxsize=50,filegrowth=20%)logon(name=student1_log,filename='d:\student_log.ldf',size=4,maxsize=25,filegrowth=5)回顾课本36页例2-7创建数据库练习:1、写出创建产品销售数据库cpxs,初始大小为10MB,最大为50MB,增长方式为20%;日志文件名初始为4MB,最大为25MB,增长方式为5MB,存储路径为“D:\SQLServer\2012\data”。createdatabasecpxson(name=cpxs_dat,filename='D:\SQLServer\2012\cpxs_dat.mdf',size=10MB,maxsize=50MB,filegrowth=20%)logon(name=cpxs_log,filename='D:\SQLServer\2012\cpxs_log.ldf',size=4MB,maxsize=25MB,filegrowth=5MB)数据库修改、删除对数据库可修改以下几项:增加或删除数据文件增加或删除日志文件增加或删除文件组改变数据文件的大小和增长方式改变日志文件的大小和增长方式重命名数据库数据库修改、删除(界面方式)“对象资源管理器”窗口——点击所要修改的数据库——右击鼠标选择“属性”,打开“数据库属性”窗口1、修改文件属性数据库修改、删除(界面方式)数据库修改、删除(界面方式)2、增加辅助数据文件数据库修改、删除(界面方式)3、增加文件组(输入文件组名称)使用SQL语句修改、删除数据库命令方式ALTERDATABASE修改数据库ADDFILE(FILEGROUP)增加文件(文件组)MODIFYFILE更改文件属性REMOVEFILE文件名删除数据文件DROPDATABASE删除数据库使用SQL语句修改、删除数据库课本例子:P38-40页例2-8例2-10例2-11例2-12例2-13练习:1、修改数据库pxscj的属性,将日志文件的初始大小改为15MB,增长方式改为15%。2、为数据库pxscj添加文件组pgroup,并为此文件组添加一个数据文件,大小为25MB,存储路径为“D:\data”表的创建和操作表结构:列名说明数据类型约束Sno学号字符串,长度为7主码Sname姓名字符串,长度为10非空Ssex性别字符串,长度为2取‘男’或‘女’Sage年龄整数取值15~45Sdept所在院系字符串,长度为20默认为‘计算机系’表创建和操作界面方式:表创建和操作界面方式:表创建和操作命令方式:用SQL语句创建如下两个基本表:学生表(Student)、课程表(Course),结构如下所示Student表列名说明数据类型约束Sno学号字符串,长度为7主码Sname姓名字符串,长度为10非空Ssex性别字符串,长度为2取‘男’或‘女’Sage年龄整数取值15~45Sdept所在院系字符串,长度为20默认为‘计算机系’表创建和操作CreatetableStudent(Snochar(7)primarykey,Snamechar(10)notnull,Ssexchar(2)check(Ssex=‘男’orSsex=’女’),Sageintcheck(Sagebetween15and45),Sdeptvarchar(20)default(‘计算机系’))表创建和操作Course表结构列名说明数据类型约束Cno课程号字符串,长度为10主码Cname课程名字符串,长度为20非空Ccredit学分整数取值0~50Semester学期整数取值大于0Period学时整数取值大于0表创建和操作Createtablecourse(Cnochar(10)primarykey,Cnamevarchar(20)notnull,Ccreditintcheck(Scteditbetween0and50),Semesterintcheck(Semester0),Periodintcheck(Period0),)表创建和操作修改表结构:P57页例3-3例3-4P59页图操作表数据(界面方式)表创建和操作命令方式操作表数据:向表xsb中插入记录INSERTINTOxsbVALUERS('201502','王海',1,'19990501','电子商务',50,NULL)('201504','李华',1,'19990604','电子商务',NULL,NULL)INSERTINTOxsb(学号,姓名,性别,专业)VALUERS('201502','王海',1,'电子商务')表创建和操作在xsb1中生成计算机专业学生的xsb2。1)INSERTINTOxsb2SELECT*FROMxsb1WHERE专业='计算机'2)SELECT*INTOxsb2FROMxsb1WHERE专业='计算机'表创建和操作练习:1、由cjb生成成绩表大于90分的cjb11)INSERTINTOcjb1SELECT*FROMcjbWHERE成绩=90分2)SELECT*INTOcjb1FROMcjbWHERE成绩=90分表创建和操作删除符合条件记录:DELETEFROMxsbWHERE总学分=0GO数据库的查询常用术语数据库技术术语关系模型术语SQL术语记录类型关系模型基本表文件关系,实例基本表,表格记录元组行属性,字段,数据项属性列关键码超键在关系模式中,能唯一标识元组的属性集称为超键(SuperKey)候选键如果一个属性集能唯一标识元组,且又不含有多于属性,那么这个属性集被称为候选键(CandidateKey)主键关系模式中用户正在使用的候选键称之为主键(PrimaryKey)外键如果关系模式R中某属性集是其他模式的候选键,那么该属性对模型R而言是外键FK_银行卡信息表_REFERENCE_身份证信息表银行卡信息表卡号姓名性别身份证号有效期发卡行卡的类型联系方式金额UndefinedUndefinedUndefinedUndefinedUndefinedUndefinedUndefinedUndefinedUndefinedpkfk身份证信息表身份证号姓名性别出生日期籍贯民族家庭地址有效期发卡所照片UndefinedUndefinedUndefinedUndefinedUndefinedUndefinedUndefinedUndefinedUndefinedUndefinedpk数据库对象外键:存在于B表中的A表的主键课程号课程名G001软件测试基础G002软件质量……学号课程号成绩001G00180001G00290002G00260….…学号姓名性别年龄籍贯班级001张三男20山东003002李四男21辽宁003………………数据库对象索引(Index)索引是根据指定的数据库表列建立起来的顺序。它提供了快速访问数据的途径,并且可监督表的数据,使其索引所指向的列中的数据不重复。视图(View)是一个虚拟的表,在数据库中并不实际存。视图是由查询数据库表产生的,视图可以用来控制用户对数据的访问,并能简化数据的显示,即通过视图只显示那些需要的数据信息。触发器(Trigger)触发器是一个用户定义的SQL事务命令的集合。当对一个表进行插入、更改、删除时,这组命令就会自动执行。存储过程(StoredProcedure)存储过程是为完成特定的功能而汇集在一起的一组SQL程序语句,经编译后存储在数据库中的SQL程序。SQLServer关系数据库简介SQLServer是由Microsoft开发和推广的关系数据库管理系统,最初是由Microsoft、Sybase和Ashton-Tate三家公司共同开发的,并于1988年推出了第一个OS/2版本。SQLServer近年来不断更新版本:1996年,Microsoft推出了SQLServer6.5版本;1998年,SQLServer7.0版本和用户见面;2000年,SQLServer2000推出;