您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > 03_1 Access中SQL查询语言(1)
3.SQL语言的应用3.1SQL历史和优点3.2数据查询3.3数据操纵3.SQL语言的应用SQL全称是结构化查询语言StructuredQueryLanguage---SQL目前SQL语言是关系数据库的标准语言2020/2/52数据库应用3.SQL语言的应用SQL语句分成三类,各类所包含的语句如下:数据操纵语言DML(DataManipulationLanguage)SELECT,INSERT,UPDATE和DELETE数据定义语言DDL(DataDefinitionLanguage)CREATE,ALTER和DROP数据控制语言DCL(DataControlLanguage)相关的权限分配2020/2/53数据库应用3.1SQL历史和优点3.1.1SQL的历史和标准3.1.2SQL的优点1.非过程化语言2.统一的查询语言3.所有关系数据库的公共语言2020/2/54数据库应用3.2数据查询3.2.1数据查询建立与保存的方法1.使用查询向导建立查询2.使用查询设计器建立查询3.使用SQL语句建立查询4.查询的保存与修改2020/2/55数据库应用【例3-1】使用查询向导1单击功能区“创建”命令选项卡中的“查询向导”按钮。2020/2/56数据库应用使用查询向导2在出现的“新建查询”对话框中选择“简单查询向导”后,单击“确定”按钮。2020/2/57数据库应用使用查询向导3选择为“学生表”,并将“可用字段”中的“学号、姓名、入学成绩”加入到“选定字段”列表框中。然后单击“下一步”按钮。2020/2/58数据库应用使用查询向导4单击“下一步”。2020/2/59数据库应用使用查询向导5选择“打开查询查看信息”单选框,并单击“完成”按钮2020/2/510数据库应用使用查询向导6部分查询结果2020/2/511数据库应用【例3-2】查询设计器1单击功能区“创建”命令选项卡中的“查询设计”按钮。2020/2/512数据库应用查询设计器2选择学生表进行添加,然后双击“学号”和“姓名”字段。2020/2/513数据库应用查询设计器32020/2/514数据库应用查询设计器4单击“设计”命令选项卡中的“运行”按钮2020/2/515数据库应用【例3-3】SQL语句1---创建查询单击功能区“创建”命令选项卡中的“查询设计”按钮。2020/2/516数据库应用SQL语句2-关闭“显示表”对话框2020/2/517数据库应用SQL语句3----切换到SQL视图2020/2/518数据库应用SQL语句4----编写SQL语句2020/2/519数据库应用SQL语句5----运行查询2020/2/520数据库应用SQL语句6----查询结果2020/2/521数据库应用4.查询的保存与修改保存查询对话框。保存的查询会出现在Access对象导航窗口中。如果选择“打开”则直接运行了查询。可以看到,通过在查询选项卡上单击鼠标右键,可以在SQL视图和设计视图间切换。2020/2/522数据库应用图3-21修改已保存的查询2020/2/523数据库应用3.2.2单表查询SQL语言提供了SELECT语句进行数据库的查询,该语句具有灵活的使用方式和丰富的功能。其一般格式为:SELECT[ALL|DISTINCT]目标列表达式[,目标列表达式,…]FROM表名或视图名[,表名或视图名,…][WHERE条件表达式][GROUPBY表达式[HAVING条件表达式]][ORDERBY表达式[ASC|DESC]];2020/2/524数据库应用单表查询---SELECT语句SELECT语句既可以完成简单的单表查询,也可以完成复杂的连接查询和嵌套查询。注意:(1)在编写SQL语句之前,必须知道数据库的模式(2)为提高可读性,减少编写错误和有利于SQL语句的维护,SQL必须写成多行。(3)SQL语句中,表达式和SQL中的符号的书写必须使用半角符号2020/2/525数据库应用1.单表基本查询所谓单表查询是指FROM子句后面只有一个表的SELECT语句。1)查询所有的列如果SELECT中的目标列表达式为*时,表示检索所有的列。2020/2/526数据库应用1.单表基本查询【例3-4】返回“学生表”中的所有行和所有列。SELECT不需要WHERE子句,可以返回所有行;要返回所有列,则在目标列表达式使用*即可。select*from学生表;2020/2/527数据库应用图3-22例3-4的查询结果2020/2/528数据库应用1.单表基本查询【例3-5】查询成绩表中的所有记录。select*from成绩表;2020/2/529数据库应用1.单表基本查询2)查询指定的列给定一个数据表,要查询指定的列,必须在SELECT的目标列表达式中指定列名,这个操作为对该表实行投影操作。2020/2/530数据库应用1.单表基本查询【例3-6】检索“学生表”中的学号、姓名、性别和籍贯字段。select学号,姓名,性别,籍贯from学生表;2020/2/531数据库应用1.单表基本查询3)查询经过计算的值或更改列标题名SELECT语句中,可以使用运算符来对列进行计算得到结果,要注意的是,这些运算只针对检索后的结果,它不会影响保存在数据库中的数值。此外SELECT提供了AS字段名更改字段名的方法。2020/2/532数据库应用1.单表基本查询【例3-7】对“学生表”的“入学成绩”除以600,求相对成绩,其显示的字段名为“相对成绩”。select学号,姓名,入学成绩/600as相对成绩from学生表;2020/2/533数据库应用1.单表基本查询【例3-7】对“学生表”的“入学成绩”除以600,求相对成绩,其显示的字段名为“相对成绩”。select学号,姓名,入学成绩/600as相对成绩from学生表;2020/2/534数据库应用1.单表基本查询【例3-8】求所有学生在2010年的年龄。select学号,姓名,2010-year(出生日期)as年龄from学生表;2020/2/535数据库应用2.选择表中的若干元组(选择操作)选择一个表中的若干元组(或记录)操作,是对该表实行选择操作。其方法是使用SELECT语句的WHERE子句中的条件。1)消除取值重复的行指定DISTINCT短语,表示在计算时要去除重复行。如果不指定DISTINCT短语或指定ALL短语(ALL为默认值),则表示不取消重复值。2020/2/536数据库应用消除取值重复的行Distinct子句【例3-9】输出学生表中所有同学的籍贯。select籍贯from学生表orderby籍贯;2020/2/537数据库应用消除取值重复的行Distinct子句【例3-10】显示学生表中的学生来自全国哪些地方,即有哪些不同的籍贯。selectdistinct籍贯from学生表orderby籍贯;结果为去除了重复籍贯的23条记录,而原学生表中有30位同学。2020/2/538数据库应用选择操作---Where子句2)查询满足条件的元组WHERE子句常用的查询条件。2020/2/539数据库应用WHERE子句中的条件操作符类型操作符含义关系运算符=等于不等于大于=大于等于小于=小于等于BETWEEN…AND确定范围2020/2/540数据库应用WHERE子句中的条件2逻辑运算符AND与,用于多重条件OR或,用于多重条件NOT非,用于条件取非属于(不属于)[NOT]IN确定集合通配运算符LIKE字符匹配2020/2/541数据库应用用关系运算符构造条件---数值【例3-11】查找所有入学成绩大于等于600的同学的学号、姓名和入学成绩。select学号,姓名,入学成绩from学生表where入学成绩=600;这是数字类型查询例子,其查询结果略。2020/2/542数据库应用用关系运算符构造条件---逻辑关系运算符包括:、=、=、、=、。【例3-12】查找学生表中的贷款的学生学号和姓名。select学号,姓名,贷款否from学生表where贷款否=True;这是逻辑类型查询例子。2020/2/543数据库应用用关系运算符构造条件---日期【例3-13】求1991年7月以后出生的学生学号和姓名。select学号,姓名,出生日期from学生表where出生日期=#1991/07/01#;这是日期类型查询例子。2020/2/544数据库应用用关系运算符构造条件---Between谓词BETWEEN…AND…用来查找属性值在指定范围内的元组,其中BETWEEN后是范围的下限(即低值),AND后是范围的上限(即高值)。2020/2/545数据库应用用关系构造条件---Between例子【例3-14】求入学成绩在550到630间的学生学号、姓名和入学成绩。select学生表.学号,学生表.姓名,学生表.入学成绩from学生表where学生表.入学成绩between550and630;2020/2/546数据库应用用关系构造条件---Between例子上述SQL语句可以等价于如下SQL语句。select学生表.学号,学生表.姓名,学生表.入学成绩from学生表where学生表.入学成绩=550and学生表.入学成绩=630;2020/2/547数据库应用用关系构造条件---Between例子如果要求入学成绩不在550到630间的学生学号、姓名和入学成绩,使用下列SQL语句。select学生表.学号,学生表.姓名,学生表.入学成绩from学生表where学生表.入学成绩notbetween550and630;2020/2/548数据库应用(2)用逻辑运算符构造多重条件SELECT语句提供逻辑运算符AND和OR,可用来组合联结多个查询条件。AND的含义是表示多个条件间的“与”、“同时”或“并且”关系,OR的含义是表示多个条件间的“或”关系。这里AND的优先级高于OR,但我们可以用括号改变优先级。2020/2/549数据库应用用逻辑运算符构造多重条件---例子【例3-15】查找入学成绩在550分以上的少数民族学生的学号、姓名和少数民族否。select学号,姓名,民族,入学成绩from学生表where入学成绩=550and民族“汉族”;2020/2/550数据库应用用逻辑运算符构造多重条件---例子【例3-16】查找入学成绩在570分以上的女性学生,显示学号、姓名、性别和入学成绩。select学号,姓名,性别,入学成绩from学生表where入学成绩=570and性别=‘女’;2020/2/551数据库应用(3)确定集合SELECT提供谓词IN用来查找属性值在指定集合的方法。而NOTIN表示属性值不在指定集合。2020/2/552数据库应用确定集合---例子【例3-17】求籍贯为“江西南昌”或“四川成都”的学生学号、姓名和籍贯。select学生表.学号,学生表.姓名,学生表.籍贯from学生表where学生表.籍贯in(“四川成都”,“江西南昌”);2020/2/553数据库应用确定集合---例子上述SQL语句可以等价于如下SQL语句。select学生表.学号,学生表.姓名,学生表.籍贯from学生表where学生表.籍贯=“四川成都”or学生表.籍贯=“江西南昌”;2020/2/554数据库应用确定集合---例子【例3-18】求籍贯不为“江西南昌”和“四川成都”的学生学号、姓名和籍贯。select学生表.学号,学生表.姓名,学生表.籍贯from学生表where学生表.籍贯notin(四川成都,江西南昌);2020/2/555数据库应用确定集合---例子上述SQL语句可以等价于如下SQL语句。select学生表.学号,学生表.姓名,学生表.籍贯from学生表where学生表.籍贯四川成都and学生表.籍贯江西南昌;2020/2/55
本文标题:03_1 Access中SQL查询语言(1)
链接地址:https://www.777doc.com/doc-3498816 .html