版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1第第4 4章章 关系数据库语言关系数据库语言SQLSQL2v教学内容:教学内容:SQL语言的特点、SQL语言的数据类型、 SQL语言(定义、操纵、查询、控制、嵌入SQL语言)。v教学要求:教学要求:1、理解SQL语言的特点、功能和使用方法,SQL Server的数据类型。2、掌握数据定义、操纵、查询语言;视图的定义和操作、基本SQL语句的使用;存储过程和触发器的使用3、了解嵌入式SQL和动态SQL技术、规则的使用。v重重 点:点:SQL的查询、定义、操纵功能;存储过程和触发器的使用。v难点:难点:SQL的查询功能、定义功能、操纵功能。34.1 SQL Server 概述2022-5-83 S
2、QL Server是一个高性能的、多用户的关系型数据库管理系统,由于它强大、灵活的功能,丰富的应用编程接口及精巧的系统结构,深受广大用户的青睐。它是当前最流行的数据库服务器系统之一。4v19961996年,年,MicrosoftMicrosoft推出了推出了SQL Server 6.5SQL Server 6.5版本;版本;v19981998年,年,SQL Server 7.0SQL Server 7.0版本和用户见面;版本和用户见面;v20002000年,年,MicrosoftMicrosoft公司增强了公司增强了SQL Server 7.0SQL Server 7.0的的功能,发布了功能,
3、发布了SQL Server 2000SQL Server 2000,包括企业版、标,包括企业版、标准版、开发版和个人版等准版、开发版和个人版等4 4个版本。个版本。v20052005年,年,MicrosoftMicrosoft公司又推出了公司又推出了SQL Server 2005SQL Server 2005,提供了一个完整的数据管理和分析解决方案,给不提供了一个完整的数据管理和分析解决方案,给不同需求的组织和个人带来帮助。同需求的组织和个人带来帮助。v20082008年,年,SQL Server 2008SQL Server 2008面世。面世。52022-5-85SQL Server200
4、8 的各种版本版版 本本描描 述述使用场所使用场所企业版企业版Enterprise Edition一个全面的数据管理和商业智能一个全面的数据管理和商业智能平台,提供企业级的可扩展性、平台,提供企业级的可扩展性、高可用性和高安全性以运行企业高可用性和高安全性以运行企业关键业务应用关键业务应用 大规模大规模OLTP 大规模报表大规模报表 先进的分析先进的分析 数据仓库数据仓库 标准版标准版Standard Edition 一个完整的数据管理和商业智能一个完整的数据管理和商业智能平台,提供最好的易用性和可管平台,提供最好的易用性和可管理性来运行部门级应用理性来运行部门级应用部门级应用部门级应用 中小
5、型规模中小型规模OLTP 报表和分析报表和分析 工作组版工作组版Workgroup Edition 一个可信赖的数据管理和报表平一个可信赖的数据管理和报表平台,提供各分支应用程序以安全、台,提供各分支应用程序以安全、远程同步和管理功能远程同步和管理功能分支数据存储分支数据存储 分支报表分支报表 远程同步远程同步 学习版学习版Express Edition 提供学习和创建桌面应用程序和提供学习和创建桌面应用程序和小型应用程序,并可被小型应用程序,并可被ISVS重重新发布的免费版本新发布的免费版本 入门级入门级&学习学习 免费的免费的ISVS重发重发 富桌面端应用富桌面端应用 6一、一、
6、SQL ServerSQL Server数据库的组成数据库的组成 SQL ServerSQL Server的数据主要以文件的方式保存,主要划的数据主要以文件的方式保存,主要划分为三类文件:主数据文件、辅助文件、日志文件。分为三类文件:主数据文件、辅助文件、日志文件。主数据文件主数据文件:存储数据库的启动信息和系统表,也存储数据库的启动信息和系统表,也可以存储用户数据。每个数据库包含一个主文件。建可以存储用户数据。每个数据库包含一个主文件。建议扩展名:议扩展名: .mdf辅数据文件辅数据文件:可选的:可选的,保存主文件中容纳不下的数据保存主文件中容纳不下的数据。可以有。可以有0到多个辅数据文件。
7、扩展名是到多个辅数据文件。扩展名是 .ndf。7日志文件日志文件:保存恢复数据库所需要的所有数据库的事恢复数据库所需要的所有数据库的事务日志信息。必须至少有一个日志文件,务日志信息。必须至少有一个日志文件,建议扩展名扩展名用用.ldf.ldf。注意:注意:一个文件只能存在于一个文件组中,不能跨组。一个文件只能存在于一个文件组中,不能跨组。表、索引以及表、索引以及texttext、ntextntext和和imageimage数据可以指定存数据可以指定存放在特定的文件组中。放在特定的文件组中。文件组只能包含数据文件,日志文件不属于任何文文件组只能包含数据文件,日志文件不属于任何文件组。件组。8 二
8、、二、SQL Server SQL Server 数据存储单位数据存储单位创建数据库之前,要了解创建数据库之前,要了解SQL ServerSQL Server使用的数据存储使用的数据存储单位:单位:存储页(存储页(pagepage):):基本数据存储单位,每页基本数据存储单位,每页8KB8KB字节。字节。范围(范围(extentextent):):一个范围是一个范围是8 8个连续存储页。是存储个连续存储页。是存储表或索引的基本单位。表或索引的基本单位。文件组:文件组:数据库中对文件进行分组管理的机制。把相数据库中对文件进行分组管理的机制。把相关的文件放入特定文件组中,系统按组管理文件。关的文件
9、放入特定文件组中,系统按组管理文件。9文件组的类型:文件组的类型:主文件组(缺省文件组)主文件组(缺省文件组):存放主数据文件和其他没:存放主数据文件和其他没有指定文件组的文件。有指定文件组的文件。系统表在主文件组中系统表在主文件组中。用户定义文件组用户定义文件组:用:用 CREATE DATABASE CREATE DATABASE 或或 ALTER ALTER DATABASE DATABASE 语句中的语句中的 FILEGROUP FILEGROUP 关键字,或在关键字,或在 企业管企业管理器内的理器内的 属性属性 对话框上指定的任何文件组。对话框上指定的任何文件组。10三、三、SQL
10、Server SQL Server 数据库数据库1 SQL Server数据库类型数据库类型2 2 系统数据库系统数据库3 3 用户数据库用户数据库 111 1、SQL ServerSQL Server数据库类型数据库类型SQL ServerSQL Server的数据存储空间可分为若干个的数据存储空间可分为若干个“小小”数据库,以便于管理和提高存取效率。数据库,以便于管理和提高存取效率。 有两类数据库:有两类数据库: 系统数据库:系统数据库:存放存放SQL Server的整体信息。的整体信息。SQL Server使用系统数据库操作和管理系统。使用系统数据库操作和管理系统。 用户数据库:用户数据
11、库:是用户创建的数据库。一个是用户创建的数据库。一个 SQL Server可以管理一个或多个用户数据库。可以管理一个或多个用户数据库。12系统数据库和用户数据库系统数据库和用户数据库ModeModel lTempdTempdb bMasteMaster rMsdbMsdbDistributionDistributionpubspubsNorthwindNorthwindUserUser用户数据库用户数据库系统数据库系统数据库图123132 2、系统数据库、系统数据库 安装安装SQL Server SQL Server 时,系统自动地创建时,系统自动地创建mastermaster、modelmo
12、del、tempdbtempdb、msdbmsdb、DistributionDistribution等等系统数据库系统数据库。 master master数据库数据库用来存放系统级的信息,如保存本地及远程用用来存放系统级的信息,如保存本地及远程用户帐号、与本地服务器有交互的远程服务器、进程、户帐号、与本地服务器有交互的远程服务器、进程、可配置的环境变量、系统错误信息、分配给各数据库可配置的环境变量、系统错误信息、分配给各数据库的存储空间、系统上可用的磁带和磁盘、活动锁等。的存储空间、系统上可用的磁带和磁盘、活动锁等。14 model model数据库数据库为用户数据库提供了样板和原型,包含了每
13、一为用户数据库提供了样板和原型,包含了每一用户数据库所需要的系统表,它能够被更改成为创用户数据库所需要的系统表,它能够被更改成为创建新的数据库的定制结构,对建新的数据库的定制结构,对modelmodel所作的每一个改所作的每一个改动都在新数据库中产生影响。动都在新数据库中产生影响。 msdb数据库数据库支持支持SQL Server Agent。msdb数据库中的表数据库中的表sysdbmainplan _history保存了系统维护的工作信保存了系统维护的工作信息,并且为调度信息提供一个存储区。息,并且为调度信息提供一个存储区。15 tempdb tempdb数据库数据库是是SQL Serve
14、rSQL Server上数据库使用的共享工作空间,为上数据库使用的共享工作空间,为临时表和其它临时工作存储需要提供了一个存储区。临时表和其它临时工作存储需要提供了一个存储区。 Distribution Distribution数据库数据库在为复制活动配置在为复制活动配置SQL ServerSQL Server时,系统自动安装时,系统自动安装DistributionDistribution数据库。存储复制活动中的历史记录和数据库。存储复制活动中的历史记录和事务数据。事务数据。163 3、 用户数据库用户数据库 pubs pubs和和NorthwindNorthwind数据库数据库pubspubs
15、和和NorthwindNorthwind数据库是作为培训工作提供数据库是作为培训工作提供的实例数据库,属于用户数据库。一般来说,当培的实例数据库,属于用户数据库。一般来说,当培训工具使用完后,要重新安装它,以便恢复其原貌训工具使用完后,要重新安装它,以便恢复其原貌。 用户用户数据库数据库作为数据库拥有者(作为数据库拥有者(DBODBO)的用户自己)的用户自己创建的创建的数据库。他拥有对数据库的所有访问权限。数据库。他拥有对数据库的所有访问权限。174.2 SQL4.2 SQL语言简介语言简介 1、什么是、什么是SQL语言语言 SQLSQL语言是结构化查询语言,语言是结构化查询语言,Struct
16、ured Query Structured Query Language, Language, 简称简称SQLSQL。是介于关系代数和。是介于关系代数和 关系演算之关系演算之间的语言,其功能不仅仅是查询,它是通用的、功能间的语言,其功能不仅仅是查询,它是通用的、功能极强的关系数据库语言。极强的关系数据库语言。 SQLSQL语言集数据语言集数据定义、查询、更新和控制定义、查询、更新和控制功能于功能于一体。一体。SQLSQL语言已经成为关系数据库的标准语言语言已经成为关系数据库的标准语言18 (1)(1)19741974年,年,IBMIBM圣约瑟实验室的圣约瑟实验室的BoyceBoyce和和Cha
17、mberlinChamberlin为关系数据库管理系统为关系数据库管理系统System-RSystem-R设计的一种查询语言,设计的一种查询语言,当时称为当时称为SEQUELSEQUEL语言(语言(Structured EnglishStructured English Query Query Language)Language),后简称为,后简称为SQLSQL;(2)(2)19811981年,年,IBMIBM推出关系数据库系统推出关系数据库系统SQL/DSSQL/DS,得到广,得到广泛应用;泛应用;(3)(3)著名关系数据库管理系统都陆续实现著名关系数据库管理系统都陆续实现SQLSQL语言;
18、语言; (4)(4)19821982年年,ANSIANSI着手制定着手制定SQLSQL标准,标准,19861986年公布第一年公布第一个个SQLSQL标准标准-SQL86-SQL86,其主要内容:模式定义、数据操作、,其主要内容:模式定义、数据操作、嵌入式嵌入式SQLSQL等内容。等内容。2 2、SQLSQL语言的发展历程语言的发展历程19(5)(5)19871987年年,ISOISO通过通过SQL86SQL86标准;标准; (6)(6)19891989年年,ISOISO制定制定SQL89SQL89标准,它在标准,它在SQL86SQL86基础上基础上增增补完整性补完整性描述描述 (7)(7)1
19、9901990年年,我国制定等同,我国制定等同SQL89SQL89的国家标准;的国家标准;(8)(8)19921992年年,ISOISO制定制定SQL92SQL92标准,即标准,即SQL2SQL2;SQL2SQL2相当庞相当庞大,实现了对远程数据库访问的支持大,实现了对远程数据库访问的支持(9)(9)19991999年年,ANSIANSI制定制定SQL3SQL3标准,在标准,在SQL2SQL2基础上扩充了基础上扩充了面向对象功能面向对象功能,支持自定义数据类型、提供递归操作、,支持自定义数据类型、提供递归操作、临时视图、更新一般的授权结构、嵌套的检索结构、临时视图、更新一般的授权结构、嵌套的检
20、索结构、异步异步DMLDML等;等;20 SQL SQL标准的制定使得几乎所有的数据库厂家都采标准的制定使得几乎所有的数据库厂家都采用用SQLSQL语言作为其数据库语言。但各家又在语言作为其数据库语言。但各家又在SQLSQL标准的标准的基础上进行扩充,形成自己的语言。基础上进行扩充,形成自己的语言。SQL ServerSQL Server扩充扩充SQLSQL标准形成标准形成Transact-SQLTransact-SQL,简称,简称T-SQLT-SQL。213 3、SQLSQL语言应用情况语言应用情况 (1)(1)OracleOracle、SybaseSybase、InformixInform
21、ix、IngresIngres、DB2DB2、SQL SQL ServerServer、RdbRdb等大型数据库管理系统实现了等大型数据库管理系统实现了SQLSQL语言;语言; (2)(2)DbaseDbase、FoxproFoxpro、AcessAcess等等PCPC机数据库管理系统部机数据库管理系统部分实现了分实现了SQLSQL语言;语言; (3)(3)可以在可以在HTML(Hypertext Markup Language, HTML(Hypertext Markup Language, 超文超文本标记语言本标记语言) )中嵌入中嵌入SQLSQL语句,通过语句,通过WWWWWW访问数据库
22、;访问数据库; (4)(4)在在VCVC、VBVB、DelphiDelphi、PBPB也可嵌入也可嵌入SQLSQL语句。语句。224 SQL4 SQL语言的特点语言的特点 语言功能的一体化语言功能的一体化: : 集集DDLDDL、DMLDML、DCLDCL为一体。为一体。 结构的一体化结构的一体化:关系模型中唯一的结构类型就是:关系模型中唯一的结构类型就是关系表,这种数据结构的单一性关系表,这种数据结构的单一性, ,使得增、删、改、使得增、删、改、查询等操作都只须使用一种操作符。查询等操作都只须使用一种操作符。 高度非过程化高度非过程化:只须提出:只须提出“做什么做什么”无须指明无须指明“怎样
23、做怎样做”。用户不必了解存取路径。用户不必了解存取路径。23面向集合的操作方式面向集合的操作方式:在元组集合上操作:在元组集合上操作, ,操作结果操作结果仍是元组集合。仍是元组集合。 两种操作方式、统一的语法结构两种操作方式、统一的语法结构:SQL语言既是自语言既是自含式、又是嵌入式语言。含式、又是嵌入式语言。自含式可作为连机交互式使自含式可作为连机交互式使用;嵌入式用;嵌入式SQLSQL可嵌入到高级语言中使用。可嵌入到高级语言中使用。 语言简洁、易学易用语言简洁、易学易用:数据定义、操纵和控制只用:数据定义、操纵和控制只用了了9 9个动词。个动词。24SQLSQL语言中的主要动词语言中的主要
24、动词SQL功能功能动词动词数据查询数据查询SELECT数据定义数据定义CREATE,DROP,ALTER数据操纵数据操纵INSERT,UPDATE,DELETE数据控制数据控制GRANT,REVOKE25数据定义:数据定义:定义被存放数据的结构及完整性。定义被存放数据的结构及完整性。 数据检索:数据检索:从数据库中检索数据并使用这些数据。从数据库中检索数据并使用这些数据。 数据操纵:数据操纵:通过通过SQL更改数据库中的数据。更改数据库中的数据。 存取控制:存取控制:限制用户检索、增加和修改数据的权限,限制用户检索、增加和修改数据的权限,保护所存储的数据不被非法存取。保护所存储的数据不被非法存
25、取。 数据共享:数据共享:调整数据让并发用户共享。调整数据让并发用户共享。 5、SQL语言的功能语言的功能266 6、SQLSQL语言的分类语言的分类 SQLSQL语言的命令通常分为四类语言的命令通常分为四类 1 1)、数据定义语言()、数据定义语言() 创建、修改或删除数据库中各种对象,包括创建、修改或删除数据库中各种对象,包括SQLSQL模模式、基本表、视图、索引等。式、基本表、视图、索引等。 命令:命令:TABLE TABLE VIEWVIEWINDEXINDEX(1 1)CREATE CREATE 27(2 2)ALTER TABLE ALTER TABLE 2 2)、查询语言()、查
26、询语言(S S) 按照指定的组合、条件表达式或排序检索已存在按照指定的组合、条件表达式或排序检索已存在的数据库中数据,不改变数据库中数据。的数据库中数据,不改变数据库中数据。 命令:命令:SELECTSELECTFROMFROMWHEREWHERE(3 3)DROPDROPTABLE TABLE VIEWVIEWINDEXINDEX. .283 3)、数据操纵语言()、数据操纵语言() 对已经存在的数据库进行元组的插入、删除、修改对已经存在的数据库进行元组的插入、删除、修改等操作。等操作。 命令:命令:INSERTINSERT、UPDATEUPDATE、DELETEDELETE4 4)、数据控
27、制语言()、数据控制语言(D D) 用来授予或收回访问数据库的某种特权、控制数用来授予或收回访问数据库的某种特权、控制数据操纵事务的发生时间及效果、对数据库进行监视。据操纵事务的发生时间及效果、对数据库进行监视。 命令:命令:GRANTGRANT、REVOKEREVOKE、 COMMITCOMMIT、ROLLBACKROLLBACK29vTransact-SQL (T-SQL)语言是微软公司对标准)语言是微软公司对标准SQL语言的扩展,它是语言的扩展,它是SQL Server与应用程序之与应用程序之间的语言,是间的语言,是SQL Server对应用程序开发的应用程对应用程序开发的应用程序开发接
28、口。序开发接口。vT-SQL增强了增强了SQL语言的功能,同时兼容语言的功能,同时兼容SQL标准。标准。304.3 SQL语言的数据类型语言的数据类型v关系的所有属性都需要用数据类型加以描述,目的关系的所有属性都需要用数据类型加以描述,目的是为了给不同的数据分配合适的空间,确定合适的是为了给不同的数据分配合适的空间,确定合适的存储形式。存储形式。vSQL Server中的数据类型有:系统数据类型和用户中的数据类型有:系统数据类型和用户自定义数据类型。自定义数据类型。312022-5-8311、SQL Server 2008的系的系统数统数据据类类型型类别数据类型定义符 精确数字bigint、i
29、nt、smallint、tinyint、bit、decimal、numeric、money、smallmoney近似数字float、real日期和时间dateime、smalldatetime、date、datetime2、datetimeoffset、time(注意SQL Server 200中的日期和时间)字符串char、varchar、textUnicode 字符串 nchar、nvarchar、ntext二进制字符串binary、varbinary、image其他数据类型cursor、sql_variant、table、timestamp、uniqueidentifier、xml、hi
30、erarchyid32v主要数据类型有:主要数据类型有:vCHAR(nCHAR(n) :) :固定长度非固定长度非Unicode Unicode 数据的数据类型数据的数据类型 vNCHAR(nNCHAR(n) ):固定长度固定长度 Unicode Unicode 数据的数据类型数据的数据类型 vVARCHAR (n) :VARCHAR (n) :可变长度且非可变长度且非Unicode Unicode 的字符数的字符数据,最大长度为据,最大长度为n n, varcharvarchar是按字节存储的。是按字节存储的。vNVARCHAR (n) :NVARCHAR (n) : 可变长可变长Unico
31、deUnicode字符数据,最大字符数据,最大长度为长度为n n,nvarcharnvarchar是按字符存储的。是按字符存储的。33INT:4字节的整型字节的整型REAL:4字节的浮点数字节的浮点数NUMERIC(n,s): 实型,最大精度实型,最大精度n,s为小数位数为小数位数BINARYBINARY:最大最大长度为长度为2G2G字节的变长二进制字节的变长二进制DATETIME:日期型日期型注意:注意:SQL Server 2000与与SQL Server 2008中的日期中的日期类型有很大的不同。类型有很大的不同。342022-5-8342 2、用户自定义数据类型、用户自定义数据类型l
32、当创建用户自定义的数据类型时,必须提供当创建用户自定义的数据类型时,必须提供3 3个参个参数:数据类型的名称、所基于的系统数据类型、数数:数据类型的名称、所基于的系统数据类型、数据类型是否允许空值。据类型是否允许空值。l sp_addtypesp_addtype 新数据类型新数据类型 , ,系统数据类,系统数据类型型,null_type,null_type35v【例】【例】 在数据库在数据库Sales中,创建用户自定义中,创建用户自定义数据类型数据类型agentName, agentName基于的基于的系统数据类型是变长为系统数据类型是变长为8的字符,不允许为空。的字符,不允许为空。vuse
33、salesexec sp_addtype agentname,varchar(8),not nullgo362022-5-8363、表达式l 表达式是标识符、值和运算符的组合,在应用时可以对其求值以获取结果。l 表达式可以是常量、函数、列名、变量、子查询,还可以用运算符对这些实体进行组合以生成表达式。l 比如 (price * 1.5) 或 (price + sales_tax)。 372022-5-8374、运算符l 运算符是一种符号,用来指定要在一个或多个表达式中执行的操作。运算符运算符含义含义算术运算符算术运算符+(加加)、-(减减)、*(乘乘)、/(除除)、%(取模取模)比较运算符比较
34、运算符=、=、=、!=、!赋值运算符赋值运算符=逻辑运算符逻辑运算符AND、OR、NOT385 5、SQLSQL语句格式中使用的语句格式中使用的符号符号大括号大括号 :表示:表示其中的内容可有多个用竖线分隔的其中的内容可有多个用竖线分隔的选项,用户必须选择其中一项。选项,用户必须选择其中一项。方括号方括号 :可选项,用户根据需要选用。可选项,用户根据需要选用。竖线竖线| | :表示参数之间:表示参数之间或或的关系。的关系。省略号省略号“”:表示重复前面的语法单元。表示重复前面的语法单元。尖括号尖括号:表示下面有子句定义。表示下面有子句定义。394.4 SQL4.4 SQL数据定义语言数据定义语
35、言DDLDDL 4.4.1 4.4.1 数据库的定义、修改和删除数据库的定义、修改和删除 4.4.2 4.4.2 基本表的定义、修改和删除基本表的定义、修改和删除 4.4.3 4.4.3 索引的定义、修改和删除索引的定义、修改和删除40 SQL数据定义功能如下表所示数据定义功能如下表所示 :414.4.1 数据库的创建、修改和删除数据库的创建、修改和删除 在建立用户逻辑组件(如在建立用户逻辑组件(如table)之前必须首先建)之前必须首先建立数据库。立数据库。 建立数据库的最实质性任务是向建立数据库的最实质性任务是向OS申请用来存储申请用来存储数据库数据的物理磁盘空间。存储空间以操作系统文数据
36、库数据的物理磁盘空间。存储空间以操作系统文件的方式体现。件的方式体现。v不同的不同的DBMSDBMS建立数据库的命令有些区别,本课程是建立数据库的命令有些区别,本课程是针对针对SQLSQL ServerServer 进行讲解的。包括:进行讲解的。包括:创建数据库、删除数据库、修改数据库创建数据库、删除数据库、修改数据库42三、三、 创建数据库创建数据库Enterprise ManagerEnterprise Manager中中创建数据库创建数据库在在Query AnalyzerQuery Analyzer中用中用Transact_SQLTransact_SQL语句创建语句创建数据库数据库 用户
37、必须拥有创建数据库的权限才能在用户必须拥有创建数据库的权限才能在SERVERSERVER端创建数据库。在端创建数据库。在SQL Server 2000SQL Server 2000为中创建数据为中创建数据库的方法有:库的方法有:431 1、在企业管理器中创建数据库、在企业管理器中创建数据库 进入进入Enterprise ManagerEnterprise Manager界面后:界面后: 展开并展开并选择选择服务器服务器组组 展开并展开并选择要建立数据库的选择要建立数据库的服务器服务器 选中选中“数据库数据库” 按右键选择按右键选择“新建数据库新建数据库”,或选择或选择“操作操作/ /新建数据库
38、新建数据库”44数据库文件位置、大小数据库文件位置、大小文文件件增增长长信信息息选选择择文文件件位位置置45日志文件位置、大小日志文件位置、大小文文件件增增长长信信息息选选择择文文件件位位置置462 2、创建数据库的、创建数据库的SQLSQL语句语句CREATE DATABASE database_nameCREATE DATABASE database_name ON PRIMARYON PRIMARYfilespec ,nn , filegroup , ,n n LOG ON LOG ON filespec , ,n n FOR LOAD FOR ATTACH FOR LOAD FOR A
39、TTACH filespec: =: =( ( NAME = logical_file_name, NAME = logical_file_name, FILENAME = FILENAME = os_file_nameos_file_name ,SIZE = size ,SIZE = size ,MAXSIZE = max_size ,MAXSIZE = max_size UNLIMITED UNLIMITED ,FILEGROWTH = growth_increment ,FILEGROWTH = growth_increment) ) ,n n filegroup: = : = FILE
40、GROUPFILEGROUP filegroup_name filespec filegroup_name ,nn47例例CREATE DATABASE my ON PRIMARY( NAME = my_data, FILENAME =D:testmy.mdf, SIZE = 10 MB, -10 MB的主要数据库文件的主要数据库文件 MAXSIZE = 15 MB, FILEGROWTH = 20 % ) LOG ON (NAME = my_log, FILENAME =D:testmy.ldf, SIZE = 3 MB , -3 MB的日志文件的日志文件 MAXSIZE = 5 MB ,
41、FILEGROWTH = 1 MB )v注意:注意:在建立数据库之前,为操作系统文件指定的在建立数据库之前,为操作系统文件指定的目录路径必须存在。目录路径必须存在。48v例:例:建立建立jxgl1数据库,主文件初始大小为数据库,主文件初始大小为10MB,最大为最大为50MB,增量为,增量为5MB,日志文件初始大小为,日志文件初始大小为5MB,最大为,最大为25MB,增量为,增量为5MB vcreate database jxgl1 On (name=jxgl1_dat,filename=D:jxgljxgl1.mdf,vsize=10,maxsize=50,filegrowth=5)vlog
42、on (name=jxgl1_log,filename=e:zcxjxgl1.ldf,vsize=5MB,maxsize=25MB, filegrowth=5MB)49四、删除数据库四、删除数据库 当确认一个数据库没有需要时,才可以删除该当确认一个数据库没有需要时,才可以删除该数据库。删除数据库的方法:数据库。删除数据库的方法:(1 1)使用企业管理器删除数据库)使用企业管理器删除数据库(2 2)使用)使用T-SQLT-SQL语句删除数据库语句删除数据库 Drop database jxglDrop database jxgl50五、五、 修改数据库修改数据库(1 1)数据库改名)数据库改名(
43、2 2)修改数据库选项)修改数据库选项511 1、数据库改名、数据库改名 使用系统存储过程使用系统存储过程sp_renamedbsp_renamedb可以修改数据库可以修改数据库的名称,语句格式:的名称,语句格式: sp_renamedbsp_renamedb old_dbnameold_dbname, new_dbname, new_dbname 例如:例如:sp_renamedbsp_renamedb zzgzzg, , zzg1zzg1注意注意:(:(1 1)给数据库更名前,必须在企业管理器中给数据库更名前,必须在企业管理器中设置该数据库为单用户状态(设置该数据库为单用户状态(只能有一个
44、用户使用只能有一个用户使用该数据库)。该数据库)。(2)只有属于只有属于sysadminsysadmin服务器角色的成员可以给服务器角色的成员可以给数据库更名。数据库更名。 522、修改数据库选项、修改数据库选项 可以在企业管理器中,也可以在查询分析器中可以在企业管理器中,也可以在查询分析器中修改数据库的属性、添加数据库数据文件、改变数修改数据库的属性、添加数据库数据文件、改变数据库大小等。据库大小等。用企业管理器修改:用企业管理器修改:选中要修改属性的数据库,按选中要修改属性的数据库,按右键,选择右键,选择“属性属性”命令,或命令,或选择选择“操作操作/ /属性属性”。用用T-SQLT-SQ
45、L语句修改:语句修改:使用系统存储过程使用系统存储过程sp_dboptionsp_dboption 使用使用 ALTER databaseALTER database命令(自学)命令(自学)53vALTER DATABASE database_name | MODIFY NAME = new_database_name | COLLATE collation_name | | 其中:其中::= := := := :=54:= := := := := := := := := := . 55 关系可以有三种类型:关系可以有三种类型: (1 1)基本表)基本表:实际存在的表,它是实际储存数:实际存在
46、的表,它是实际储存数据的逻辑表示。据的逻辑表示。(2 2)查询表:)查询表:查询结果相对应的表。查询结果相对应的表。(3 3)视图表:)视图表:由基本表和其它视图导出的表,是由基本表和其它视图导出的表,是虚表,不对应实际存储的数据。虚表,不对应实际存储的数据。4.4.2 表的创建、修改和删除表的创建、修改和删除561、表的创建、表的创建(1)使用企业管理器创建表:)使用企业管理器创建表:选择要新建表的选择要新建表的数据库,按右键,选择数据库,按右键,选择新建新建/表表。(2)使用)使用SQL语句创建表语句创建表在在SQL Server 2000SQL Server 2000为中创建表的方法有:
47、为中创建表的方法有:57(1)使用企业管理器创建)使用企业管理器创建管理约束建立索引生成SQL文本58基本表的定义格式基本表的定义格式CREATE TABLE CREATE TABLE 表名表名( ( 列名列名 数据类型数据类型 缺省值缺省值列级约束列级约束 , ,列名列名 数据类型数据类型 缺省值缺省值列级约束列级约束. . ,UNIQUEUNIQUE(列名(列名 ,列名,列名 . .) ,PRIMARY KEYPRIMARY KEY(列名(列名 ,列名,列名 ) ,FOREIGN KEY FOREIGN KEY (列名(列名 ,列名,列名 ) REFERENCES REFERENCES 表
48、名(列名表名(列名 ,列名,列名 ) ,CKECK ( ,CKECK (条件条件) ) ) )表表级级约约束束59建表时的注意事项:建表时的注意事项:(1)表名列名命名应用遵守命名规则。)表名列名命名应用遵守命名规则。(2)一个用户中表名要唯一,一个表中列名一个用户中表名要唯一,一个表中列名要唯一。要唯一。 (3 3)数据类型是)数据类型是SQL ServerSQL Server所提供的基本数所提供的基本数据类型。据类型。 (4 4)定义完整性保证数据的正确和有效)定义完整性保证数据的正确和有效 60 建表时可定义有关的完整性约束条件,这些建表时可定义有关的完整性约束条件,这些完整性约束条件被
49、存入系统的完整性约束条件被存入系统的数据字典数据字典中。中。 当用户操作表中数据时,由当用户操作表中数据时,由DBMS自动检查自动检查该操作是否违背完整性约束条件。该操作是否违背完整性约束条件。注意注意: 如果完整性约束条件涉及到该表的多个属性列,如果完整性约束条件涉及到该表的多个属性列,则必须定义在表级上。如果是单个属性则必须定义在表级上。如果是单个属性,则可以是则可以是表级完整性表级完整性,也可以是列级完整性约束。也可以是列级完整性约束。61完整性约束的种类完整性约束的种类DEFAULT:DEFAULT:列的缺省值;列的缺省值;NOT NULLNOT NULL:( (列值列值) )非空值;
50、非空值;UNIQUEUNIQUE:(:(列或列的组合)值唯一;列或列的组合)值唯一;PRIMARY KEYPRIMARY KEY:(列或一组列):(列或一组列)主关键字(主码);主关键字(主码);FOREIGN KEYFOREIGN KEY:外码定义;外码定义;REFERENCESREFERENCES:被引用的外部表的表名和列名被引用的外部表的表名和列名 ;CKECK CKECK :指定表约束条件。指定表约束条件。保留字不能用作表名、列名等保留字不能用作表名、列名等62列级完整性约束的种类列级完整性约束的种类(1) not nullnot null和和nullnull约束;约束;(2 2)pr
51、imary keyprimary key(一个表只能有一个主键)约束;一个表只能有一个主键)约束;(3 3)uniqueunique:每个:每个uniqueunique约束都生成一个惟一索引。约束都生成一个惟一索引。(4 4)foreign keyforeign key:参照完整性约束。:参照完整性约束。(5)default :缺省值约束;:缺省值约束;(6)check 约束:自定义约束。约束:自定义约束。注意注意: :完整性性约束在对数据库进行操纵时起作用完整性性约束在对数据库进行操纵时起作用. .63表级完整性约束的种类表级完整性约束的种类(1 1)primary keyprimary k
52、ey约束:约束:当需要多列作为主关键字时当需要多列作为主关键字时需要表级的需要表级的primary keyprimary key约束约束(2 2)foreign keyforeign key:外部关键字是复合属性时需要表外部关键字是复合属性时需要表级参照完整性约束。级参照完整性约束。(3)check :当不同的列需要同时约束或有某种函当不同的列需要同时约束或有某种函数关系时,需要表级的完整性约束。数关系时,需要表级的完整性约束。64例:创建例:创建DEPT(DEPT(系)系)非空和主码约束非空和主码约束CREATE TABLE DEPT ( deptnoCREATE TABLE DEPT (
53、deptno CHAR(8), CHAR(8), Deptname Deptname nvarchar(20) nvarchar(20) NOT NULLNOT NULL, , / /* *列级约束列级约束* */ / Deptphno CHAR(12), Deptadd Deptphno CHAR(12), Deptadd varchar(40), varchar(40), PRIMARY KEY (deptnoPRIMARY KEY (deptno) /) /* *表级完整性表级完整性或或 CREATE TABLE DEPT ( CREATE TABLE DEPT ( deptno dep
54、tno CHAR(8) CHAR(8) PRIMARY KEYPRIMARY KEY , , /*列级约束列级约束*/ Deptname Deptname nvarchar NOT NULLNOT NULL, , Deptphno CHAR(12), Deptadd Deptphno CHAR(12), Deptadd varchar (40) (40) 65外码、外码、 unique约束的定义约束的定义create table class ( classno char(8) primary key , /*列级约束列级约束*/ classname char(10) Unique, /*列级约
55、束列级约束*/ deptno char(8) FOREIGN KEY(deptno) REFERENCEs dept ) /*表级约束表级约束*/注意:所引用的字段必须是被参照表中的主码。注意:所引用的字段必须是被参照表中的主码。66CREATE TABLE student(sno CHAR(8) PRIMARY KEY, Sname nvarCHAR(20) NOT NULL, Ssex CHAR(1), Sage INT, sclass CHAR(8) FOREIGN KEY(sclass) REFERENCES class(classno)问:如果在问:如果在class表中未指定表中未指
56、定classno是主码,则该是主码,则该语句的会执行成功吗?语句的会执行成功吗?67constraint的用法的用法vcreate table sc(sno char(8),v cno varchar(8),v sgrade int, v constraint sno_cbo primary key (sno,cno)v或:或: create table grade(sno varchar(4),v cno varchar(4),v grade int,v primary key (sno,cno)68check约束、缺省值的定义约束、缺省值的定义create table 职工职工( wno
57、varchar(5) foreign key references 仓库仓库(仓库号仓库号), eno char(4), wage int check (wage=1000 and wage1000 and wage5000) default 1200, primary key (eno)692. 表的修改表的修改(1 1)使用企业管理器修改:)使用企业管理器修改:选中要修改的表,按选中要修改的表,按右键,选择右键,选择设计表设计表。(2 2)使用)使用SQLSQL语句修改语句修改70(2 2) 基本表的修改基本表的修改 增加、删除、修改列定义或完整性约束条件:增加、删除、修改列定义或完整性约
58、束条件: ALTER TABLE 表名表名 ADD子句子句 增加新的列定义或列说明增加新的列定义或列说明 MODIFY子句子句 修改表中列定义或列说明修改表中列定义或列说明 (SQL Server中不能用中不能用MODIFY子句子句) DROP子句子句 删除表中的列或列说明删除表中的列或列说明 ADD ADD CONSTRAINTCONSTRAINT子句子句 增加约束增加约束 DROP DROP CONSTRAINTCONSTRAINT子句子句 删除约束删除约束71 例例1: 1: 增加外部关键字约束增加外部关键字约束 ALTER TABLE ALTER TABLE gradegrade AD
59、D ADD FOREIGN KEY (sno) FOREIGN KEY (sno) REFERENCES student (sno REFERENCES student (sno) ) alter table student add constraint stu_check3 check (sno like 0-9) 例例2 2 增加字段增加字段 Alter table student Alter table student add phone varchar(20)add phone varchar(20) 72例例3 3 修改字段修改字段 ALTER TABLE STUDENT ALTER
60、 TABLE STUDENT MODIFYMODIFY sage DATETIMEsage DATETIME 注意:在注意:在SQL Server中应为中应为: Alter table student alter column sage DATETIMEMODIFYMODIFY在在SQL ServerSQL Server不能实现。不能实现。73例例4 删除完整性约束删除完整性约束(知道完整约束名才能删除)知道完整约束名才能删除) alter table student drop constraint stu_check3 ; 删除属性删除属性(只有部分只有部分DBMS允许删除表中的属性允许删除表中的属
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025个人知识产权质押贷款合同范本二零二五3篇
- 2025年度危险化学品堆放场地租赁及安全管理合同3篇
- 2025年度特色美食街餐饮资源承包合作合同3篇
- 2025年度星级酒店餐饮部承包经营合同范本3篇
- 2025年度塔吊设备租赁、维修及保养综合服务合同4篇
- 2025年度生活用品代购委托合同4篇
- 2025年度塔吊司机职业健康体检服务合同范本2篇
- 2024种植业土地租赁合同
- 2025年度消防安全责任合同范本详解3篇
- 2024版内部施工合同
- 2025年工程合作协议书
- 2025年山东省东营市东营区融媒体中心招聘全媒体采编播专业技术人员10人历年高频重点提升(共500题)附带答案详解
- 2025年宜宾人才限公司招聘高频重点提升(共500题)附带答案详解
- KAT1-2023井下探放水技术规范
- 垃圾处理厂工程施工组织设计
- 天疱疮患者护理
- 驾驶证学法减分(学法免分)题库及答案200题完整版
- 2024年四川省泸州市中考英语试题含解析
- 2025届河南省九师联盟商开大联考高一数学第一学期期末学业质量监测模拟试题含解析
- 抚养权起诉状(31篇)
- 2024年“一岗双责”制度(五篇)
评论
0/150
提交评论