资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,2022/3/21 Monday,#,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,2022/3/21 Monday,#,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,2022/3/21 Monday,#,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,2022/3/21 Monday,#,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,2022/3/21 Monday,#,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,2022/3/21 Monday,#,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,2022/3/21 Monday,#,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,2022/3/21 Monday,#,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,2022/3/21 Monday,#,M,y,S,Q,L,项目一 认识数据库,学习MySQL数据库的特点,学习目标,M,y,S,Q,L,了解数据库的基础知识,掌握MySQL数据库的安装与配置,具有使用Navicat工具的能力,重点、难点,M,y,S,Q,L,数据库概述,一,一、数据库概述,M,y,S,Q,L,1.信息(Information),信息是现实世界事物的存在方式或运动状态的反映,它通过多种形式展现,如文字、数码、符号、图形、声音等。信息具有可感知、可存储、可加工等自然属性,是各行各业不可或缺的资源。,2.数据(Data),数据是对客观事件进行记录并可以鉴别的符号,是数据库中存储的基本对象,是信息的具体表现形式。,如:,(张三,男,2001.3,天津,计算机工程学院,电子商务,2019),一、数据库概述,M,y,S,Q,L,3.,数据处理,数据处理是数据转化为信息的过程。,4.数据,库,数据库,简而言之就是存放数据的仓库,是为了实现一定目的,按照某种规则组织起来的数据的集合。,5.,数据库系统,数据库系统是由数据库及其管理软件组成的系统,是存储介质、处理对象和管理系统的集合体,。,一、数据库概述,M,y,S,Q,L,6.,数据库管理系统,数据定义功能,数据操纵功能,数据组织存储与管理,数据库运行管理,数据库保护功能,数据库维护功能,用于建立修改数据库的库结构,用于实现对,数据的增加删除、更新查询等操作,用于分类组织、存储和管理数据字典、用户数据、存取路径等,用于多用户环境下的并发控制、安全性检查和存取限制控制、完整性检查等,用于保护数据库中的数据,实现数据库的数据载入转换、转储数据库的重组合重构等,数据库接口功能,通过与操作系统的联机处理、分时系统及远程作业输入等相关接口实现数据的传送,一、数据库概述,M,y,S,Q,L,7.,关系型数据库,类别,产品,关系型数据库,MySQL、SQL rver、Access、Oracle、DB2等。,非关系型数据库,MongoDB、HBase、Redis、Neo4J等。,表,1,常用数据库,关系型数据库是一种建立在关系模型上的数据库,,关系模型就是一张二维表。,一、数据库概述,M,y,S,Q,L,7.,关系型数据库,ID,Name,Sex,1,张三,男,2,李四,男,3,王明,女,Student,表,行(,row,),列(,column,),ID=1,Name=,“张三”,Sex=,“男”,ID=2,Name=,“李四”,Sex=,“男”,ID=3,Name=,“王明”,Sex=,“女”,Student,对象,图,1,关系模型二维表,M,y,S,Q,L,认识,MySQL,数据库,二,二、认识,MySQL,数据库,M,y,S,Q,L,1.MySQL,数据库简介,MySQL数据库由瑞典MySQL AB公司开发,目前属于Oracle公司旗下的产品。作为关系型数据库最好的应用软件之一,MySQL是开放源代码的,因此任何人都可以下载并根据自己的需要对其进行修改,。,二、认识,MySQL,数据库,M,y,S,Q,L,2.MySQL,数据库特点,01,超强的稳定性,03,强大的查询功能,02,可移植性好,04,支持大型数据库,05,支持多种字符集存储,二、认识,MySQL,数据库,M,y,S,Q,L,1.MySQL,数据库的版本,(,1,)MySQL Community Server(社区版),(,2,)MySQL Enterprise Server(企业版),(,3,)MySQL Standard Server(标准版),M,y,S,Q,L,MySQL,的图形化管理工具,三,三、,MySQL,的图形化管理工具,M,y,S,Q,L,1.Navicat,的安装,Navicat官网下载地址为,下载完成后,双击安装包即可进行安装。,图,2,双击安装包后弹出的,“,许可协议,”,三、,MySQL,的图形化管理工具,M,y,S,Q,L,1.Navicat,的安装,图,3,选择安装路径,三、,MySQL,的图形化管理工具,M,y,S,Q,L,1.Navicat,的安装,图,4,安装完成界面,三、,MySQL,的图形化管理工具,M,y,S,Q,L,2.Navicat,的使用,图,5,Navicat,主界面,M,y,S,Q,L,任务实施,四,四、任务实施,M,y,S,Q,L,1.MySQL,的安装,图,6,MySQL,下载页面,打开网址 5.7 community社区版。,注意:,由于,MySQL,官网的软件版本在定期更新,用户在下载软件时,可不必在意最后两位版本号,只要是,5.7,版即可。,四、任务实施,M,y,S,Q,L,1.MySQL,的安装,图,7,MySQL,安装向导页面,双击安装文件进行安装,此时会弹出MySQL安装向导界面,四、任务实施,M,y,S,Q,L,1.MySQL,的安装,图,8,MySQL,安装页面,选择“Server only”即默认第二个仅服务器选项,点击“Next”,;,四、任务实施,M,y,S,Q,L,1.MySQL,的安装,图,9,Group Replication选项,选择默认的“Standalone MySQL Server/Classic MySQL Replication”选项,,点击,“Next”,四、任务实施,M,y,S,Q,L,1.MySQL,的安装,图,10,设置密码界面,在Accounts and Roles选项框中设置MySQL数据库的管理员root用户的密码为“123456”,;,四、任务实施,M,y,S,Q,L,1.MySQL,的安装,图,11,安装成功界面,在Windows Service选项框中直接点击“Next”按钮,直到进入,如图,所示界面。,点击“Finish”按钮,即安装成功。,四、任务实施,M,y,S,Q,L,2.MySQL,的基本配置,(,1,)启动,MySQL,服务,方法一:通过Windows服务管理器可以查看MySQL服务是否开启,首先单击“开始”“运行”,在“运行”对话框中输入“services.msc”命令,单击确定按钮,,成功启动后,界面效果如图所示。,四、任务实施,M,y,S,Q,L,2.MySQL,的基本配置,(,1,)启动,MySQL,服务,图,12,查看mysql服务,四、任务实施,M,y,S,Q,L,2.MySQL,的基本配置,(,1,)启动,MySQL,服务,方法二:,运行cmd命令,打开命令提示符窗口,输入“net start mysql”命令来启动MySQL服务,同样也可输入“net stop mysql”命令来停止mysql服务,;,四、任务实施,M,y,S,Q,L,2.MySQL,的基本配置,(,2,),通过命令行连接MySQL,命令语法格式如下:,mysql-h -u-p,-h用于远程登录MySQL服务器,如果在本机操作可省略-h参数。,-p后面可以不写密码,按Enter键后服务器会提示输入密码。如果写密码,-p和密码之间没有空格。,四、任务实施,M,y,S,Q,L,2.MySQL,的基本配置,(,2,),通过命令行连接MySQL,登录成功后,我们可以在提示符下输入select version(),user();命令来查看MySQL的版本信息及连接的用户名,,如图所示:,图,13,在控制台输入操作命令,四、任务实施,M,y,S,Q,L,2.MySQL,的基本配置,(,3,),关闭MySQL服务器连接,成功连接服务器后,可以在mysql提示符下输入exit或quit或q命令断开与服务器的连接,如图所示,:,图,14,关闭MySQL服务器连接,四、任务实施,M,y,S,Q,L,3.,通过图形管理工具Navicat连接MySQL服务器,(,1,),使用Navicat连接MySQL服务器,双击Navicat图标,打开Navicat的主界面,单击文件菜单中的“新建连接”子菜单,选择“MySQL”,;,图,15,新建MySQL连接,四、任务实施,M,y,S,Q,L,3.,通过图形管理工具Navicat连接MySQL服务器,(,1,),使用Navicat连接MySQL服务器,在弹出的“MySQL-新建连接”对话框中正确输入连接名、端口、用户名、密码,单击“确定”进行连接,;,图,16,新建MySQL连接,四、任务实施,M,y,S,Q,L,3.,通过图形管理工具Navicat连接MySQL服务器,(,1,),使用Navicat连接MySQL服务器,连接成功后,可在Navicat主界面的左边窗格中看到刚刚创建的MySQL数据库连接信息,;,图,17,查看MySQL服务器中的数据库信息,四、任务实施,M,y,S,Q,L,3.,通过图形管理工具Navicat连接MySQL服务器,(,2,),使用Navicat查看MySQL数据库信息,图,18,在Navicat工具中使用命令查看数据库,四、任务实施,M,y,S,Q,L,4.,设置 MySQL字符集,进入Windows命令行,输入命令:SHOW CHARACTER SET,可以查看MySQL数据库支持的字符集,图,19,查看MySQL数据库支持字符集,四、任务实施,M,y,S,Q,L,4.,设置 MySQL字符集,设置或修改MySQL服务器字符集后,可以通过输入命令:status,查看是否设置成功,图,20,查看MySQL字符集,M,y,S,Q,L,任务总结,五,五、任务总结,M,y,S,Q,L,通过本项目的学习,了解了数据库的基本知识以及MySQL数据库的发展历史和特点,具有了安装与配置数据库的基本能力,并能使用Navicat工具连接MySQL数据库服务器的方法。,M,y,S,Q,L,欢迎同学们提问,M,y,S,Q,L,项目二 数据库设计,学习数据库的设计范式,学习目标,M,y,S,Q,L,了解数据模型的概念,掌握数据库设计的步骤,具有绘制E-R图的能力,重点,重点、难点,M,y,S,Q,L,数据模型,一,一、数据模型,M,y,S,Q,L,1.,概念数据模型,概念数据模型简称概念模型,是用户容易理解的现实世界特征的数据抽象,用于建立信息世界的模型,。概念模型表示方法很多,其中最为著名的是P.P.Chen于1976年提出的E-R(Entity-Relationship)模型即实体关系模型。,一、数据模型,M,y,S,Q,L,1.,概念数据模型,E-R图由实体、属性、关系三部分构成:,实体(Entity):客观存在的具体事物,也可以是抽象的事件。,实体集(Entity Set):同类实体的集合,例如全体学生、全体教师等。,属性(Atrribute):可以理解为实体的特征。例如,“学生”这一实体的特征有姓名、性别、年龄等。,实体,属性,联系名,图,1,实体、属性、实体与实体间联系的描述方法,一、数据模型,M,y,S,Q,L,1.,概念数据模型,关系(Relationship):关系是指两个或多个实体之间的关联关系。,学生,学号,图,2,1:1联系,学生1,班级,学生2,学生3,学生4,学生5,学生6,.,学生n,图,3,1:n联系,一、数据模型,M,y,S,Q,L,1.,概念数据模型,关系(Relationship):关系是指两个或多个实体之间的关联关系。,课程1,学生1,学生2,学生3,学生4,学生5,.,学生n,图,3,m:n联系,课程2,课程3,课程4,课程n,.,一、数据模型,M,y,S,Q,L,2.,逻辑数据模型,逻辑数据模型由概念模型转换得到,简称逻辑模型,是一种面向数据库系统的模型,是具体的DBMS所支持的数据模型,既要面向用户,又要面向系统,主要用于数据库管理系统(DBMS)的实现。,字段(Field):在数据库中,表的“列”称为“字段”,数据记录(Data Record):在数据库中,数据记录是指对应于数据源中一行信息的一组完整的相关信息,表(Table):由行和列组成,行对应表中的记录,列对应表中的字段,一、数据模型,M,y,S,Q,L,3.,物理数据模型,物理数据模型是物理层次上的数据模型,主要描述数据在物理存储介质上的组织结构,它与具体的DBMS相关,也与操作系统和硬件相关。,一、数据模型,M,y,S,Q,L,4.,数据模型的组成要素,数据结构,主要用于描述系统的静态特征,是所研究的对象类型的集合,数据操作,数据约束条件,是指对数据库中的各种对象的实例允许执行的操作集合,是指一组完整性规则的集合,一、数据模型,M,y,S,Q,L,5.,关系模型,在数据库系统中,数据模型通常可以分为层次模型、网状模型、关系模型三种,其中关系模型应用最为普遍。关系模型于20世纪70年代初由美国IBM公司的E.F.Codd提出,为数据库技术的发展奠定了理论基础。,关系(Relation),:,一个关系就是一张二维表,,如下表所示。,学号,姓名,性别,出生日期,联系电话,专业,190001,王成,男,1998.12.26,13323898911,软件技术,190002,张月,女,2001.7.11,15523550009,电子商务,表,1,学生信息表,一、数据模型,M,y,S,Q,L,5.,关系模型,元组(Tuple),:,元组也称为记录,关系表中的每行对应一个元组。,属性(Attribute),:,表中的一列即为一个属性,给每个属性取一个名称为属性名。属性的取值范围称为域。,候选码(Candidate key),:,若关系中的某一属性或属性组的值能唯一标识一个元组,且从这个属性组中去除任何一个属性,都不再具有这样的性质,则称该属性或属性组为候选码(Candidate key),。,主属性和非主属性:,在关系中,候选码中的属性称为主属性,不包含在任何候选码中的属性称为非主属性,。,主键:,若一个关系中有多个候选码,则选定其中一个为主键。,M,y,S,Q,L,数据库的设计步骤,二,二、数据库的设计步骤,M,y,S,Q,L,良好的数据库设计表现在以下三个方面:,可提高系统的工作效率,便于管理系统的进一步扩展。,使应用程序的开发变得更加容易。,二、数据库的设计步骤,M,y,S,Q,L,03,将E-R图转换为多张表,进行逻辑设计,确认各表的主外键,逻辑设计阶段,02,讨论数据库的设计是否满足客户的业务和数据处理需求,,,必须标识数据库要管理的关键对象或实体,概要设计阶段,01,该阶段用于分析客户的业务和数据处理需求,需求分析阶段,M,y,S,Q,L,数据库的设计范式,三,三、数据库的设计范式,M,y,S,Q,L,1.,第一范式,第一范式(First normal Form,1NF)的目标是确保每列的原子性。如果每列(或者每个属性值)都是不可再分的最小数据单元(也称为最小的原子单元),则满足第一范式。,如,学生基本信息表,(学号,姓名,性别,出生日期,专业,课程,授课老师等),主键为“学号”,其他列全部依赖于主键列,三、数据库的设计范式,M,y,S,Q,L,2.,第二范式,第二范式(Second normal form,2NF)在第一范式的基础上更进一层,其目标是确保表中的每列都和主键相关。如果一个关系满足第一范式(1NF),并且除了主键以外的其他列都全部依赖于该主键,则满足第二范式(2NF),如,学生基本信息表,(学号,姓名,性别,出生日期,专业,课程,授课老师等),如果需要将“课程”列拆分为课程编号、课程名称、课程类型等信息时,以上各列并没有完全依赖于主键“学号”列,,因此将其转换成两个表:,学生信息表(学号,姓名,性别,出生日期,专业等),课程信息表(课程编号、课程名称、课程类型、学时等),三、数据库的设计范式,M,y,S,Q,L,3.,第三范式,第三范式的目标是确保每列都和主键列直接相关,而不是间接相关,。,如如果要表示某个学生的各门课程的成绩信息,则需要再分解一个成绩表出来,:,成绩表(学号,课程编号,成绩),M,y,S,Q,L,数据表结构,四,四、数据表结构,M,y,S,Q,L,数据表结构是指对数据的数据项、数据结构、数据流、数据存储、处理逻辑等进行定义和描述,其目的是对数据流程图中的各个元素做出详细的说明。简而言之,数据表结构是描述数据的信息集合,是对系统中使用的所有数据元素的定义的集合。,M,y,S,Q,L,任务实施,五,五、任务实施,M,y,S,Q,L,1.,分析确定实体集,学生实体集(student)的属性有:学号、姓名、性别、出生日期、专业、联系电话、家庭住址。其中,用学号来唯一标识各学生信息,主键为学号。,课程实体集(course)的属性有:课程编号、课程名称、授课教师、课程类型、学时、学分。其中,用课程编号来唯一标识各课程信息,课程编号为主键。,成绩实体集(score)的属性有:学号、课程编号、成绩。,五、任务实施,M,y,S,Q,L,2.E-R,图设计,学生,课程,选课,成绩,学号,姓名,性别,出生,日期,专业,联系,电话,家庭,住址,课程,编号,课程,名称,授课,教师,课程,类型,学分,学时,m,n,图,4,E-R,图,五、任务实施,M,y,S,Q,L,3.,将E-R图转换为关系模式,学生表(student)(学号、姓名、性别、出生日期、专业、联系电话、家庭住址)。其中,用学号来唯一标识各学生信息,主键为学号。,课程表(course):课程编号、课程名称、授课教师、课程类型、学时、学分。其中,用课程编号来唯一标识各课程信息,主键为课程编号。,成绩表(score):学号、课程编号、成绩。其中,一个学生的学号可对应多门课程编号的成绩,而一个课程编号也有可能对应多个学生的成绩。,五、任务实施,M,y,S,Q,L,4.,规划数据表结构,字段名,字段说明,备注,stuNo,学号,name,姓名,sex,性别,值为“男”或“女”,birthday,出生日期,spec,专业,phone,联系电话,address,家庭住址,地址不详,表,2,学生表student结构,五、任务实施,M,y,S,Q,L,4.,规划数据表结构,字段名,字段说明,备注,couNo,课程编号,couName,课程名称,teacher,授课教师,type,课程类型,hours,学时,credit,学分,表,3,课程表course结构,五、任务实施,M,y,S,Q,L,4.,规划数据表结构,字段名,字段说明,备注,stuNo,学号,引用student表主键,couNo,课程编号,引用course表主键,result,成绩,表,4,成绩表score结构,M,y,S,Q,L,任务总结,六,六、任务总结,M,y,S,Q,L,通过对本项目的学习,掌握了在数据库设计中设计数据库的基本步骤,以及绘制E-R图的方法,并能通过E-R图确定各表的结构以及各表之间的关系。为后期的数据库及表的创建做好了铺垫。,M,y,S,Q,L,欢迎同学们提问,M,y,S,Q,L,项目三 数据定义,学习数据表的约束,学习目标,M,y,S,Q,L,了解什么是SQL语言,掌握数据库与数据表的创建方法,具有使用Navicat工具完成数据定义的能力,重点、难点,M,y,S,Q,L,SQL,语言,概述,一,一、,SQL,语言,概述,M,y,S,Q,L,1.什么是SQL,结构化查询语言SQL(Structured Query Language)是最重要的关系数据库操作语言,经过多年的发展,SQL语言已成为关系数据库的标准语言。,一、,SQL,语言,概述,M,y,S,Q,L,2.SQL的组成,数据操纵语言(,DML,),数据查询语言,DQL,用来插入、修改和删除数据库中的数据,用来对数据库中的数据进行查询使用SELECT命令完成查询,用来建立数据库、建立表等,主要包括CREATE DATABASE、CREATE TABLE等,用来控制数据库组件的存取许可、存取权限等,主要包括GRANT、REVODE命令,数据控制语言,DCl,数据定义语言,DDL,M,y,S,Q,L,创建数据库,二,二、创建数据库,M,y,S,Q,L,1.,创建数据库,语句:,create database mystudent;,图,1,创建数据库mystudent,注意:在MySQL中,所有命令均以分号结束“;”,只有极少数命令可以省略不写分号,。,二、创建数据库,M,y,S,Q,L,2.,查看数据库,语句:,show database;,图,2,查看数据库信息,注意:在MySQL中,,数据库的命名不区分大小写。,二、创建数据库,M,y,S,Q,L,3.,选择数据库,语句:,use mystudent;,图,3,选择数据库,二、创建数据库,M,y,S,Q,L,4.,修改数据库编码方式,语法格式:,alter database 数据库名 default character set 编码方式 collate 编码方式_bin;,图,4,修改编码格式,语句:,alter database mystudent default character set utf8 collate utf8_bin;,二、创建数据库,M,y,S,Q,L,5.,删除数据库,语法格式:,drop database 数据库名;,图,5,删除数据库,语句:,drop database testdb;,M,y,S,Q,L,创建数据表,三,三、创建数据表,M,y,S,Q,L,1.,数据类型,数值型:数值型是指可以参与算术运算的类型,它可以分为整型和浮点型,其中浮点型又包括单精度浮点型和双精度浮点型,数据类型,字节数,范围,用途,TINYINT,1,有符号值:-128127,用于表示小整数值,如年龄。,INT,4,有符号值:-2,31,2,31,-1,用于表示大整数值,如学生人数。,FLOAT,4,有符号值:-3.402823466E+381.175494351E-38,用于表示单精度浮点数值,浮点数即小数。如成绩。,DOUBLE,8,有符号值:-1.7976931348623157E+3082.2250738585072014E-308,表示双精度浮点数值。与单精度浮点数的主要区别是双精度型表示范围更大。如科学计算。,表,1,常用数值类型,三、创建数据表,M,y,S,Q,L,1.,数据类型,字符串型:字符串类型用于保存一系列的字符,这些字符在使用时采用单引号或双引号括起来,表,2,常用,字符串,类型,数据类型,大小,使用说明,CHAR,0255字符,表示固定长度字符串,VARCHAR,065536字符,表示可变长度字符串,该类型使用较为普遍,TINYTEXT,0255字节,表示短文本字符串,TEXT,065535字节,表示长文本数据。如日志、备注等,BLOB,0-65535字节,二进制形式的长文本数据,用于存储图片信息。,三、创建数据表,M,y,S,Q,L,1.,数据类型,日期时间型:用于保存日期或时间的数据类型,通常可以分为日期类型、时间类型和日期时间型,表,3,常用,日期时间,类型,数据类型,字节数,格式,YEAR,1,年份值,YYYY,如2019,DATE,4,日期值,YYYY-MM-DD,如2019-06-01,TIME,3,时间值,HH:MM:SS,如12:30:22,DATETIME,8,混合日期和时间值,YYYY-MM-DD HH:MM:SS,如2019-06-01 12:30:22,TIMESTAMP,4,混合日期和时间值,时间戳,1970-01-01 00:00:00/2038(该类型的取值必须在1970年2038年之间),三、创建数据表,M,y,S,Q,L,2.SQL,中的运算符,算术运算符:包括:+(加)、-(减)、*(乘)、/(除)、%(取模),表,4,算术运算符,运算符,用法说明,+,加法运算,求两个变量或表达式的和,-,减法运算,求两个变量或表达式的差,*,乘法运算,求两个变量或表达式的积,/,除法运算,求两个变量或表达式的商,%,取模运算,求两个变量或表达式相除的余数,如5%2的值为1,三、创建数据表,M,y,S,Q,L,2.SQL,中的运算符,比较运算符:用来比较两个变量或表达式的大小关系,表,5,比较运算符,运算符,用法说明,大于,如32,值为true,小于,如3=,大于等于,如3=2,值为true,=,小于等于,如3=2,值为false,不等于,如32,值为true,三、创建数据表,M,y,S,Q,L,2.SQL,中的运算符,逻辑运算符:用来对某个条件进行判断,以获得一个真或假的值,表,6,逻辑运算符,运算符,用法说明,NOT或!,非运算或取反运算,如:!(成绩=80&成绩=80|成绩、=、或!=等,二、单表查询,M,y,S,Q,L,5.,where子句,select*from student where spec=电子商务 and sex=男;,带逻辑运算符的,where,条件示例语句:,注意:逻辑运算用于将多个表达式通过逻辑运算符非、与、或(!或NOT、&或and、|或OR)来组成更为复杂的查询条件,二、单表查询,M,y,S,Q,L,5.,where子句,select*from student where name like 王%;,带LIKE关键字的,where,条件示例语句:,注意:LIKE关键字用于模糊查询,它有两种通配符:“%”、和下划线“_”。“%”可以匹配一个或多个字符,而下划线“_”则表示匹配一个字符。,二、单表查询,M,y,S,Q,L,5.,where子句,select*from student where birthday between 2001-01-01 and 2001-12-31;,带between and关键字的,where,条件示例语句:,注意:between and用于判断指定字段的值是否在指定的范围内。如果字段的值在指定范围内,则满足查询条件的记录将会被查询出来;如果不在指定范围内,则不满足条件。,二、单表查询,M,y,S,Q,L,5.,where子句,select*from student where stuNo IN(190003,190005);,带IN关键字的,where,条件示例语句:,注意:IN关键字用于判断某个字段的值是否在指定的集合中。如果字段的值在集合中,则满足条件的记录将被显示出来;如果不在集合中,则不满足条件。,二、单表查询,M,y,S,Q,L,5.,where子句,select*from student where phone is not null;,带空值比较的,where,条件示例语句:,注意:当需要判断一个表达式的值是否为空值时,可使用IS null或IS NOT null关键字。,二、单表查询,M,y,S,Q,L,6.,order by子句,select 字段名列表 from 表名 where 条件 order by 字段列表 asc|desc;,语法格式:,参数说明:,字段列表:可以在order by子句中指定多个字段,查询结果首先按照第一个字段的值排序,第一个字段值相同的数据行,再按照第二个字段值排序,依次类推。,asc|desc:可以规定数据行按升序排序(使用参数asc),也可以规定数据行按降序排序(使用参数、desc),默认参数为升序。,order by子句要写在where子句的后面。,二、单表查询,M,y,S,Q,L,7.limit,子句,limit offset,n;,语法格式:,说明:limit子句是select语句的最后一个子句,主要用于限制查询结果集返回的行数,select*from student order by birthday limit 3;,示例语句:,二、单表查询,M,y,S,Q,L,8.,将查询结果插入到新表,create table (select 字段1,字段2,from 原表);,语法格式:,create table:表示创建一个新表,专门用于保存查询结果。,新表名:表示将查询结果保存至某个新表的名字,要注意的是,这个新表无须提前创建,系统会自动根据查询的结果集创建表的结构并添加记录。,select:表示查询,可用“*”表示查询表的全部字段,该命令的具体用法将在后续的项目中学习。,参数说明:,二、单表查询,M,y,S,Q,L,9.,将查询结果插入到,已经存在的,表,insert into ;,语法格式:,:表示一个已经存在表,用于插入新的查询结果到这个表中。,:表示准备存放至新表的查询结果记录集。,参数说明:,insert into newstudent select*from student where stuNo=190003;,示例语句:,M,y,S,Q,L,统计查询,三,三、统计查询,M,y,S,Q,L,1.,聚合函数,表达式:可以是常量、字段名、函数。,all|distinct:all表示对所有值进行运算,distinct表示去除重复值,默认为 all。,count(*):使用count(*)函数时将返回检索行的总数目,不论其是否包含null值。,count(all|distinct 表达式|*);,Count,函数,语法格式:,参数说明:,select count(*)as 学生总人数 from student;,示例语句:,三、统计查询,M,y,S,Q,L,1.,聚合函数,max和min函数分别用于统计表中满足条件的所有值项的最大值和最小值,max/min(all|distinct 表达式);,max和min函数,语法格式:,参数说明:,select couNo as 课程号,max(result)as 最高分,min(result)as 最低分,from score where couNo=g01;,示例语句:,三、统计查询,M,y,S,Q,L,1.,聚合函数,sum和avg函数分别用于统计表中满足条件的所有值项的总和与平均值。,sum/avg(all|distinct 表达式);,sum和avg函数,语法格式:,参数说明:,select couNo as 课程号,sum(result)as 总分,avg(result)as 平均分,from score where couNo=g01;,示例语句:,三、统计查询,M,y,S,Q,L,2.,group by子句,group by:该子句可以根据一个或多个字段进行分组。,使用group by子句进行分组统计时,select子句要查询的字段只能是以下两种情况:第一,字段应用了聚合函数;第二,未应用聚合函数的字段必须包含在group by子句中。,having子句与group by子句的区别:第一,where子句设置的查询筛选条件在group by子句之前发生作用,并且条件不能使用聚合函数;第二,having子句设置的查询筛选条件在group by子句之后发生作用,并且条件中允许使用聚合函数。,select 字段名列表 from 表名,where 条件,group by 字段列表|表达式 having 分组条件;,语法格式:,参数说明:,三、统计查询,M,y,S,Q,L,2.group by,子句,select couNo as 课程号,max(result)as 最高分,min(result)as 最低分,from score group by couNo having couNo=g01|couNo=z02;,group by,子句,示例语句:,M,y,S,Q,L,多表查询,四,四、多表查询,M,y,S,Q,L,表名.目标字段名 as 别名:指显示的查询结果的字段名,若查询结果的字段在两个表之间的重名字段,则需要指定显示具体某个表的字段名,否则表名部分可以省略。,on连接条件:指表与表之间连接的条件,一般是指表之间拥有相同的值的列。,连接类型:主要包括内连接与外连接两种类型,select 表名.目标字段名 as 别名,from 表1 as 别名 连接类型 表2 as 别名,on 连接条件,where 条件表达式;,语法格式:,参数说明:,三、统计查询,M,y,S,Q,L,1.,内连接,select 字段名列表,from 表1 as 别名 inner join 表2 as 别名,on 表1.字段名 比较运算符 表2.字段名,where 条件表达式;,语法格式(,1,):,select 字段名列表,from 表1 as 别名,表2 as 别名,where 表1.字段名 比较运算符 表2.字段名,语法格式(,2,):,三、统计查询,M,y,S,Q,L,1.,内连接,字段名列表:指显示的查询结果的字段名,若查询结果的字段在两个表之间的重名字段,则需要指定使用表名.字段名的格式。,on连接条件:指表与表之间连接的条件,一般是指表之间拥有相同的值的列。,参数说明:,三、统计查询,M,y,S,Q,L,1.,内连接,select s.stuNo,c.couName,s.result,from course as c inner join score as s,on c.couNo=s.couNo;,示例语句(,1,):,select s.stuNo,c.couName,s.result,from course as c,score as s,where c.couNo=s.couNo;,示例语句(,2,):,三、统计查询,M,y,S,Q,L,2.,外连接,select 字段名列表,from 表1 as 别名 left|right|full join 表2 as 别名,on 表1.字段名 比较运算符 表2.字段名;,语法格式:,参数说明:,字段名列表与on:这里的字段名列表与on关键字的用法与内连接的用法一致,但外连接只适用于两个表。,left:指左外连接,即左表为主表,连接关键字为left join。,right:指右外连接,即右表为主表,连接关键字为right join。,full:指全外连接,查询结果集中包括两个表的所有数据行。,M,y,S,Q,L,子查询,五,五、子查询,M,y,S,Q,L,select stuNo,couNo,result from score,where result,(select avg(result)from score group by stuNo having stuNo=190001);,在学生成绩管理数据库mystudent中,查询比学号为“190001”的平均成绩的高的学生学号、课程号、成绩信息,示例语句如下:,1.,带比较运算符的子查询,五、子查询,M,y,S,Q,L,select stuNo,name from student,where stuNo=any,(select stuNo from score where result60);,在学生成绩管理数据库mystudent中,查询考试有不及格的学生学号及姓名,示例语句如下:,2.,带IN关
展开阅读全文