




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据库技术第5讲SQL语言
数据DBMSClient请求回答SQL语言Oracle8i/9iSQLServer2000PowerBuilderVBDelphiC++Builder数据库技术第5讲SQL语言数据DBMSClient1SQLServer2000简介
2000年2月Microsoft公司发布了Windows2000操作系统家族。
Windows2000ProfessionalWindows2000ServerWindows2000AdvancedServerWindows2000DatacenterServerSQLServer2000客户端软件SQLServer2000个人版SQLServer2000标准版SQLServer2000企业版SQLServer2000简介2如何使用SQLServer2000?1、利用企业管理器(EnterpriseManager)建立数据库、用户,并且对用户授权;2、利用查询分析器(QueryAnalyzer)对SQLServer进行查询、管理。如何使用SQLServer2000?131、SQL语言概述SQL(StructuredQuerylanguage)语言是1974年由Boyce和Chamberlin提出的。1975年~1979年IBM公司SanJoseResearchLaboratory研制了著名的关系数据库管理系统原型SystemR,并实现了这种语言。由于它功能丰富、语言简捷,倍受用户及计算机工业界欢迎,被众多计算机公司和软件公司所采用。经各公司的不断修改、扩充和完善,SQL语言最终发展成为关系数据库的标准语言。1、SQL语言概述41986年10月美国国家标准局(AmericanNationalStandardInstitute,简称ANSI)的数据库委员会X3H2批准了SQL作为关系数据库语言的美国标准。同年公布了SQL标准文本(简称SQL-86)。1987年国际标准化组织(InternationalOrganizationforstandardization,简称ISO)也通过了这一标准。此后ANSI不断修改和完善SQL标准,并于1989年公布了SQL-89标准。1992年又公布了SQL-92标准。1999年又公布了SQL-99标准。1986年10月美国国家标准局(Americ5SQL-99是SQL-92的一个超集。许多数据库系统支持SQL-99的新结构,但目前还没有一个数据库系统完全支持SQL-99的所有新结构。实际上甚至目前的数据库系统不能完全支持SQL-92。SQL-99是SQL-92的一个超集。许多数6自SQL成为国际标准语言以后,各个数据库厂家纷纷推出各自的SQL软件或与SQL的接口软件。这就使大多数数据库系统均用SQL作为共同的数据存取语言和标准接口,使不同数据库系统之间的互操作有了共同的基础。这个意义十分重大。因此,有人把确立SQL为关系数据库语言标准及其后的发展称为是一场革命。自SQL成为国际标准语言以后,各个数据库厂家7SQL成为国际标准,对数据库以外的领域也产生了很大影响,有不少软件产品将SQL语言的数据查询功能与图形功能、软件工程工具、软件开发工具、人工智能程序结合起来。SQL已成为数据库领域中一个主流语言。SQL成为国际标准,对数据库以外的领域也产生82、SQL语言的特点集DDL、DML、DCL于一体;高度非过程化;面向集合的操作方式;一种语法提供两种操作方式(交互式、嵌入式)。2、SQL语言的特点9嵌入式SQLSQL是一种强有力的声明性查询语言,它在许多情况下比通用编程语言的编码简单许多。但是使用通用编程语言(至少具有过程化语言的特性)访问数据库还是很必要的,原因有二:1、SQL不能表达所有查询要求。2、非声明性的动作(例如,打印一份报告或把一次查询结果送到一个图形用户界面中)都不能用SQL实现。嵌入式SQL10动态SQL
SQL的动态SQL组件允许程序在运行时构造、提交SQL查询。使用动态SQL,程序可以在运行时以字符串的形式生成SQL查询。动态SQL11数据类型(SQL-92)char(n):固定长度的字符串。varchar(n):可变长字符串。int:整数。smallint:小整数类型。numeric(p,d):定点数,精度p位,小数点右边d位。real:浮点数。doubleprecision:双精度浮点数。date:日期(年、月、日)。time:时间(小时、分、秒)。interval:两个date或time类型数据之间的差。数据类型(SQL-92)12注意:目前各公司都在自己的DBMS上实现了对SQL语言的支持,但在语言的功能上都根据实际需要进行了扩充或简化。特别是,都增加了对过程化语句的支持功能。例如,Oracle所支持的是PL/SQLSQLServer2000支持的是Transact-SQL注意:目前各公司都在自己的DBMS上实现了对SQL语言的支持133、SQL语言的三级模式SQLViewTableTableTableDatafile3、SQL语言的三级模式SQLViewTableTableT144、SQL语言数据定义(DDL)CreatetableDroptableCreateViewDropViewCreateIndexDropIndex数据操纵(DML)SelectUpdateInsertDelete数据控制(DCL)GrantRevoke4、SQL语言15SQL语言举例createtableTeacher(TnointegerPrimaryKey,Tnamechar(6)notnull,Titlechar(6),Deptchar(10));insertintoTeachervalues(101,‘李华’,‘讲师’,‘计算机’);insertintoTeacher(Tno,Tname,Dept)values(104,'李春生','计算机');SQL语言举例insertintoTeacher16select*fromteacherwheredept='通信';selectTname,Deptfromteacherwheredept=‘通信’;select*fromteacherwheredept=‘通信’andTitle=‘讲师’;updateteachersetdept='通信工程'wheredept='通信';deletefromteacherwheredept='计算机';createtableTeacher(TnointegerPrimaryKey,Tnamechar(6)notnull,Titlechar(6),Deptchar(10));select*fromteacherupdatete17createTableCourse(Cnointegernotnull,Tnointegernotnull,Cnamechar(10)notnull,creditnumeric(3,1)notnull,Primarykey(cno,tno));insertintoCoursevalues(1,101,‘数据库’,3.5);insertintoCoursevalues(1,103,'数据库',3.5);insertintoCoursevalues(2,102,'网络',3);insertintoCoursevalues(2,101,'网络',3);insertintoCoursevalues(3,103,‘操作系统’,3);createTableCourse(insertint18selectdistinctcnamefromcourse;select*fromcoursewherecredit>3;select*fromcoursewherecreditbetween2and3;createTableCourse(Cnointegernotnull,Tnointegernotnull,Cnamechar(10)notnull,creditnumeric(3,1)notnull,Primarykey(cno,tno));selectdistinctcnamefromcou19select*fromteacherwheredeptin('计算机','自动化');select*fromteacherwheredeptnotin('计算机');select*fromteacherwheretnamelike'李%';select*fromteacherwheretitleisnull;select*fromteacherorderbytnodesc;select*fromteacherorderbytitle;selectcount(*)fromteacher;selectcount(distinctcname)fromcourse;select*fromteacherwherede20数据库技术第6讲SQL语言(二)
数据DBMSClient请求回答SQL语言Oracle8i/9iSQLServer2000PowerBuilderVBDelphiC++Builder数据库技术第6讲SQL语言(二)数据DBMSCli21createTableCourse(Cnointegernotnull,Tnointegernotnull,Cnamechar(10)notnull,creditnumeric(3,1)notnull,Primarykey(cno,tno));createtableTeacher(TnointegerPrimaryKey,Tnamechar(6)notnull,Titlechar(6),Deptchar(10));select*fromteacher,course;select*fromteacher,coursewhereteacher.tno=course.tno;createTableCourse(createtab22selectcname,creditfromcoursewhereTnoin(selectTnofromTeacherwhereTname='李华');selectcname,creditfromteacher,coursewhere(teacher.tno=course.tno)andTname='李华';查询李华所授课程的名称,学分selectcname,creditfromcours23selectcname,creditfromcoursewhereTnoin(selectTnofromTeacherwhereTitle='讲师');selectcname,creditfromteacher,coursewhere(teacher.tno=course.tno)andTitle='讲师';selectcname,creditfromcours24视图(View)createviewv_t_casselectTeacher.Tno,Tname,Title,Dept,Cno,CnamefromTeacher,coursewhereTeacher.Tno=course.Tno;Select*fromv_t_c;Select*fromv_t_cwhereTno=101;视图(View)25索引createTableCourse(Cnointegernotnull,Tnointegernotnull,Cnamechar(10)notnull,creditnumeric(3,1)notnull);createuniqueindexcourse_indoncourse(Tno,Cno);createTableCourse(Cnointegernotnull,Tnointegernotnull,Cnamechar(10)notnull,creditnumeric(3,1)notnull,Primarykey(cno,tno));索引createTableCourse(26Groupby和Having子句createtableTeacher(TnointegerPrimaryKey,Tnamechar(6)notnull,Titlechar(6),Deptchar(10));select*fromteacher;selecttitle,count(*)fromteachergroupbytitle;selecttitle,count(*)fromteachergroupbytitlehavingcount(*)>1;Groupby和Having子句createtab27认识nullinsertintoTeachervalues(903,'刘力伟','助教','计算机');insertintoTeachervalues(904,‘赵莺’,null,‘计算机’);insertintoTeachervalues(905,'张大军',null,null);createtableTeacher(TnointegerPrimaryKey,Tnamechar(6)notnull,Titlechar(6),Deptchar(10));认识nullcreatetableTeacher(28外键createtablefather_t(Cnointegerprimarykey,Cnamechar(10)notnull,Creditnumeric(3,1));createtableson_t(st_nointegerprimarykey,
fk_cnointeger,gradeinteger,foreignkey(fk_cno)referencesfather_t(Cno));insertintofather_tvalues(1,'数据库',2);insertintofather_tvalues(2,'网络',3);insertintoson_tvalues(101,2,86);insertintoson_tvalues(102,5,78);外键createtableson_tinsertint29授权GrantselectonTeachertost2;RevokeselectonTeacherfromst2;授权30开发人员用户数据库系统的权限DBA管理员开发人员用户数据库系统的权限DBA管理员31游标将SQL语言嵌入到宿主语言中出现的一个问题是失配,因为SQL是对记录的集合进行操作,而宿主语言不完全支持记录集合的操作。解决的办法就是从本质上提供一种机制支持从关系(表)中一次检索一行。这种机制称为游标,任何SQL查询都可以声明一个游标。声明游标后,就可以打开它,取出下一行,然后移动游标。这样可以通过把游标定位在特殊的行,并读取它的内容来检索表中的行。游标32ODBC和JDBC
嵌入式SQL使得SQL与通用编程语言结合起来。ODBC(opendatabaseconnectivity)和JDBC(Javadatabaseconnectivity)促进了SQL与通用编程语言的集成。应用ODBC/JDBCDBMSSQLJavaODBC和JDBC应用ODBC/JDBCDBMSSQL33数据库技术其他关系语言
数据DBMSClient请求回答QBEDatalog数据库技术其他关系语言数据DBMSClient请求回答QBE34QBE(QuerybyExample)是一种图形化的语言,它的查询语句看上去就像是表格,是用“例子”表达的。QBE和它的变体广泛应用在个人计算机的数据库系统里(例如,Access和Excel)。Datalog的文法以Prolog语言为模型,虽然目前没有被商业应用,但它已经应用在许多研究性的数据库系统里(特别是在知识库系统)。QBE(QuerybyExample)35数据库技术第5讲SQL语言
数据DBMSClient请求回答SQL语言Oracle8i/9iSQLServer2000PowerBuilderVBDelphiC++Builder数据库技术第5讲SQL语言数据DBMSClient36SQLServer2000简介
2000年2月Microsoft公司发布了Windows2000操作系统家族。
Windows2000ProfessionalWindows2000ServerWindows2000AdvancedServerWindows2000DatacenterServerSQLServer2000客户端软件SQLServer2000个人版SQLServer2000标准版SQLServer2000企业版SQLServer2000简介37如何使用SQLServer2000?1、利用企业管理器(EnterpriseManager)建立数据库、用户,并且对用户授权;2、利用查询分析器(QueryAnalyzer)对SQLServer进行查询、管理。如何使用SQLServer2000?1381、SQL语言概述SQL(StructuredQuerylanguage)语言是1974年由Boyce和Chamberlin提出的。1975年~1979年IBM公司SanJoseResearchLaboratory研制了著名的关系数据库管理系统原型SystemR,并实现了这种语言。由于它功能丰富、语言简捷,倍受用户及计算机工业界欢迎,被众多计算机公司和软件公司所采用。经各公司的不断修改、扩充和完善,SQL语言最终发展成为关系数据库的标准语言。1、SQL语言概述391986年10月美国国家标准局(AmericanNationalStandardInstitute,简称ANSI)的数据库委员会X3H2批准了SQL作为关系数据库语言的美国标准。同年公布了SQL标准文本(简称SQL-86)。1987年国际标准化组织(InternationalOrganizationforstandardization,简称ISO)也通过了这一标准。此后ANSI不断修改和完善SQL标准,并于1989年公布了SQL-89标准。1992年又公布了SQL-92标准。1999年又公布了SQL-99标准。1986年10月美国国家标准局(Americ40SQL-99是SQL-92的一个超集。许多数据库系统支持SQL-99的新结构,但目前还没有一个数据库系统完全支持SQL-99的所有新结构。实际上甚至目前的数据库系统不能完全支持SQL-92。SQL-99是SQL-92的一个超集。许多数41自SQL成为国际标准语言以后,各个数据库厂家纷纷推出各自的SQL软件或与SQL的接口软件。这就使大多数数据库系统均用SQL作为共同的数据存取语言和标准接口,使不同数据库系统之间的互操作有了共同的基础。这个意义十分重大。因此,有人把确立SQL为关系数据库语言标准及其后的发展称为是一场革命。自SQL成为国际标准语言以后,各个数据库厂家42SQL成为国际标准,对数据库以外的领域也产生了很大影响,有不少软件产品将SQL语言的数据查询功能与图形功能、软件工程工具、软件开发工具、人工智能程序结合起来。SQL已成为数据库领域中一个主流语言。SQL成为国际标准,对数据库以外的领域也产生432、SQL语言的特点集DDL、DML、DCL于一体;高度非过程化;面向集合的操作方式;一种语法提供两种操作方式(交互式、嵌入式)。2、SQL语言的特点44嵌入式SQLSQL是一种强有力的声明性查询语言,它在许多情况下比通用编程语言的编码简单许多。但是使用通用编程语言(至少具有过程化语言的特性)访问数据库还是很必要的,原因有二:1、SQL不能表达所有查询要求。2、非声明性的动作(例如,打印一份报告或把一次查询结果送到一个图形用户界面中)都不能用SQL实现。嵌入式SQL45动态SQL
SQL的动态SQL组件允许程序在运行时构造、提交SQL查询。使用动态SQL,程序可以在运行时以字符串的形式生成SQL查询。动态SQL46数据类型(SQL-92)char(n):固定长度的字符串。varchar(n):可变长字符串。int:整数。smallint:小整数类型。numeric(p,d):定点数,精度p位,小数点右边d位。real:浮点数。doubleprecision:双精度浮点数。date:日期(年、月、日)。time:时间(小时、分、秒)。interval:两个date或time类型数据之间的差。数据类型(SQL-92)47注意:目前各公司都在自己的DBMS上实现了对SQL语言的支持,但在语言的功能上都根据实际需要进行了扩充或简化。特别是,都增加了对过程化语句的支持功能。例如,Oracle所支持的是PL/SQLSQLServer2000支持的是Transact-SQL注意:目前各公司都在自己的DBMS上实现了对SQL语言的支持483、SQL语言的三级模式SQLViewTableTableTableDatafile3、SQL语言的三级模式SQLViewTableTableT494、SQL语言数据定义(DDL)CreatetableDroptableCreateViewDropViewCreateIndexDropIndex数据操纵(DML)SelectUpdateInsertDelete数据控制(DCL)GrantRevoke4、SQL语言50SQL语言举例createtableTeacher(TnointegerPrimaryKey,Tnamechar(6)notnull,Titlechar(6),Deptchar(10));insertintoTeachervalues(101,‘李华’,‘讲师’,‘计算机’);insertintoTeacher(Tno,Tname,Dept)values(104,'李春生','计算机');SQL语言举例insertintoTeacher51select*fromteacherwheredept='通信';selectTname,Deptfromteacherwheredept=‘通信’;select*fromteacherwheredept=‘通信’andTitle=‘讲师’;updateteachersetdept='通信工程'wheredept='通信';deletefromteacherwheredept='计算机';createtableTeacher(TnointegerPrimaryKey,Tnamechar(6)notnull,Titlechar(6),Deptchar(10));select*fromteacherupdatete52createTableCourse(Cnointegernotnull,Tnointegernotnull,Cnamechar(10)notnull,creditnumeric(3,1)notnull,Primarykey(cno,tno));insertintoCoursevalues(1,101,‘数据库’,3.5);insertintoCoursevalues(1,103,'数据库',3.5);insertintoCoursevalues(2,102,'网络',3);insertintoCoursevalues(2,101,'网络',3);insertintoCoursevalues(3,103,‘操作系统’,3);createTableCourse(insertint53selectdistinctcnamefromcourse;select*fromcoursewherecredit>3;select*fromcoursewherecreditbetween2and3;createTableCourse(Cnointegernotnull,Tnointegernotnull,Cnamechar(10)notnull,creditnumeric(3,1)notnull,Primarykey(cno,tno));selectdistinctcnamefromcou54select*fromteacherwheredeptin('计算机','自动化');select*fromteacherwheredeptnotin('计算机');select*fromteacherwheretnamelike'李%';select*fromteacherwheretitleisnull;select*fromteacherorderbytnodesc;select*fromteacherorderbytitle;selectcount(*)fromteacher;selectcount(distinctcname)fromcourse;select*fromteacherwherede55数据库技术第6讲SQL语言(二)
数据DBMSClient请求回答SQL语言Oracle8i/9iSQLServer2000PowerBuilderVBDelphiC++Builder数据库技术第6讲SQL语言(二)数据DBMSCli56createTableCourse(Cnointegernotnull,Tnointegernotnull,Cnamechar(10)notnull,creditnumeric(3,1)notnull,Primarykey(cno,tno));createtableTeacher(TnointegerPrimaryKey,Tnamechar(6)notnull,Titlechar(6),Deptchar(10));select*fromteacher,course;select*fromteacher,coursewhereteacher.tno=course.tno;createTableCourse(createtab57selectcname,creditfromcoursewhereTnoin(selectTnofromTeacherwhereTname='李华');selectcname,creditfromteacher,coursewhere(teacher.tno=course.tno)andTname='李华';查询李华所授课程的名称,学分selectcname,creditfromcours58selectcname,creditfromcoursewhereTnoin(selectTnofromTeacherwhereTitle='讲师');selectcname,creditfromteacher,coursewhere(teacher.tno=course.tno)andTitle='讲师';selectcname,creditfromcours59视图(View)createviewv_t_casselectTeacher.Tno,Tname,Title,Dept,Cno,CnamefromTeacher,coursewhereTeacher.Tno=course.Tno;Select*fromv_t_c;Select*fromv_t_cwhereTno=101;视图(View)60索引createTableCourse(Cnointegernotnull,Tnointegernotnull,Cnamechar(10)notnull,creditnumeric(3,1)notnull);createuniqueindexcourse_indoncourse(Tno,Cno);createTableCourse(Cnointegernotnull,Tnointegernotnull,Cnamechar(10)notnull,creditnumeric(3,1)notnull,Primarykey(cno,tno));索引createTableCourse(61Groupby和Having子句createtableTeacher(TnointegerPrimaryKey,Tnamechar(6)notnull,Titlechar(6),Deptchar(10));select*fromteacher;selecttitle,count(*)fromteachergroupbytitle;selecttitle,count(*)fromteachergroupbytitlehavingc
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 社交媒体时代的网络舆论引导艺术
- 科技与商业大数据技术的创新实践
- 2025年度股权质押补充协议:针对物联网产业的股权质押补充协议
- 2025年度智慧社区管理系统软件开发合同
- 知识经济下的文化创新研究以知识付费为视角
- 社区服务人员心理素质与情绪管理
- 2025年02月贵州省自然资源厅公开招聘事业单位14人笔试历年典型考题(历年真题考点)解题思路附带答案详解
- 2025至2030年数码打印机项目投资价值分析报告
- 2025年中国自能式六氟化硫断路器市场调查研究报告
- 科技企业间知识产权合作的未来趋势
- 2025年企业法务顾问聘用协议范本
- DB37-T4824-2025 乡镇(街道)应急物资配备指南
- 《康复评定技术》课件-第五章 运动控制
- 【理特咨询】2024生成式人工智能GenAI在生物医药大健康行业应用进展报告
- 机油化学品安全技术(MSDS)说明书
- 近三年无行贿犯罪行为承诺书
- 2024年辽宁铁道职业技术学院高职单招(英语/数学/语文)笔试历年参考题库含答案解析
- 社区工作者经典备考题库(必背300题)
- 国家开放大学(湖南)
- 公路工程决算编制办法(交公路发2004-507号)附表
- 煤矿机电质量标准化执行标准
评论
0/150
提交评论