您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > chapter 4 Basic SQL Query Language(new)
Chapter3BasicSQLQueryLanguage2SQLLanguage-IntroductionSQL(StructuredQueryLanguage)isalanguagethatallowsustoqueryandmanipulatedataoncomputerizedrelationaldatabasesystems.(SQLiscurrentlyintransitionfromtherelationalform(theANSISQL-92standard)toanewerobject-relationalform(theANSISQL-99standard),SQL-99isasextendingSQL-92.3SQLLanguage-IntroductionSQL语言的组成DataDefinitionLanguage(DDL):用于定义SQL基本表、视图、索引等。DataManipulationLanguage(DML):分为数据查询和数据更新(插入、删除和更新)两大类操作。DataControlLanguage(DCL):基本表和视图的授权、完整性规则的描述和事务控制语句等。SQL功能动词SQLDDLCREATE、ALTER、DROPSQLDML数据查询SELECT数据更新INSERT、UPDATE、DELETESQLDCLGRANT、REVOKE4SQLLanguage-IntroductionSQL字符:单字节字符可以是字母(A~Z,a~z,$,#,@或者是扩展字符集成员)、数字(0~9)或者是特殊字符(,*+%及许多其他符号);标识符:是用于构成名称的标记(一个或多个字符的序列);数据类型:决定了DBMS如何解释一个值;常量:指定一个值,可以分为字符型、整数等数值常量。运算符变量与函数语法格式规定5SQLLanguage-Introduction标识符常规标识符:不需要使用双引号””或方括号[]等定界符进行分隔的标识符。SELECT*FROMsalesCREATEDATABASEMyDatabase常规标识符的命名规则:•标识符长度可以为1~128个字符•首字符必须为字母、下划线、@或#•第一个字符后面的字符可以是字母、数字、下划线、@或#等符号•标识符不能与SQL中的保留字同名•保留字与标识符等都不区分大小写6SQLLanguage-Introduction标识符定界标识符:在定义的标识符中用到数据库保留字、空格等特殊字符时,必须使用定界标识符,需要使用双引号””或方括号[]等定界符作为分隔的标识符。在定界符中可以包含的特殊字符~-!%^‘&.\`{}()7SQLLanguage-DataType数据类型-SQLServer在SQLServer2000中,数据类型是指列、存储过程参数、表达式、局部变量的数据特性,它决定了数据的存储格式,代表着不同的信息类型。数据类型分为:系统数据类型和用户定义数据类型两种。用户定义数据类型可以使用系统存储过程sp_addtype建立,也可以在企业管理器窗口采用交互式方式建立。8SQLLanguage-DataType系统数据类型SQLServer所提供的系统数据类型如下表所示:数据类型名称定义标识日期时间型datetime,smalldatetime整数型int,smallint,tinyint精确数值型decimal,numeric近似数值型float,real货币型money,smallmoney位型bit字符型char,varchar,textUnicode字符串nchar,nvarchar,ntext二进制数据类型binary,varbinary,image特殊数据类型cursor,uniqueidentifier,timestamp9SQLLanguage-DataType系统数据类型-日期时间型日期时间型数据代表日期和时间,这种数据类型分为datetime和smalldatetime两种,二者的区别主要在于它们的存储长度、表示的时间范围和精度不同。在输入日期时间型数据时应将数据放在单引号中。datetimesmalldatetime存储长度8字节4字节精度3/100秒1分钟最小值1753年1月1日1900年1月1日最大值9999年12月31日2079年6月6日10SQLLanguage-DataType系统数据类型-日期时间型datetime类型:4字节用来存储日期,表示距1900年1月1日之前或之后的天数,值为负,表示之前。另外4字节用来存储距12:00AM(午夜)的毫秒数。smalldatetime类型:2字节表示距1900年1月1日的天数,另外2字节表示距12:00AM(午夜)的分钟数。与datetime数据类型相比,smalldatetime类型占用的存储空间小,但它表示的日期范围也小,时间精度较低。SQLServer中没有单独的时间数据类型或日期数据类型,若输入数据不带时间,则时间默认为数据日期当天的午夜;若输入数据不带日期,则日期默认为1900年1月1日。11SQLLanguage-DataType系统数据类型-日期时间型SQLServer可识别的日期格式有三种:字符格式、数字格式和无分隔符字符串格式。字符格式October2,2000October2,00Oct2,2000Oct2,002000,October200,Oct2在字符格式中,如果只用2位数表示年份,则在其值小于50时,系统将它翻译为20**年;如果年份大于或等于50,则将它解释为19**年。12SQLLanguage-DataType系统数据类型-日期时间型SQLServer可识别的日期格式有三种:字符格式、数字格式和无分隔符字符串格式。数字格式6/15/2000(月/日/年)06/15/2000(月/日/年)06/15/00(月/日/年)06-15-00(月/日/年)15-06-2000(日/月/年)数字格式的日期串中年、月、日均用数字表示,相互间用“/”、“-”或“.”分隔,数字格式的默认顺序为mdy。用户可以用setdateformat语句重设格式。13SQLLanguage-DataType系统数据类型-日期时间型SQLServer可识别的日期格式有三种:字符格式、数字格式和无分隔符字符串格式。•无分隔字符串格式,用4位、6位或8位字符串表示,数据之间不能有分隔符。对于6位和8位字符串,它所表达的日期格式为年、月、日,其中月和日必须各占两位,如:”20001231”或”001231”。•用4位表示时,它只代表年份,其月和日默认为1月1日,例如:”2004”,表示”2004年1月1日”。14SQLLanguage-DataType系统数据类型-整数型SQLServer中有四种整数类型:bigint、int、smallint和tinyint整数数据类型存储长度最小值最大值tinyint1字节0255smallint2字节-3276832767int4字节-21474836482147483647bigint8字节-9223372036854775808-922337203685477580715SQLLanguage-DataType系统数据类型-精确数值型精确数值型数据由整数和小数两部分组成。SQLServer提供了两种精确数值类型:decimal[(p[,s])]和numeric[(p[,s])]精确数值型能表达的数据范围是:-1038~1038-1精度(位)字节长度1~9510~19920~281329~3817在声明精确数值型时,可以定义数据的精度p(precision)和小数位数s(scale)。精度表示所存十进制数据的位数总和,包括整数和小数部分。SQLLanguage-DataType系统数据类型-浮点数REAL4个字节,单精度浮点数,负数范围是从–3.402823E38到–1.401298E-45,正数从1.401298E-45到3.402823E38,和0。FLOAT8个字节,双精度浮点数,负数范围是从–1.79769313486232E308到–4.94065645841247E-324,正数从4.94065645841247E-324到1.79769313486232E308,和0。1617SQLLanguage-DataType系统数据类型-货币型货币数据类型有money和smallmoney两种。money型数据为8字节长,而smallmoney型数据的长度是4字节。货币型数据以十进制数表示货币量。系统数据类型-位数据类型位数据类型用bit关键字声明,数据有0、1两种取值。输入0以外的其它值时,系统均把它们当作1看待。这种数据类型常作为逻辑变量使用,用于表示真、假,或是、否等二值选择。18SQLLanguage-DataType系统数据类型-字符类型字符数据由字母、符号和数字组成,在输入字符数据时应将数据放在单引号‘’内字符型数据也有定长和变长两种,分别是char和varchar。Char[(n)]类型长度是固定的,当数据长度小于给定n值时,输入字符串的后面将被填充空格。它的取值范围是1~8000。Varchar[(n)]类型的长度是可变的,n最大值为8000,如果不指定n值,则系统默认长度为1。文本Text类型也是一种可变长度数据类型,定义这类数据类型不需要指定长度。数据最大可达231-1,用于存储长度大于8KB的字符数据。向text列插入数据时,应将数据放在单引号内。19SQLLanguage-DataType系统数据类型-Unicode类型该类型用于支持国际上的非英语语种,每个Unicode字符的存储长度为2字节Unicode字符类型也有:nchar、nvarchar和ntext三种。其中nchar[(n)],nvarchar[(n)],n最大长度为4000个字符。ntext常用于存储长度大于4000的变长Unicode字符对于Unicode字符常量数据,应在前面加上标识符N,但是存储时并不存储该字符。20SQLLanguage-DataType系统数据类型-二进制数据类型SQLServer支持的二进制数据类型包括binary、varbinary和image三种。二进制数据常用于存储图象、有格式的文本(如:Word文件、Excel文件等)、程序文件数据等。binary[(n)]数据的存储长度是固定的,即n+4。当输入的二进制数据长度小于n时,余下部分填充0varbinary[(n)]数据的存储长度是可变的,它是实际所输入数据的长度加上4字节以上两种数据类型的最大长度都是8000image也是一种变长二进制数据类型,其最大长度可为231-121SQLLanguage-DataType系统数据类型-时间戳数据类型时间戳数据类型是一种自动记录时间的数据类型,主要用于在数据表中记录其数据的修改时间。用关键字timestamp表示,timestamp数据类型与时间和日期无关,是二进制数字,它表明数据库中数据修改发生的相对顺序。一个数据库的当前时间戳可用@@DBTS函数读取。当数据表中定义有时间戳列时,如果对其数据使用insert、Update、Delete操作,则系统自动将数据库的当前时间戳插入到时间戳列中每个表中只能有一个时间戳列、在表中不要将时间戳列作为主键或外键22SQLLanguage-DataType用户定义数据类型(UDDT,User-defineddatatype)可以根据系统数据类型来生成用户定义的数据类型分别使用sp_addtype生成/sp_droptype删除用户定义数据类型,如果系统数据类型表达式需要用到圆括号,则要放在引号内。如果任何表使用用户定义数据类型,则不能删除这个用户定义数据类型。例如:Execsp_addtypephone,‘char(13)’Execsp_addtypessn,'
本文标题:chapter 4 Basic SQL Query Language(new)
链接地址:https://www.777doc.com/doc-3255413 .html