,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,*,Click to edit Master title style,Visual FoxPro,应用基础与,面向对象 程序设计教程,Visual FoxPro,应用基础与,面向对象程序设计教程,第8章 SQL关系数据库查询语言,8.4,数据查询,8.3,数据更新,8.2,数据定义,8.1 SQL,语言概述,Visual FoxPro,应用基础与,面向对象程序设计教程,8.1 SQL语言概述,8.1.2 SQL,语言的功能,8.1.1 SQL,语言的特点,Visual FoxPro,应用基础与,面向对象程序设计教程,8.1.1 SQL语言的特点,1.,高度的综合,2.,非过程化,3.,采用面向集合的操作方式,4.,一种语法结构两种使用方式,5.,语言结构简捷,6.,支持三级模式结构,Visual FoxPro,应用基础与,面向对象程序设计教程,8.1.2 SQL语言的功能,SQL,语言具有以下,5,个方面的功能。,1.,数据定义功能,2.,数据查询功能,3.,数据更新功能,4.,视图管理功能,5.,数据控制功能,Visual FoxPro,应用基础与,面向对象程序设计教程,8.2 数据定义,8.2.4,删除表,8.2.3,修改表结构,8.2.2,创建表,8.2.1 SQL,语言基本数据类型,Visual FoxPro,应用基础与,面向对象程序设计教程,8.2.1 SQL语言基本数据类型,1.,数值型,Integer,、,Float(n),、,Double,、,Numberic(p,q),2.,字符型,Char(n),、,Text/Memo,、,Binary,3.,日期、时间型,Date,、,Time,、,DateTime,4.,逻辑型,Boolean,5.,货币型,Money,6.OLE,型,General,Visual FoxPro,应用基础与,面向对象程序设计教程,8.2.2 创建表,使用,Create Table,语句定义基本表。,Create Table,(,,,,,,,),;,Visual FoxPro,应用基础与,面向对象程序设计教程,8.2.2 创建表,例:创建,“,人才档案,”,数据库的基本表,已知有:,人才档案(编号,姓名,性别,出生日期,学历,政治面貌,民族,工资现状,工作简历,照片),Visual FoxPro,应用基础与,面向对象程序设计教程,8.2.3 修改表结构,使用,ALTER TABLE,语句修改表的结构。,Alter Table,Add ,DropConstraint|C0lumn,Alter ,;,Visual FoxPro,应用基础与,面向对象程序设计教程,8.2.3 修改表结构,例:修改,“,人才管理,”,数据库中已有表的结构,在,“,人才档案,”,表中增加一个,“,备注,”,字段。,Visual FoxPro,应用基础与,面向对象程序设计教程,8.2.4 删除表,使用,DROP TABLE,语句删除表。,Drop Table,例:删除,“,人才管理,”,数据库中的,“,人才档案备份,”,表。,Visual FoxPro,应用基础与,面向对象程序设计教程,8.3 数据更新,8.3.3,删除记录,8.3.2,更新记录,8.3.1,插入记录,Visual FoxPro,应用基础与,面向对象程序设计教程,8.3.1 插入记录,在,SQL,语言中,插入数据使用,Insert,语句。,Insert Into(,,,,,),Values(,),例:给,“,人才管理,”,数据库中的,“,人才档案,”,表添加以下两组数据。,(,Bj10001,,刘伟箭,男,,08/23/60,,大学,党员,汉族,,9000,,略,略),(,Bj11002,,刘简捷,男,,12/31/58,,大学,民主党派,蒙古族,,6800,,略,略),Visual FoxPro,应用基础与,面向对象程序设计教程,8.3.2 更新记录,在,SQL,语言中,更新数据表中的数据可使用,Update,语句。,Update Set =,,,=,Where,例:更新,“,人才管理,”,数据库中的,“,人才档案,”,表中的数据,将所有的,“,政治面貌,”,字段取值为,“,党员,”,更新为,“,团员,”,。,Visual FoxPro,应用基础与,面向对象程序设计教程,8.3.3 删除记录,在,SQL,语言中,删除表中数据可使用,Delete,语句。,Delete From Where,例:删除,“,人才管理,”,数据库中的,“,人才档案,”,表中的数据,将所有的,“,学历,”,字段取值,“,大学,”,的数据进行逻辑删除。,Visual FoxPro,应用基础与,面向对象程序设计教程,8.4 数据查询,8.4.4,嵌套查询,8.4.3,条件查询,8.4.2,基本查询,8.4.1 Select,语句,8.4.6,排序查询,8.4.7,连接查询,8.4.5,分组查询,Visual FoxPro,应用基础与,面向对象程序设计教程,8.4.1 Select语句,Select,语句能够完成单表查询、多表查询和嵌套查询等操作。,Select All|Distinct|,From,Left Right Join On,Where,Group By Having,Order By Asc Desc,Visual FoxPro,应用基础与,面向对象程序设计教程,8.4.1 Select语句,Visual FoxPro,应用基础与,面向对象程序设计教程,8.4.1 Select语句,Visual FoxPro,应用基础与,面向对象程序设计教程,8.4.2 基本查询,1.,检索表中所有的记录和字段,例:利用,“,人才档案,”,表中的数据创建一个查询,其结果包含,“,人才档案,”,表所有字段。检索表中所有的记录和字段。,Visual FoxPro,应用基础与,面向对象程序设计教程,8.4.2 基本查询,2.,检索表中指定的字段,例:利用,“,人才档案,”,表中的数据创建一个查询,其结果包含,“,编号,”,、,“,姓名,”,、,“,性别,”,、,“,出生日期,”,、,“,学历,”,和,“,工资现状,”,6,个字段的内容。即检索数据库表中指定的字段。,Visual FoxPro,应用基础与,面向对象程序设计教程,8.4.2 基本查询,3.,检索表中指定的字段和产生新字段,例:利用,“,人才档案,”,表中的数据创建一个查询,其结果包含,“,编号,”,、,“,姓名,”,、,“,性别,”,和,“,学历,”,,并增加一个,“,年龄,”,字段。即检索数据库表中指定的字段和产生新字段。,Visual FoxPro,应用基础与,面向对象程序设计教程,8.4.3 条件查询,1.,检索表中满足指定条件的记录,例:利用,“,人才档案,”,表中的数据创建一个查询,其结果包含,“,人才档案,”,表所有的字段的内容,而且只选择少数民族人才的记录。即检索数据库表中指定的记录。,Visual FoxPro,应用基础与,面向对象程序设计教程,8.4.3 条件查询,2.,检索表中指定的字段和指定的记录,例:利用,“,人才档案,”,表中的数据创建一个查询,其结果包含,“,编号,”,、,“,姓名,”,、,“,性别,”,、,“,出生日期,”,、,“,工资现状,”,5,个字段的内容,只选择,“,工资现状,”,超过,7000,元的记录。即检索数据库表中指定的字段和指定的记录。,Visual FoxPro,应用基础与,面向对象程序设计教程,8.4.4 嵌套查询,1.,用于相等(,=,)判断的子查询,例:利用,“,求职期望,”,和,“,岗位类别,”,表中的数据创建一个查询,查找编号为,“,jl04002,”,求职的岗位类别的记录。即检索数据库中,其,“,父,”,表中某字段值与,“,子,”,表中某字段值相等的记录。,Visual FoxPro,应用基础与,面向对象程序设计教程,8.4.4 嵌套查询,2.,用于,In,短语的子查询,例:利用,“,专业特长,”,和,“,人才档案,”,表中的数据创建一个查询,查找,“,专业,”,与,“,计算机,”,相关的记录。即检索数据库中,其,“,父,”,表中某字段值与,“,子,”,表中某字段值其中一个相匹配的记录。,Visual FoxPro,应用基础与,面向对象程序设计教程,8.4.4 嵌套查询,3.,用于比较运算符的子查询,例:利用,“,人才档案,”,和,“,求职期望,”,表中的数据创建一个查询,查找,“,希望工资,”,大于,“,学历,”,为,“,大学,”,的平均工资的相关记录。即检索数据库中,其,“,父,”,表中某字段值大于,“,子,”,表中某字段值的记录。,Visual FoxPro,应用基础与,面向对象程序设计教程,8.4.4 嵌套查询,4.,用于,Any,的子查询,例:利用,“,求职期望,”,和,“,岗位类别,”,表中的数据创建一个查询,查找与,“,企业性质,”,为,“,全民,”,表中,“,岗位编号,”,相等的任意一个记录。即检索数据库中,其,“,父,”,表中某字段值等于,“,子,”,表中某字段值任意一个的记录。,Visual FoxPro,应用基础与,面向对象程序设计教程,8.4.4 嵌套查询,5.,用于,All,的子查询,例:利用,“,人才档案,”,和,“,求职期望,”,表中的数据创建一个查询,查找,“,希望工资,”,大于所有,“,人才档案,”,表中,“,编号,”,以,“,jl,”,开头的,“,工资现状,”,的任意个记录。即检索数据库中,其,“,父,”,表中某字段值大于所有,“,子,”,表中某字段值的记录。,Visual FoxPro,应用基础与,面向对象程序设计教程,8.4.5 分组查询,例:利用,“,人才档案,”,表中的数据创建一个查询,统计不同学历的人数。即对数据库表中数据进行分类统计。,Visual FoxPro,应用基础与,面向对象程序设计教程,8.4.6 排序查询,例:利用,“,人才档案,”,表中的数据创建一个查询,,“,编号,”,、,“,姓名,”,、,“,性别,”,、,“,出生日期,”,、,“,工资现状,”,5,个字段的内容,并选择工资现状超过,7000,元,少于,4000,元的记录,且查询结果按工资现状字段值升序排列。即检索数据库表中,按字段值升序排列查询结果。,Visual FoxPro,应用基础与,面向对象程序设计教程,8.4.7 连接查询,1.,自然连接,例:利用,“,人才档案,”,表和,“,专业特长,”,表中的数据创建一个查询,其结果包含,“,人才档案,”,表中的,“,编号,”,、,“,姓名,”,、,“,性别,”,、,“,出生日期,”,、,“,工资现状,”,、,“,政治面貌,”,6,个字段和,“,专业特长,”,表中的,“,专业,”,、,“,专业年限,”,、,“,职称,”,、,“,外语水平,”,4,个字段,共,10,个字段的内容。,Visual FoxPro,应用基础与,面向对象程序设计教程,8.4.7 连接查询,2.,左连接,例:利用,“,人才档案,”,表和,“,成就成果,”,表中的数据创建一个查询,其结果包含表,“,人才档案,”,中的,“,编号,”,、,“,姓名,”,2,个字段和,“,成就成果,”,表中的,“,成果名称,”,、,“,成果类别,”,、,“,成果出处,”,3,个字段,共,5,个字段的内容。,Visual FoxPro,应用基础与,面向对象程序设计教程,8.4.7 连接查询,3.,右连接,例:利用,“,人才档案,”,表和,“,专业特长,x,”,表中的数据创建一个查询,其结果包含,“,人才档案,”,表中的,“,编号,”,、,“,姓名,”,、,“,性别,”,、,“,出生日期,”,、,“,工资现状,”,、,“,政治面貌,”,6,个字段和,“,专业特长,x,”,表中的