




已阅读5页,还剩22页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2章SQL语言概述,SQL(StructuredQuerylanguage)是一种结构化的查询语言,它是实现与关系数据库通信的标准语言。SQL标准是由ISO(国际标准化组织)和ANSI(美国国家标准化组织)共同制定的,从1983年开始到目前经历的标准主要有SQL86、SQL89、SQL92、SQL99、SQL2003。本章主要介绍SQL语言中的一些基本内容并了解SQL语言的基本书写规范。SQL语言介绍SQL语句的分类SQL语言的特点SQL语言中常用数据类型SQL语句书写规范,2.1SQL语言介绍,SQL作为关系数据库中操作的标准语言,集数据定义语言(DataDefinitionLanguage,简称DDL)、数据查询语言(DataQueryLanguage,简称DQL)、数据操作语言(DataManipulationLanguage,简称DML)、数据控制语言(DataControlLanguage,简称DCL)和事务控制语言的功能于一体。SQL语言主要用于完成对数据库的操作,例如查询数据、增加数据、修改数据、删除数据、创建和删除数据库对象、修改表结构等。,2.1SQL语言介绍,不同厂商的SQL产品及其关系数据库管理系统在SQL的实现上大部分是与SQL标准相兼容的,但是它们也并不是完全按照这个标准来实现,因此不同厂商生产的关系数据库系统在SQL的实现上还是有所差异的。另外,不同厂商生产的关系数据库系统对都对SQL做了不同程度的扩展,目前流行的对标准SQL的扩展版本主要有两个,PL/SQL和Transact-SQL。,2.1SQL语言介绍,PL/SQL是基于Oracle数据库的通信语言,Oracle公司已经将PL/SQL语言集成到Oracle的服务器中,它可以运行在任何的Oracle开发环境中。许多厂商也提供了基于Oracle数据库的专用的访问工具,比较常用的包括TOAD、Navicat和PL/SQLDeveloper。Transact-SQL是基于Sybase数据库与MicrosoftSQLServer数据库中的数据库通信语言。其主要的运行环境是SQLServerManagementStudio和SQLCMD。其中SQLCMD是一个命令行脚本工具,作为SQLServer数据库的访问工具,它可以在以在数据库服务器的任何目录路径下的命令行提示符窗口中执行。,2.2SQL语句的分类,SQL语句主要包括数据定义语言(DDL)、数据查询语言(DQL)、数据操作语言(DML)、数据控制语言(DCL)和事务控制语言等。数据定义语言(DDL):主要用于创建、修改和删除数据库对象(数据表、视图、索引等),包括CREATE、ALTER、DROP这3条语句。其中,CREATE语句用于创建数据库对象,例如,CREATETABLE表示创建数据表,CREATEVIEW表示创建视图,CREATEINDEX表示创建索引;ALTER语句用于修改数据库对象,例如,ALTERTABLE表示修改数据表的结构;DROP语句用于删除数据库对象,例如,DROPTABLE表示删除数据表,DROPVIEW表示删除视图,DROPINDEX表示删除索引。,2.2SQL语句的分类,数据查询语言(DQL):主要用于查询数据库中的数据。其主要语句为SELECT语句。SELECT语句是SQL语言中最重要的部分。SELECT语句中主要包括5个子句,分别是FROM子句,WHERE子句,GROUPBY子句,HAVING子句和WITH子句。数据操作语言(DML):主要用于更新数据库里数据表表中的数据,包括INSERT、UPDATE、DELETE三条语句。其中,INSERT语句用于向数据库中插入数据;UPDATE语句用于修改数据库中的数据;DELETE语句用于删除数据库中的数据。,2.2SQL语句的分类,数据控制语言(DCL):主要用授予和回收访问数据库的某种权限。包括GRANT、REVOKE等语句。其中,GRANT语句用于向用户授予权限;REVOKE语句向用户收回权限。事务控制语言:英文全拼为TransactionalControlStatement。主要用于数据库对事务的控制,保证数据库中数据的一致性,包括COMMIT、ROLLBACK等语句。其中,COMMIT用于事务的提交;ROLLBACK用于事务的回滚。,2.3SQL语言的特点,SQL是关系数据库中操作的标准语言,是一种非过程化语言。在数据库应用开发中,通过使用SQL语言可以完成数据表的创建、授予或者回收用户对数据库的存取权限、对数据进行查询、增加、修改、删除等功能。SQL语言的特点主要体现在以下几个方面。简单易学,语言结构简便。SQL语言中的语句命令较少,而且其语句命令与英文中的自然语言也很相近,语法也并不复杂,比起那些程序设计语言中的语法要简单的多,而且SQL语言也不需要关心运行系统底层的算法实现的过程,因此更容易学习和掌握。,2.3SQL语言的特点,非过程化语言。SQL语言是一种非过程化语言。使用SQL语言进行数据库操作时,开发人员或者用户只需要关心需要做的是什么,而不需要关心它是如何去执行这样的操作的。例如,是查询某个数据表中的数据记录,开发人员或者用户要做的就是使用SQL语言告诉数据库管理系统要检索什么样的数据记录,从哪一个数据表中检索,而对于这些记录是如何存取的、它们的存取路径是什么等信息都是由数据库管理系统自己来完成的,不需要开发人员或者用户去关心。数据库管理系统会优化访问路径并将执行的结果返回。,2.3SQL语言的特点,采用集合操作方式。无论是执行数据的查询操作,还是执行对数据的增加、修改和删除的更新操作,都可以是集合的操作方式。例如,使用一条SELECT语句可以将满足条件的多条数据记录全部查询出来,查询出来的是符合查询条件的数据记录的集合(读者可以思考一下,使用Java等编程语言,如果想获得一个集合中的记录,应该如何操作)。采用集合操作方式,可以大大提高数据的处理速度。SQL语言能够嵌入到高级语言中。SQL语言可以作为嵌入式语言,嵌入到高级语言(例如C语言等)中执行。SQL语言这种灵活性的使用方式也为程序开发人员开发和设计程序提供了极大的便利。,2.4常用数据类型,在创建数据表时,除了需要创建数据表的表名、列名之外,还需要为数据表中的每一列选择合适的数据类型。在数据库中,常用的数据类型包括整数类型、浮点类型、数值类型、日期时间类型、字符类型、二进制类型等。不同的数据库中,数据类型的定义也不完全相同。这一节就以Oracle数据库、MySQL数据库和MicrosoftSQLServer数据库为例,介绍在这3种数据库中,常用的数据类型定义及其使用方法。,2.4.1整数类型与浮点类型,2.4.1整数类型与浮点类型,整数类型的数据可以是正整数,也可以是负整数。在MySQL数据库中,这些整数类型还可以带一个参数用来表示数据最大显示的宽度。例如INT(4)表示显示数据列的列宽度为4。使用参数并不影响整数类型的取值范围。这个参数是可选的。在MySQL数据库中,浮点类型主要包括FLOAT和DOUBLE。其中,FLOAT表示单精度浮点数,DOUBLE表示双精度浮点数。,2.4.1整数类型与浮点类型,在MySQL数据库中,这些浮点数类型还可以包括两个参数。其中,参数m表示存储数据的有效数字的位数;参数n表示小数点后的位数。,2.4.1整数类型与浮点类型,FLOAT(5,2)122.456,2.4.1整数类型与浮点类型,FLOAT(5,2)转换前:122.456转换后:122.46,2.4.1整数类型与浮点类型,在MicrosoftSQLServer数据库中,也可以使用TINYINT、SMALLINT、INT和BIGINT存储整型数据,其取值范围与表表2.1中TINYINT、SMALLINT、INT和BIGINT类型的取值范围相同。浮点类型数据可以定义为REAL类型和FLOAT类型。其中,REAL类型占用4个字节的存储空间,可以精确到小数点后7位,其取值范围为-2.4E38到2.4E38;FLOAT类型占用8个字节的存储空间,可以精确到小数点后15位,其取值范围为-2.7E308到2.7E308。,2.4.2数值类型,在Oracle数据库中。可以使用NUMBER(m,n)来定义数字类型的数据。其中,参数m表示存储数据的有效数字的位数;参数n表示小数点后的位数。例如NUMBER(5,2),第一个参数5表示显示的数字总位数为5,第二个参数表示小数点后的数字个数。如果把数据122.456插入到定义为NUMBER(5,2)的数据列中,则实际放入到该列的数据为122.46。,2.4.3字符类型,在数据库中,字符类型是用来存储字符串值的。不同的数据库,字符类型的定义也不完全相同,下面以Oracle数据库、MySQL数据库以及MicrosoftSQLServer数据库为例,介绍在这3种数据库中字符类型不同的定义方法。,2.4.3字符类型,1Oracle数据库CHAR或者是VARCHAR22MySQL数据库CHAR、VARCHAR、TEXT、MEDIUMTEXTLONGTEXT3MicrosoftSQLServer数据库CHAR,VARCHAR、TEXT注意:使用CHAR定义的列存储的字符串所占空间是不可变的,使用VARCHAR2定义的列存储的字符串所占空间是可变的。,2.4.4日期与时间类型,在数据库中,日期与时间类型是用来存储日期和时间值的。不同的数据库,日期与时间类型的定义也不完全相同,下面以Oracle数据库、MySQL数据库以及MicrosoftSQLServer数据库为例,介绍在这3种数据库中日期与时间类型不同的定义方法。,2.4.4Oracle数据库日期与时间类型,1Oracle数据库在Oracle数据库中可以使用DATE、TIMESTAMP等形式定义日期时间类型的数据。其中DATE类型在英文版本中日期的默认格式为DD-MON-YY的形式。例如,10-SEP-09;在中文版本中的默认日期格式为日-月-年,例如,10-9月-09。TIMESTAMP类型在英文版本中日期的默认格式为DD-MON-YYHH.MM.SS.AM。例如,10-SEP-0912.22.000000PM。在中文版本中的默认日期格式为日-月-年时、分、秒,例如,10-9月-0912.22.000000下午。它除了包含时、分、秒之外,还包含了秒的小数部分。秒值精确到小数点后6位。,2.4.4MySQL数据库日期与时间类型,2MySQL数据库DATE类型的数据默认格式为YYYY-MM-DD,例如,2009-08-10TIME类型的数据默认格式为HH:MM:SS,例如,18:13:23DATETIME类型的数据默认格式为YYYY-MM-DDHH:MM:SS,例如,2009-08-1018:13:23。,2.4.4SQLServer数据库日期与时间类型,3MicrosoftSQLServer数据库DATETIME类型需要8个字节的存储空间,其日期的取值范围从1753年1月1日到9999年12月31日。SMALLDATETIME类型需要4个字节的存储空间,其日期的取值范围从1900年1月1日到2079年6月6日,时间部分可以精确到分钟。SMALLDATETIME类型的精确度没有DATETIME类型的精确度高。SQLServer2008中,增加了四种DATETIME类型的数据,分别为DATE、TIME、DATETIMEOFFSET和DATETIME2。,2.4.5二进制类型,在数据库中,二进制类型是用来存储二进制数据的。不同的数据库,二进制类型的定义也不完全相同,在Oracle数据库中可以使用BLOB存储二进制数据信息,最多可以存储4GB。在MySQL数据库中除了可以使用BLOB存储二进制的数据一位,还可以使用TINYBLOB、MEDIUMBLOB、LONGBLOB等存储二进制类型的数据。在MicrosoftSQLServer数据库中,可以使用BINARY、VARIBINARY和IMAGE存储二进制数据信息。其中,在IMAGE数据类型中存储的数据是以位字符串存储的,它不是通过MicrosoftSQLServer解释的,而是需要通过应用程序来解释。,2.5SQL语句书写规范,在使用SQL语言执行数据的查询、更新等操作时,还需要了解SQL语言书写规范。这一节就来介绍SQL语言中一些主要的书写规范。SQL语言中不区分关键
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030禽类屠宰机械行业市场发展现状及竞争格局与投资战略研究报告
- 2025-2030眉毛生长产品行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2030皮卡行业市场深度调研及发展趋势与投资战略研究报告
- 2025-2030男靴产业行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2030玻璃水行业市场深度调研及发展策略与投资前景预测研究报告
- 2025-2030特种纸产业行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2030牛肉干市场投资前景分析及供需格局研究研究报告
- 2025-2030烟熏培根行业市场现状供需分析及重点企业投资评估规划分析研究报告
- 2025-2030清洁设备行业发展分析及竞争格局与投资战略研究咨询报告
- 2025-2030液晶彩电行业风险投资态势及投融资策略指引报告
- 电工电子技术及应用全套课件
- 2022年龙岩市第一医院医护人员招聘笔试模拟试题及答案解析
- DB33T 1233-2021 基坑工程地下连续墙技术规程
- 2022版义务教育语文课程标准(2022版含新增和修订部分)
- 社区家庭病床护理记录文本汇总
- 色谱、质谱、联用
- 施工项目人员任命书(范本)
- 苯酐装置国内同类装置事故案例
- 苏教版小学数学四年级下册《图形旋转》练习题
- 智慧树知到《开启疑案之门的金钥匙司法鉴定》见面课答案
- 结构化面试技巧(完整版).ppt
评论
0/150
提交评论