第4讲SQL语言4.1SQL概述(P21教材2.1-2.2)4.1SQL概述•SQL(StructuredQueryLanguage)结构化查询语言,是关系数据库的标准语言•SQL是一个通用的、功能极强的关系数据库语言•SQL功能极强,完成核心功能只用了9个动词。表3.1SQL语言的动词SQL功能动词数据查询SELECT数据定义CREATE,DROP,ALTER数据操纵INSERT,UPDATEDELETE数据控制GRANT,REVOKETransactSQL不同的数据库系统对SQL标准做了不同的扩展。Microsoft公司的SQL称为Transact-SQL。4.1.1系统数据类型•1.整型数据类型•2.浮点数据类型•3.字符数据类型•4.日期和时间数据类型•5.货币数据类型•6.位数据类型1.整型数据类型整型(integer)数据类型用来存储整数。int:可以存放从-231到231-1范围之间的所有整数。长度为4个字节。smallint:可以存放从-215到215-1之间的所有整数。长度为2个字节。tinyint:可以存放从0到255之间的所有整数。长度为1个字节。bigint:可以存放从-263到263-1之间的所有整数。长度为8个字节。2.浮点数据类型浮点数据类型用于存储实数。decimal:表示范围最多可达38位数字。可以指定精度及小数位数.例如:decimal(6,2)表示最多可存放6位数字,并且小数点后有2位。3.字符数据类型•char(n):存放固定长度的字符,每个字符占一个字节,n值不能超过8000。•varchar(n):存放可变长度的字符,n值不能超过8000。•text:存放字符,其长度可自动改变,能表示的最大长度为231-1个字符。•nchar(n):存放固定长度的Unicode字符,n值不能超过4000。•nvarchar(n):存放不固定长度的Unicode字符,n值不能超过4000。•ntext:存放可多达230-1个可变长Unicode字符。4.日期和时间数据类型Datetime:用于存储日期和时间。占用8个字节。Smalldatetime:日期时间范围较小。占用4个字节。5.货币数据类型存放带符号的货币值。money:占8个字节。其精度为19,小数4位。smallmoney:占4个字节。其精度为10,小数4位。6.位数据类型bit:仅有两种取值:0或1,长度为1字节。适用于存储一个逻辑值。4.1.2用户定义的数据类型在创建一个用户定义的数据类型时,必须给出以下三部分信息:●新数据类型名●这种数据类型是基于哪种系统数据类型的●可否为空6.1.3.注释符①以两个连续减号--开头,用于单行注释。②以/*开头,以*/结束,可用于单行或多行文字的注释。例:--打开数据库/*打开作者信息表,显示所有作者信息*/4.1.4SQL查询分析器SQL查询分析器(QueryAnalyzer)是一个图形用户界面,用以交互地设计、测试和执行T-SQL语句等。可以从SQLServer企业管理器调用查询分析器,也可以从“开始”菜单中调用查询分析器。2.使用SQL查询分析器窗口左端的叫做对象浏览器窗口,右端的叫做查询窗口查询窗口又分为编辑窗格和结果窗格•查询窗口查询窗口的标题栏显示:数据库服务器的名称、当前数据库的名称、当前登录名称和查询名称。如果已将查询保存到文件,则显示此文件的完整路径。在编辑窗格输入的代码根据其含义不同,所显示的颜色也不同。表4.4列出了代码颜色与含义的对应关系。表4.4编辑窗格中的代码颜色表颜色含义红色字符串深红色存储过程绿色系统表深绿色注释粉色系统函数(包括:全局变量)蓝色关键字灰色操作符如何使用编辑窗格来编辑和执行T-SQL语句:在编辑窗格中输入如下语句:USEpubsGOSELECT*FROMauthorsGO可以使用一下任何一种方法来执行查询:①按下F5键。②单击“查询”菜单中的“执行”命令。③按下工具栏上指向右侧的绿色三角形。查询结果如图所示。4.1.7数据定义语言数据定义语言DataDefinitionLanguage,简写DDL用来定义及管理SQLServer中的所有对象,如创建、修改和删除数据库、表、存储过程等。1.创建及修改数据库(1)创建新数据库基本语法如下:CREATEDATABASEdatabase_name[ON[PRIMARY][filespec[,...n]]][LOGON{filespec[,...n]}]其中filespec语法如下:([NAME=logical_file_name,]FILENAME=“os_file_name”[,SIZE=size][,MAXSIZE={max_size|UNLIMITED}][,FILEGROWTH=growth_increment])其中参数如下:database_name:新数据库的名称。ON:显式定义数据文件如果没有指定,将自动创建。LOGON:显式定义日志文件。如果没有指定LOGON,将自动创建一个日志文件。PRIMARY:指定主文件。如果没有指定PRIMARY,那么CREATEDATABASE语句中的第一个文件将成为主文件。NAME:为文件指定逻辑名称。FILENAME:为文件指定物理文件名(包括路径)。SIZE:指定文件的大小,默认单位为MB。如果主文件没有提供SIZE参数,那么SQLServer将使用model数据库中的主文件大小。如果次要文件或日志文件没有指定SIZE参数,则大小为1MB。MAXSIZE:指定文件可以增长到的最大大小。可以使用千字节(KB)、兆字节(MB)、千兆字节(GB)或兆兆字节(TB)为单位。默认为MB。指定一个整数,不要包含小数位。如果没有指定max_size,那么文件将增长到磁盘变满为止。UNLIMITED:指定文件将增长无上限,到磁盘变满为止。FILEGROWTH:指定文件的增长量。要求指定一个整数。最小值为64KB。0值表示不增长。可以MB、KB、GB、TB或百分比(%)为单位。默认为MB。如果没有指定FILEGROWTH,则默认值为10%增量不能超过MAXSIZE设置。创建数据库test的语句:CREATEDATABASEtest例4.9创建名为Products的数据库,并指定单个文件。指定的文件成为主文件,并会自动创建一个1MB的事务日志文件。CREATEDATABASEProductsON(NAME=prods_dat,FILENAME=c:\mydatabase\prods.mdf,SIZE=4,MAXSIZE=10,FILEGROWTH=1)GO例4.10创建名为book_manage的数据库。指定数据文件和事务日志文件主数据文件初始大小为10MB,最大可增至20MB,每次增量为5MB。主数据文件和日志文件都存储在C盘的mydatabase文件夹中(该文件夹必须已经存在)。CREATEDATABASEbook_manageON(NAME=book_manage_primary,FILENAME=c:\mydatabase\book_manage.mdf,SIZE=10,MAXSIZE=20,FILEGROWTH=5)LOGON(NAME=book_manage_log,FILENAME=c:\mydatabase\book_manage.ldf,SIZE=5MB,MAXSIZE=20MB,FILEGROWTH=5MB)GO(2)用系统存储过程显示数据库结构可以使用系统提供的系统存储过程sp_helpdb来显示数据库信息,其语法如下:sp_helpdb[[@dbname=]'name']如果不指定[@dbname=]'name'子句,则会显示在master.dbo.sysdatabases表中的所有数据库信息。例4.13显示上面创建的book_manage数据库的信息。execsp_helpdbbook_manage(3)修改数据库结构修改数据库结构的语法与新建数据库的语法类似。例4.14修改book_manage数据库中的book_manage_primary文件,使得其增量方式为一次增加2MB。alterdatabasebook_managemodifyfile(name=book_manage_primary,filegrowth=2mb)例4.15给book_manage数据库中添加一个数据文件。alterdatabasebook_manageaddfile(name=book_manage_second,filename=c:\mydatabase\newfile.sdf)例4.15删除book_manage数据库中的次要数据文件alterdatabasebook_manageremovefilebook_manage_second(4)删除数据库其语法格式如下:DROPDATABASE数据库名不能删除正在使用的数据库,无法删除系统数据库例4.16删除单个数据库。DROPDATABASEbook_manage例4.17删除多个数据库。DROPDATABASEbook_manage,Products