数据库讲解幻灯片

上传人:F****n 文档编号:88268243 上传时间:2019-04-22 格式:PPT 页数:38 大小:143.50KB
返回 下载 相关 举报
数据库讲解幻灯片_第1页
第1页 / 共38页
数据库讲解幻灯片_第2页
第2页 / 共38页
数据库讲解幻灯片_第3页
第3页 / 共38页
数据库讲解幻灯片_第4页
第4页 / 共38页
数据库讲解幻灯片_第5页
第5页 / 共38页
点击查看更多>>
资源描述

《数据库讲解幻灯片》由会员分享,可在线阅读,更多相关《数据库讲解幻灯片(38页珍藏版)》请在金锄头文库上搜索。

1、数据库基础,概述,数据库是按照数据结构组织、存储和管理数据的仓库,内置了DBMS(database management system;数据库管理系统),并运行在操作系统之上。 数据库包含三类文件:1.数据文件;2.控制文件;3.日志文件。 数据文件:用于保存存储在数据库中的信息。 控制文件:用于维持数据库正常运行的程序文件。 日志文件:用于记录用户对数据库进行操作的日志信息和数据库日常工作的日志信息。,创建数据表,语法: create table table_name (column_name1 column_type1, column_name2 column_type2, ) 说明: t

2、able_name 表名 column_name1, column_name2, 字段名 column_type1, column_type2, 字段类型,添加记录,语法: insert into table_name (column_name1, column_name2, ) values (column_value1, column_value2, ) 说明: table_name 表名 column_name1, column_name2, 字段名 column_value1, column_value2, 字段存储的值,删除记录,语法: delete from table_name

3、where column_name1 = column_value1 and|or column_name2 = column_value2 and|or 说明: table_name 表名 column_name1 删除记录依据的字段名 column_value1 删除记录依据的字段值 and 表示与(同时满足条件的记录) or 表示或(部分满足条件的记录),修改记录,语法: update table_name set column_name1 = column_value1 , column_name2 = column_value2, where column_name3 = colum

4、n_value3 and|or column_name4 = column_value4 and| or 说明: table_name 表名 column_name1, column_name2, 字段名 column_value1, column_value2, 要修改成的字段值 column_name3, column_name4, 修改记录依据的字段名 column_value3, column_value4, 修改记录依据的字段值 and 表示与(同时满足条件的记录) or 表示或(部分满足条件的记录),基本查询,语法 Select all | distinct From | , |

5、Where Group by having order by ASC | DESC 注: Group by 的分组字段根据字段前后顺序分组 Order by 排序字段根据字段前后顺序排序(后一个在前一个基础上排序),语法分析 Select all(获取全部记录) | distinct(去掉重复记录) (多个表包含重复列名需要指明所属表) From | , | Where (检索约束) Group by having (结果集约束) order by ASC | DESC (ASC表示正序,DESC表示逆序),基本查询,高级查询,常用查询条件:常用查询条件包括比较、确定范围、确定集合、模糊配置、

6、是否空值和多重条件六部分,如下表所示:,已知表t1中的数据如下:(以下示例均使用t1表),例1:查询CODE小于1000的记录 select * from t1 where code abc 结果为2、3、4行,比较运算符:,例3:查询CODE范围在0到500之间的记录 select * from t1 where code between 0 and 500 结果为3、4行 同样,betweenand也支持非整型数据。 例4:查询NAME范围在a至h之间的记录 select * from t1 where name between a and h 结果为1、2、3行,1.若 between

7、后面的值小于 and 后面的值,则查询出的结果 集为空,例如:between 2 and 0 的结果集就为0. 2.betweenand 比较非数值类型数据时,遵循compareTo方法。,between and:,谓词IN可以用来查找字段值属于指定集合的记录 例5:查询CODE值包含在集合100, 1600中的记录 select * from t1 where code in (100, 1600) 结果为1、4行 LIKE是在模糊查询时使用的关键字 语法形式: select * from t1 where NAME LIKE %e% select * from t1 where NAME

8、LIKE g_ 注:左侧带有%表示左侧模糊,右侧带有%表示右侧模糊,汉字占两个字节(两个_),In和Like:,IS是指定查询条件包含的字段是否为空值时使用的关键字 注:IS NOT NULL 和 IS NULL 中 IS 和 NOT 的顺序 例6:查询NAME不为null的记录 select * from t1 where name is not null 结果为:1、2、3、4行 And|Or用于连接多个查询条件 例7:查询NAME为a开头并且CODE大于1000的记录 select * from t1 where name like a% and code 1000 结果为:1行,Is和

9、And|Or:,IS是指定查询条件包含的字段是否为空值时使用的关键字 注:IS NOT NULL 和 IS NULL 中 IS 和 NOT 的顺序 例6:查询NAME不为null的记录 select * from t1 where name is not null 结果为:1、2、3、4行 And|Or用于连接多个查询条件 例7:查询NAME为a开头并且CODE大于1000的记录 select * from t1 where name like a% and code 1000 结果为:1行,1.count函数,求结果集记录数 例9:select count(*) from t1 where

10、code 200 结果为3,因为code值大于200的记录数为3条 2.sum函数,求和(sum求和字段必须为数值类型) 例10:select sum(code) from t1 结果为3000,因为100+400+900+1600=3000 3.avg函数,求平均值(avg求平均值字段必须为数值类型) 例11:select avg(code) from t1 结果为750,因为3000/4 = 750,常用函数:,MySQL使用limit关键字能够获取表中一部分相邻行的记录信息。 语法格式: select * from t1 limit start, rows 其中:start为获取数据起始

11、行(下标从0开始)。 rows为获取的记录行数。 例12:查询t1表中第3条第7条记录的值 select * from t1 limit 3, 5 注意:第3条第7条记录为3、4、5、6、7,所以limit的第二个参数为5。,MySQL的limit关键字,数据库的连接和嵌套查询,对两个表的单表查询结果如右图:在成绩表中只存储了学生的学号,而没有存储学生的其他信息。那么学员表与成绩表之间的关联只能通过学号(sid)这个字段完成。 如果需要将学员的基本信息和学员的考试成绩关联显示,需要以下SQL语句。连接查询的结果如右图所示:,外连接包括左外连接、右外连接和全外连接三种,也可以简称为左连接、右连接

12、和全连接。 左外连接:left join on 以左侧表为主表 右外连接:right join on 以右侧表为主表 全外连接:full join on 两个表同时全部显示。 具体语法:设表t1和t2如下图:,查询结果如右图:,当使用左外连接和右外连接时,如果增加其他条件,则只能对从表(即非主表)进行条件过滤。因为这两种连接方式一定会将主表的全部信息显示出来。,如果使用全外连接,因为两个表均为主表身份,所以会全部显示出来,如果增加了其他条件只会影响连接条件(on关键字后面紧跟的条件为连接条件),这样可能会造成查询记录的增加。如下:造成了id为1的关联失败,外连接组合其他条件:,嵌套查询: 在一

13、个SELECT 语句的WHERE 子句或HAVING 子句中嵌套另一个SELECT 语句的查询称为嵌套查询。嵌套查询通常是在一次查询不能满足条件的前提下使用的,子查询应使用最大范围的收敛方法,以减少外查询对内存的使用量。,同样以学员表和成绩表为例。 例1:查询语文成绩大于85分的学员姓名。 分析:成绩表中存储了学员的成绩信息,但是不包含学员的基本信息(如姓名、年龄等), 分析结果如下: (1)先对achievements表进行查询,获取语文成绩大于85的学员学号。 (2)再根据(1)中的学号从student表中获取学员姓名。 语句如下:,嵌套连接:,例2:查询年龄小于21岁的学生的各科成绩 分

14、析:学员表中存储了学生的年龄信息,但是没有存储学员的考试成绩, 分析结果如下: (1)先从student表中查询年龄小于21岁的学生编号。 (2)再根据学员编号从achievements表中获取成绩信息。 语句如下:,JDBC连接数据库,JDBC是Java Data Base Connectivity的缩写,意思是Java程序连接和存取数据库的应用程序接口(API)。此接口是Java核心API的一部分。JDBC由一群类和接口组成,它支持ANSI SQL-92标准,因此,通过调用这些类和接口所提供的成员方法,我们可以方便地连接各种不同的数据库,进而使用标准的SQL命令对数据库进行查询、插入、删除

15、、更新等操作。,用JDBC连接数据库实现了与平台无关的客户机/服务器的数据库应用。由于JDBC是针对“与平台无关”设计的,所以我们只要在Java数据库应用程序中指定使用某个数据库的JDBC驱动程序,就可以连接并存取指定的数据库。而且,当我们要连接几个不同的数据库时,只需修改程序中的JDBC驱动程序,无需对其他的程序代码做任何改动。,Java程序和JDBC管理器,Java程序包括Java应用程序和小应用程序,主要是根据JDBC方法实现对数据库的访问和操作。完成的主要任务有:请求与数据库建立连接;向数据库发送SQL请求;为结果集定义存储应用和数据类型;查询结果;处理错误;控制传输、提交及关闭连接等

16、操作。 JDBC管理器为我们提供了一个“驱动程序管理器”,它能够动态地管理和维护数据库查询所需要的所有驱动程序对象,实现Java程序与特定驱动程序的连接,从而体现JDBC的“与平台无关”这一特点。它完成的主要任务有:为特定数据库选择驱动程序;处理JDBC初始化调用;为每个驱动程序提供JDBC功能的入口;为JDBC调用执行参数等。,驱动程序处理JDBC方法,向特定数据库发送SQL请求,并为Java程序获取结果。在必要的时候,驱动程序可以翻译或优化请求,使SQL请求符合DBMS支持的语言。驱动程序可以完成下列任务:建立与数据库的连接;向数据库发送请求;用户程序请求时,执行翻译;将错误代码格式化成标准的JDBC错误代码等。 JDBC是独立于数据库管理系统,而每个数据库系统均有自己的协议与客户机通信,因此,JDBC利用数

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号