版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第1章MySQL概述1.关系数据库基础2.MySQL简介3.MySQL8.0安装与配置4.MySQL常用工具5.MySQL常见操作本章内容1.关系数据库基础(1)数据库的几个概念数据库DB:存放数据的仓库。相互关联的数据集合。/数据库管理系统DBMS:管理数据库的计算机软件。数据库系统DBS:数据库管理系统+数据库+应用程序+用户(DBA、应用程序员、终端用户)。1.关系数据库基础(2)数据管理的发展历史人工管理阶段:20世纪50年代中期以前。文件管理阶段:20世纪50年代后期到60年代中期。数据库系统阶段:20世纪60年代后期以后。数据库系统又经历了三个阶段:层次数据库、网状数据库和关系数据库。常见的关系型数据库管理系统有:桌面型关系数据库:FoxBase、VisualFoxpro、Access等。大型关系数据库:Oracle、SQLServer、MySQL、DB2、SybaseASE等。1.关系数据库基础(3)关系数据库的介绍关系数据库是一些相关的表和其他数据库对象的集合。关系数据库中,数据保存在二维表格中,称为表(TABLE)。表与表通过公共字段(键)建立关联。表与表之间有以下三种类型的关系:一对一关系(1:1)、一对多关系(1:n)、多对多关系(m:n)。关系数据库除了包含表,还包含其他数据库对象(索引、视图、存储过程、触发器、用户等)。1.关系数据库基础(4)关系数据库的设计设计步骤:需求分析、概念结构设计、数据库逻辑设计、数据库物理设计、数据库性能优化。实体-关系模型(E-R图):实体、属性、关系。设计原则2.MySQL简介MySQL是一个关系型数据库管理系统,是一个真正多用户、多线程的结构化查询语言(SQL)数据库服务器,其所使用的SQL语言是用于访问数据库的最常用标准化语言。MySQL体积小、运行速度快、执行效率与稳定性高、总体拥有成本低,尤其是开放源码这一特点,是中小型网站开发首选的数据库管理系统。MySQL的官方网站是/,在该网站上可以免费下载其最新版本和各种技术资料。3.MySQL8.0安装与配置安装过程详见教材。4.MySQL常用工具MySQL采用的是“客户机/服务器”体系结构,要连接上服务器,需要使用MySQL客户端程序。MySQL客户机主要用于传递SQL命令给服务器,并显示执行后的结果。可以与服务器运行在同一台机器上,也可以在网络中的两台机器上分别运行。但在使用客户机连接服务器之前,一定要确保成功启动数据库服务器,才能监听客户机的连接请求。MySQL客户端程序可以Windows操作系统中的命令行程序(cmd.exe),通过执行系统命令来管理;也可以使用图形化管理工具来管理。4.MySQL常用工具(1)MySQL客户端实用工具4.MySQL常用工具(2)MySQL图形化管理工具MySQL图形化管理工具有很多,例如:NavicatforMySQL、MySQLWorkbench、SQLyog、phpMyAdmin等。NavicatforMySQL是一套专为MySQL设计的强大数据库管理及开发工具,这个功能齐备的前端软件为数据库管理、开发和维护提供了直观而强大的图形界面,给MySQL新手以及专业人士提供了一组全面的工具。4.MySQL常用工具(2)MySQL图形化管理工具5.MySQL常见操作(1)MySQL服务器的启动与停止通过命令行程序启动和停止服务器(netstart…、netstop…)。通过控制面板的服务启动和停止启动服务器。5.MySQL常见操作(2)MySQL服务器的连接与关闭通过命令行程序连接和关闭服务器
mysql–h服务器主机地址–u用户名–p用户密码
示例1-1:使用管理员账号“root”、密码“123456”连接本机的MySQL服务器。5.MySQL常见操作(2)MySQL服务器的连接与关闭通过图形化管理工具连接和关闭服务器
使用NavicatforMySQL连接和关闭MySQL服务器。PPT模板下载:/moban/行业PPT模板:/hangye/节日PPT模板:/jieri/PPT素材下载:/sucai/PPT背景图片:/beijing/PPT图表下载:/tubiao/优秀PPT下载:/xiazai/PPT教程:/powerpoint/Word教程:/word/Excel教程:/excel/资料下载:/ziliao/PPT课件下载:/kejian/范文下载:/fanwen/试卷下载:/shiti/教案下载:/jiaoan/
谢谢!第2章数据库的创建和管理1.基本概念2.创建数据库3.修改数据库4.删除数据库本章内容1.基本概念(1)MySQL数据库文件MySQL的数据库的各种数据以文件的形式保存在系统中;每个数据库的文件保存在以数据库名命名的文件夹中。/MySQL配置文件(my.ini)中的datadir参数指定了数据库文件的存储位置。1.基本概念(2)MySQL数据库分类MySQL数据库包含系统数据库和用户数据库两类。1.基本概念(3)MySQL的字符集和校对规则字符集(CharacterSet),即字符以及字符的编码;校对规则(Collation),即比较字符的规则。可以使用多种字符集存储字符串,也允许使用多种校对规则来比较字符串。系统可用的字符集和默认校对规则可以使用SHOWCHARACTERSET、SHOWCOLLATION命令查看。常见的字符集有:utf8mb4(默认字符集)、uf8、gbk、gb2312、big5。其中utf8mb4支持最长4个字节的UTF-8字符,utf8支持最长3个字节的UTF-8字符,utf8mb4兼容utf8,且比utf8能表示更多的字符。2.创建数据库(1)使用Navicat对话方式创建数据库2.创建数据库(2)使用SQL语句创建数据库创建数据库使用CREATEDATABASE语句,其语法格式如下: CREATEDATABASE[IFNOTEXISTS]<数据库名> [DEFAULTCHARACTERSET<字符集名>] [DEFAULTCOLLATE<排序规则名>];2.创建数据库(2)使用SQL语句创建数据库示例2-1:创建数据库“webInfo”,默认字符集为utf8mb4,排序规则为utf8mb4_general_ci。2.创建数据库(2)使用SQL语句创建数据库示例2-2:显示当前数据库服务器下的所有数据库列表。2.创建数据库(2)使用SQL语句创建数据库示例2-3:选择“stuInfo”数据库作为当前默认的数据库。3.修改数据库(1)使用Navicat对话方式修改数据库3.修改数据库(2)使用SQL语句修改数据库修改数据库使用ALTERDATABASE语句。其语法格式如下: ALTERDATABASE<数据库名> [DEFAULT]CHARACTERSET<字符集名>| [DEFAULT]COLLATE<校对规则名>];3.修改数据库(2)使用SQL语句修改数据库示例2-4:将“webInfo”数据库的默认字符集修改为utf8、排序规则修改为utf8_general_ci。4.删除数据库(1)使用Navicat对话方式删除数据库3.修改数据库(2)使用SQL语句删除数据库删除数据库使用DROPDATABASE语句。其语法格式如下:
DROPDATABASE[IFEXISTS]<数据库名>;3.修改数据库(2)使用SQL语句删除数据库示例2-5:删除数据库“webInfo”。PPT模板下载:/moban/行业PPT模板:/hangye/节日PPT模板:/jieri/PPT素材下载:/sucai/PPT背景图片:/beijing/PPT图表下载:/tubiao/优秀PPT下载:/xiazai/PPT教程:/powerpoint/Word教程:/word/Excel教程:/excel/资料下载:/ziliao/PPT课件下载:/kejian/范文下载:/fanwen/试卷下载:/shiti/教案下载:/jiaoan/
谢谢!第3章数据表的创建和管理1.表的概念2.数据类型3.创建数据表4.查看表结构5.修改表结构6.删除数据表7.管理表数据本章内容1.表的概念数据表是数据库中一个非常重要的对象,也是其他对象的基础。一个数据库中可以包含一张或多张表,表是数据的集合,是用来存储数据和操作数据的逻辑结构。/数据在表中是按照行和列的格式来组织排列的,每一行代表一条唯一的记录,每一列代表记录的一个属性。2.数据类型为了能方便地管理和使用这些数据,我们需要对这些数据进行分类,形成各种数据类型。在创建表结构时需要确定表中每列的数据类型,只有这样,系统才会在磁盘上开辟相应的空间,用户才能向表中填写数据。MySQL的数据类型主要分为以下三大类:数值类型、字符串类型和日期/时间类型。2.数据类型(1)数值类型2.数据类型(2)字符串类型2.数据类型(3)日期/时间类型2.数据类型(4)NULL值NULL意味着“没有值”或“未知值”,可以将NULL值插入到数据表中并从表中检索它们,也可以测试某个值是否为NULL,但能对NULL值进行算术计算。如果对NULL值进行算术运算,其结果还是NULL。在MySQL中,0或NULL都意味着假,而其余值都意味着真。3.创建数据表(1)使用Navicat对话方式创建数据表3.创建数据表(2)使用SQL语句创建数据表创建数据表使用CREATETABLE语句,其语法格式如下:
CREATETABLE[IFNOTEXISTS]<表名>(
字段名1数据类型[属性][索引],
字段名2数据类型[属性][索引], …
字段名n数据类型[属性][索引] )[存储引擎][表字符集];3.创建数据表(2)使用SQL语句创建数据表示例3-1:在数据库stuInfo中创建学生表(student1),其中id字段为自动增加的无符号整数、主键,sNo、sName字段不允许为空。3.创建数据表(2)使用SQL语句创建数据表示例3-2:在数据库stuInfo中创建课程表(course),其中id字段为自动增加的无符号整数、主键,cNo、cName字段不允许为空。3.创建数据表(2)使用SQL语句创建数据表示例3-3:在数据库stuInfo中创建成绩表(score),其中id字段为自动增加的无符号整数、主键,sId、cId、grade字段不允许为空。3.创建数据表(2)使用SQL语句创建数据表示例3-4:查看数据库stuInfo中所有数据表。4.查看表结构(1)查看数据表的结构查看数据表的结构可以使用“DESCRIBE”或“DESC”语句,其语法格式如下:
DESCRIBE|DESC表名示例3-5:查看数据库stuInfo中学生表(student)的结构。4.查看表结构(2)查看数据表的创建语句查看数据表的创建语句可以使用“SHOWCREATETABLE”语句,其语法格式如下:
SHOWCREATETABLE表名示例3-6:查看数据库stuInfo中学生表(student)的创建语句。5.修改表结构(2)使用SQL语句修改表结构修改数据表使用ALTERTABLE语句,其语法格式如下:ALTERTABLE表名ADD字段名数据类型[属性][索引][FIRST|AFTER列名]|MODIFY列名数据类型[属性][索引]|CHANGE列名新列名数据类型[属性][索引]|DROP列名|AUTO_INCREMENT=n|RENAMEAS新表名;5.修改表结构(2)使用SQL语句修改表结构示例3-7:在学生表(student)的出生日期birthday字段的后面添加一个新的入学日期entryDate字段。5.修改表结构(2)使用SQL语句修改表结构示例3-8:将学生表(student)的入学日期entryDate字段的数据类型更改为TIMESTAMP。5.修改表结构(2)使用SQL语句修改表结构示例3-9:将学生表(student)的入学日期entryDate字段的名字更改为rxDate、数据类型更改为DATETIME。5.修改表结构(2)使用SQL语句修改表结构示例3-10:删除学生表(student)的入学日期rxDate字段。6.删除数据库(1)使用Navicat对话方式删除数据表6.删除数据表(2)使用SQL语句删除数据表删除数据表使用DROPTABLE语句,其语法格式如下:
DROPTABLE[IFEXISTS]<表名>;6.删除数据表(2)使用SQL语句删除数据表示例3-11:删除课程表(course)。7.管理表数据(1)使用Navicat对话方式管理表数据7.管理表数据(2)使用SQL语句插入表数据使用INSERT语句可以向表中插入数据,其语法格式如下:
INSERT[INTO]<表名>[(字段名1,字段名2,...,字段名n)] VALUES(值1,值2,...,值n);7.管理表数据(2)使用SQL语句插入表数据示例3-12:向学生表(student)中添加一行数据。7.管理表数据(2)使用SQL语句插入表数据示例3-13:向学生表(student)中插入多行数据。7.管理表数据(3)使用SQL语句修改表数据使用INSERT语句可以向表中插入数据,其语法格式如下:UPDATE<表名>SET字段名1=值1[,字段名2=值2,…,字段名n=值n][WHERE条件];7.管理表数据(3)使用SQL语句修改表数据示例3-14:修改学生表(student)中学号为“1308013101”的数据记录,将出生日期birthday字段的值更改为“1993-11-25”,将备注remark字段的值更改为“班长”。7.管理表数据(4)使用SQL语句删除表数据使用DELETE语句可以删除表中的一条或多条数据记录,通过WHERE子句可以限定要删除的数据行,否则清空整个数据表。DELETE语句的语法格式如下:DELETEFROM<表名>[WHERE条件];7.管理表数据(4)使用SQL语句删除表数据示例3-15:删除学生表(student)中学号为“1308013102”的数据记录。PPT模板下载:/moban/行业PPT模板:/hangye/节日PPT模板:/jieri/PPT素材下载:/sucai/PPT背景图片:/beijing/PPT图表下载:/tubiao/优秀PPT下载:/xiazai/PPT教程:/powerpoint/Word教程:/word/Excel教程:/excel/资料下载:/ziliao/PPT课件下载:/kejian/范文下载:/fanwen/试卷下载:/shiti/教案下载:/jiaoan/
谢谢!第4章索引的创建和使用1.索引概述2.创建索引3.删除索引4.约束管理本章内容1.索引概述索引是一种与数据表相关的类似于目录的一种数据结构,使用索引可以提高查询的效率。使用索引提高查询效率的原理索引包含由列生成的键值+数据页地址的指针组成的。索引的键值是排序的,排序的数据可以利用各种高效的查找算法(例如,折半查找等)。索引的优点提高查询速度。提高表与表之间连接的效率。唯一索引还可以保证数据记录的唯一性。1.索引概述索引的缺点索引可以极大提高查询效率,但并不是索引创建的越多越好。这是因为:索引需要额外的维护时间,导致插入数据、更新数据需要更多的时间。索引需要额外的存储空间。1.索引概述使用索引的原则(1)考虑设置索引的情况:经常检索的列(在WHERE子句中使用的列)。主键列、外键列(事实上,主键约束列、唯一约束列会自动创建索引)。经常用于表间连接的列。(2)考虑不设置索引的情况:检索中几乎不涉及到的列。重复值太多的列。数据类型为text、blob的列。行数极少的表没必要创建索引。插入、更新效率比查询效率更重要的情况。2.创建索引(1)使用Navicat对话方式创建索引2.创建索引(2)在CREATETABLE语句中创建索引可以使用CREATETABLE语句在创建数据表的同时创建索引,其语法格式如下:CREATETABLE<表名>(
<字段名1>[,……n]|索引项)[存储引擎][表字符集];其中索引项的语法格式为:PRIMARYKEY[<索引名>](<字段名1>[ASC|DESC][,……n])|UNIQUE[INDEX][<索引名>](<字段名1>[ASC|DESC][,……n])|INDEX|KEY[<索引名>](<字段名1>[ASC|DESC][,……n])|SPATIAL[INDEX][<索引名>](<字段名1>[ASC|DESC][,……n])|FULLTEXT[INDEX][<索引名>](<字段名1>[ASC|DESC][,……n])2.创建索引(2)在CREATETABLE语句中创建索引示例4-1:创建学生表(student1),在sNo字段上创建主键索引,在sName字段上创建普通索引。2.创建索引(2)在CREATETABLE语句中创建索引示例4-2:创建课程表(course1),在id字段上创建主键索引。2.创建索引(3)在ALTERTABLE语句中创建索引如果数据表已经存在,可以使用ALTERTABLE语句创建索引,其语法格式如下:ALTERTABLE<表名>ADD索引项;2.创建索引(3)在ALTERTABLE语句中创建索引示例4-3:创建成绩表(score1),在id字段上创建主键索引。2.创建索引(3)在ALTERTABLE语句中创建索引示例4-4:修改课程表(course1),在cNo字段上创建唯一索引、在cName字段上创建普通索引。2.创建索引(4)使用SQL语句创建索引创建索引的语句使用CREATEINDEX,其语法格式如下:CREATE[UNIQUE]|[FULLTEXT]INDEX<索引名>ON<表名>(<列名1>[ASC|DESC][,……n]);2.创建索引(4)使用SQL语句创建索引示例4-5:在成绩表(score1)的sId、cId字段上创建唯一索引(复合索引)。2.创建索引(5)使用SQL语句查看索引查看索引使用语句SHOWINDEX,其语法格式如下:SHOWINDEXFROM<表名>[FROM<数据库名>];2.创建索引(5)使用SQL语句查看索引示例4-6:查看学生表(student1)中的索引。3.删除索引(1)使用Navicat对话方式删除索引3.删除索引(2)使用SQL语句删除索引删除索引使用语句DROPINDEX,其语法格式如下:DROPINDEX<索引名>ON<表名>;3.删除索引(2)使用SQL语句删除索引示例4-7:删除课程表(course1)中的索引ix_cName。4.约束管理约束是是对列进行限制的规则,以确保输入数据的一致性和正确性。约束是实现数据完整性的主要途径。常见的约束有:主键约束、唯一性约束、默认约束、外键约束等。其中,主键约束与主键索引相对应,唯一性约束与唯一性索引相对应。约束可以在创建数据表时创建,也可以在修改数据表时创建。4.约束管理(1)默认约束(DEFAULT)默认约束是用来给表中某列赋予一个常量值(默认值),当向该表插入数据时,如果用户没有明确给出该列的值,MySQL会自动为该列输入默认值。每列只能有一个DEFAULT约束。4.约束管理(1)默认约束(DEFAULT)①使用Navicat对话方式创建默认约束4.约束管理(3)默认约束(DEFAULT)②在CREATETABLE语句中创建默认约束在CREATETABLE语句中创建默认约束的语法格式如下:CREATETABLE<表名>(
<字段名1>DEFAULT默认值
[,......n])[存储引擎][表字符集];4.约束管理(3)默认约束(DEFAULT)②在CREATETABLE语句中创建默认约束示例4-8:创建学生表(student2),为sex字段设置默认值“女”。4.约束管理(3)默认约束(DEFAULT)③在ALTERTABLE语句中创建默认约束在ALTERTABLE语句中创建默认约束的语法格式如下:删除已存在的默认约束ALTERTABLE<表名> ALTERCOLUMN<字段名>DROPDEFAULT设置默认约束ALTERTABLE<表名>
ALTERCOLUMN<字段名>SETDEFAULT默认值4.约束管理(3)默认约束(DEFAULT)③在ALTERTABLE语句中创建默认约束示例4-9:修改学生表(student2),把sex字段的默认值删除。4.约束管理(3)默认约束(DEFAULT)③在ALTERTABLE语句中创建默认约束示例4-10:修改学生表(student2),为sex字段设置默认值“男”。4.约束管理(4)外键约束(FOREIGNKEY)外键约束是指表A的主键列或唯一索引列是表B的列(外键列),主表A和从表B之间满足以下关系:B表外键列的取值必须是A表主键列或者唯一索引列中的取值。A表主键列或者唯一索引列取值发生改变,B表外键列的值也发生改变。A表主键列或者唯一索引列取值删除,B表外键列取值与该值相同的行会被删除。在MySQL中,目前只有InnoDB存储引擎支持外键约束。4.约束管理(4)外键约束(FOREIGNKEY)①使用Navicat对话方式创建外键约束4.约束管理(4)外键约束(FOREIGNKEY)②在CREATETABLE语句中创建外键约束在CREATETABLE语句中创建外键约束的语法格式如下:CREATETABLE<表名>( <字段名1>[,......n]|外键约束项)[存储引擎][表字符集];其中外键约束项的语法格式为:FOREIGNKEY[约束名](<字段名>)REFERENCES<表名>(<字段名>) [ONDELETE{RESTRICT|NOACTION|CASCADE|SETNULL}] [ONUPDATE{RESTRICT|NOACTION|CASCADE|SETNULL}]4.约束管理(4)外键约束(FOREIGNKEY)②在CREATETABLE语句中创建外键约束示例4-11:创建成绩表(score2),并设置学生ID(sId)字段的外键约束,参照学生表(student1)中的学生ID(id)字段(不执行任何操作)。4.约束管理(4)外键约束(FOREIGNKEY)③在ALTERTABLE语句中创建外键约束如果数据表已经存在,可以使用ALTERTABLE语句创建外键约束,其语法格式如下:ALTERTABLE<表名>ADD外键约束项;4.约束管理(4)外键约束(FOREIGNKEY)③在ALTERTABLE语句中创建外键约束示例4-12:修改成绩表(score2),为课程ID(cId)字段设置外键约束,参照课程表(course1)中的课程ID(id)字段(不执行任何操作)。PPT模板下载:/moban/行业PPT模板:/hangye/节日PPT模板:/jieri/PPT素材下载:/sucai/PPT背景图片:/beijing/PPT图表下载:/tubiao/优秀PPT下载:/xiazai/PPT教程:/powerpoint/Word教程:/word/Excel教程:/excel/资料下载:/ziliao/PPT课件下载:/kejian/范文下载:/fanwen/试卷下载:/shiti/教案下载:/jiaoan/
谢谢!第5章数据查询1.SELECT语句2.简单查询3.高级查询本章内容1.SELECT语句数据查询是指数据库管理系统按照用户指定的条件,从数据库相关表中检索满足条件的数据的过程。SELECT语句主要用于数据的查询检索,是SQL语言的核心,也是使用频率最高的一条语句。SELECT语句可以让数据库服务器根据用户的要求,从数据库的表中检索出所需要的数据,并按照用户指定的格式进行整理并返回。1.SELECT语句(1)SELECT语句基本语法SELECT语句的语法格式如下:SELECT[ALL|DISTINCT]*|字段列表FROM表名[WHERE查询条件][GROUPBY分组字段[HAVING分组条件]][ORDERBY排序字段[ASC|DESC]][LIMIT[初始位置,]记录数];1.SELECT语句(2)示例数据库学生表(student)student(id,sNo,sName,sex,birthday,deptName,remark)课程表(course)course(id,cNo,cName,credit,remark)成绩表(score)score(id,sid,cid,grade)2.简单查询(1)选择字段选择所有字段SELECT*FROM表名;选择指定字段SELECT字段名1[,字段名2,…,字段名n]FROM表名;定义字段别名SELECT字段名1[AS]列标题1[,字段名2[AS]列标题2,…]FROM表名;2.简单查询(1)选择字段示例5-1:显示student表中的所有信息。示例5-2:从student表中查询出班级名称(deptName),学号(sNo)、姓名(sName)、和性别(sex)的学生信息。示例5-3:以“学号
姓名
性别
出生日期”作为列标题显示学生信息。2.简单查询(2)WHERE子句在实际工作中,大部分查询并不是针对表中所有数据记录的查询,而是要找出满足某些条件的数据记录。此时我们可以在SELECT语句中使用WHERE子句,其语法格式如下:SELECT*|字段列表FROM表名WHERE查询条件;2.简单查询(2)WHERE子句使用比较运算符2.简单查询(2)WHERE子句使用比较运算符
示例5-4:查询student表中女学生的信息。
示例5-5:查询course表中超过4个学分(credit)的课程信息。2.简单查询(2)WHERE子句使用逻辑运算符2.简单查询(2)WHERE子句使用逻辑运算符
示例5-6:查询student表中1995年出生的学生的相关信息。2.简单查询(2)WHERE子句使用LIKE进行模糊查询
在WHERE子句中,通过LIKE关键字与“%”和“_”两个通配符的使用,可以对数据表中的数据进行模糊查询。这两个通配符的含义如下所示:百分号(%):表示匹配0个或者任意多个字符。下划线(_):表示匹配任意一个字符。2.简单查询(2)WHERE子句使用LIKE进行模糊查询
示例5-7:从student表中检索出所有姓“杨”学生的信息。
示例5-8:从student表中检索出姓名的第二个字是“伟”和“先”的学生的信息。2.简单查询(2)WHERE子句使用BETWEENAND进行范围比较查询
在WHERE子句中,可以使用BETWEENAND关键字对指定字段的某一范围内的数据进行比较查询,其与使用“>=”且“<=”的功能一样。其语法格式如下:
字段名
[NOT]BETWEEN值1AND值22.简单查询(2)WHERE子句使用BETWEENAND进行范围比较查询
示例5-9:使用BETWEENAND关键字实现示例5-6的功能。
示例5-10:从score表中查询出成绩不在60-89分之间的学生的成绩信息。2.简单查询(2)WHERE子句使用IN进行范围比对查询
如果字段的取值范围不是一个连续的区间,而是一些离散的值,可以使用IN关键字对指定字段进行范围比对查询。其语法格式如下:
字段名
[NOT]IN(值1[,值2,值3,…])2.简单查询(2)WHERE子句使用IN进行范围比对查询
示例5-11:查询student表中学号(sNo)为1308013101,1309122503,1312054904的学生的信息。
2.简单查询(2)WHERE子句空值(NULL)的判断
空值(NULL)是一个特殊的值,它仅仅是一个符号,不等于空字符串,也不等于0。空值判断的语法格式如下:
字段名IS[NOT]NULL2.简单查询(2)WHERE子句空值(NULL)的判断
示例5-12:检索course表中备注(remark)为空的课程记录。2.简单查询(3)ORDERBY子句使用ORDERBY子句可以将查询结果进行排序显示。其语法格式如下:SELECT*|字段列表FROM表名[WHERE查询条件]ORDERBY字段名1[ASC|DESC][,字段名2[ASC|DESC]][,…];2.简单查询(3)ORDERBY子句示例5-13:查询student表中的男生信息,按照出生日期(birthday)的降序排列。示例5-14:查询student表中的数据,先按性别(sex)的升序排列,当性别相同时再按照学号(sNo)的降序排列。
2.简单查询(4)LIMIT子句使用LIMIT子句,可以限制SELECT语句返回的记录数。LIMIT子句通常位于SELECT语句的最后面,其语法格式如下:SELECT*|字段列表FROM表名[WHERE查询条件][ORDERBY排序字段[ASC|DESC]][LIMIT[初始位置,]记录数];2.简单查询(4)LIMIT子句示例5-15:返回年龄最小的5位同学的信息。示例5-16:返回课程ID(cId)为“1”课程的第2~4名学生的成绩。2.简单查询(5)DISTINCT关键字在对数据进行查询时,如果返回的查询结果中包含重复的记录,可以使用DISTINCT关键字取消重复的数据,只返回其中的一条。其语法格式如下:SELECTDISTINCT字段列表FROM表名;2.简单查询(5)DISTINCT关键字示例5-17:查询score表,显示选修了课程的学生ID,如果有多个相同的学生ID,只需显示一个即可。3.高级查询(1)多表查询关系数据库在进行数据表设计时,为了减少冗余,确保数据一致性、完整性,要求数据表的设计符合规范(比如3NF),为了遵循这些规范,往往需要将数据分离到多张表中。在实际应用中,又往往需要将多张表的相关数据提取,聚合后一起提供给用户,即需要多表查询。多表查询的本质是多张表通过关联的列的连接,所以多表查询也称为连接查询。3.高级查询(1)多表查询多表(连接)查询的语法格式有如下两种:SELECT*|字段列表FROM表名1[连接类型]JOIN表名2ON连接条件[[连接类型]JOIN表名3ON连接条件][…]WHERE查询条件;SELECT*|字段列表FROM表名1,表名2[,表名3,…表名n]WHERE连接条件AND查询条件;3.高级查询(1)多表查询内连接
内连接(INNERJOIN)是指多个表通过连接条件中共享列的值进行的比较连接,INNER关键字可以省略,当未指明连接类型时,默认为内连接。3.高级查询(1)多表查询内连接
示例5-18:查询所有女生的学号、姓名、性别、课程ID和成绩。
示例5-19:查询学号(sNo)为“1308013101”学生的学号、姓名、性别、班级、课程名称和成绩。3.高级查询(1)多表查询外连接
外连接显示包含来自一个表中所有行和来自另一个表中匹配行的结果集,外连接主要又分为左外连接和右外连接。3.高级查询(1)多表查询外连接
示例5-20:显示“网络131”班学生的学号、姓名、性别、班级、课程ID和成绩。3.高级查询(2)统计函数MySQL不仅可以查询返回满足条件的记录,还可以对数据进行统计汇总。3.高级查询(2)统计函数示例5-21:统计student表中的男生人数。示例5-22:统计学号(sNo)为“1308013101”的学生选修课程的最高分、最低分、平均分和总分。示例5-23:统计已选修课程的学生人数。3.高级查询(3)GROUPBY子句使用GROUPBY子句,可以显示分组的汇总数据。其语法格式为:SELECT字段名1[,字段名2,…],统计函数FROM表名[WHERE查询条件]GROUPBY字段名1[,字段名2,…][HAVING分组条件];3.高级查询(3)GROUPBY子句示例5-24:分组统计男、女学生的人数。示例5-25:分组统计被选修过1次以上的课程名称、选修次数和平均分。示例5-26:分组统计选修超过2门课程、且平均成绩高于80分的学生学号、姓名、选修门数和平均分。3.高级查询(4)嵌套查询嵌套查询是指一个SELECT语句的WHERE子句中还包含另外一个SELECT语句,外层的SELECT语句称为外部查询或父查询,内层的SELECT语句称为内部查询或子查询,子查询需要使用圆括号“()”括起来。SQL语言允许多层嵌套查询,即一个子查询中还可以有其他子查询。3.高级查询(4)嵌套查询子查询的返回值为单列单值
如果子查询的返回值为单列单值,可以通过使用“=”、“!=”、“>”、“<”等比较运算符直接与父查询的字段值进行比较。3.高级查询(4)嵌套查询子查询的返回值为单列单值
示例5-27:查询与学号(sNo)为“1308013101”的同学在同一个班级的学生名单。
示例5-28:查询选修课程编号(cNo)为“01001”的课程、且成绩超过该课程平均分的学生的学号、姓名、班级、课程名称和成绩。3.高级查询(4)嵌套查询子查询的返回值为单列多值
如果子查询的返回值为单列多值,可以使用IN或NOTIN关键字,即表示在或者不在子查询的结果集中。3.高级查询(4)嵌套查询子查询的返回值为单列多值
示例5-29:查询选修课程编号(cNo)为“01001”的课程的学生名单。
示例5-30:查询学号为“1308013101”的学生选修的课程信息。
示例5-31:查询没有选修课程的女生名单。3.高级查询(4)嵌套查询子查询的返回值为多列数据
如果子查询的返回值为多列数据,可以使用EXISTS或NOTEXISTS关键字。3.高级查询(4)嵌套查询子查询的返回值为多列数据
示例5-32:查询选修课程的女生名单,使用关键字EXISTS。3.高级查询(5)带子查询的数据更新带子查询的数据更新主要包括:向表中插入子查询结果集、带子查询的修改语句、带子查询的删除语句,使用的SQL语句同样还是INSERT、UPDAE、DELETE。其中,向表中添加子查询结果集的语法格式如下:INSERTINTO表名[(字段名1,字段名2,...,字段名n)]SELECT*|字段列表FROM表名[WHERE查询条件];3.高级查询(5)带子查询的数据更新示例5-33:创建数据表tempStudent,包含5个字段:学生ID(id)、学号(stuNo)、姓名(stuName)性别(sex)和班级名称(deptName);查询“网络131”班的学生记录,将查询结果插入到tempStudent表中。示例5-34:将“数据结构”课程的成绩统一减去5分。示例5-35:将“机电131”班的学生成绩记录全部删除。PPT模板下载:/moban/行业PPT模板:/hangye/节日PPT模板:/jieri/PPT素材下载:/sucai/PPT背景图片:/beijing/PPT图表下载:/tubiao/优秀PPT下载:/xiazai/PPT教程:/powerpoint/Word教程:/word/Excel教程:/excel/资料下载:/ziliao/PPT课件下载:/kejian/范文下载:/fanwen/试卷下载:/shiti/教案下载:/jiaoan/
谢谢!第6章视图的创建和使用1.视图概述2.创建视图3.查看视图4.修改视图5.更新视图6.删除视图本章内容1.视图概述视图的概念视图是一种存储查询的数据库对象,是基于查询的一种虚拟表。视图保存的是一条查询语句,本身不含数据。可以使用视图可以屏蔽、隐藏底层表的物理结构和数据。视图可以象表一样使用。通过视图不仅可以查询获得数据,还可以修改数据。视图的优点直观的查询:用户只需要关注需要的数据,而不必关心底层复杂的实现。安全的查询:视图的权限与表的权限可以完全不同。可以更新的查询:可以通过视图增、删、改底层源表的记录。2.创建视图(1)使用Navicat对话方式创建视图2.创建视图(2)使用SQL语句创建视图创建视图使用CREATEVIEW语句,其语法格式如下:CREATE[ALGORITHM={UNDEFIEND|MERGE|TEMPTABLE}]VIEW<视图名>[(<字段名>[,……n])]AS<SELECT语句>[WITH[CASCADED|LOCAL]CHECKOPTION];2.创建视图(2)使用SQL语句创建视图示例6-1:创建视图v_stu,列出所有1995年9月1日及之后出生的学生名单;然后在该视图中查询“网络131”班级的学生记录。示例6-2:创建视图v_cou,列出学分大于4的课程ID、课程编号、课程名称、学分,要求使用“WITHCHECKOPTION”子句;然后查询该视图。示例6-3:创建视图v_stu_grade,列出学号、姓名、性别、班级、课程名称、成绩;然后在该视图中查询所有女生的数据记录。3.查看视图使用DESCRIBE|DESC语句查看视图基本信息 DESCRIBE|DESC<视图名>;示例6-4:使用DESCRIBE|DESC语句查看视图v_stu的基本信息。3.查看视图使用SHOWTABLESTATUS语句查看视图基本信息
SHOWTABLESTATUS[LIKE'视图名'];示例6-5:使用SHOWTABLESTATUS语句查看视图v_stu的基本信息。3.查看视图使用SHOWCREATEVIEW语句查看视图详细信息 SHOWCREATEVIEW<视图名>;示例6-6:使用SHOWCREATEVIEW语句查看视图v_stu的详细信息。3.查看视图在views表中查看视图详细信息 SELECT*FROMinformation_schema.views [WHERETABLE_NAME='视图名'];示例6-7:使用SELECT语句查询views表中的信息。4.修改视图(1)使用Navicat对话方式修改视图4.修改视图(2)使用SQL语句修改视图使用CREATEORREPLACEVIEW语句查看视图基本信息,其语法格式如下:CREATEORREPLACE[ALGORITHM={UNDEFIEND|MERGE|TEMPTABLE}]VIEW<视图名>[(<字段名>[,……n])]AS<SELECT语句>[WITH[CASCADED|LOCAL]CHECKOPTION];
示例6-8:修改视图v_stu,列出所有1995年9月1日及之后出生的女学生名单,包含:学号、姓名、性别、出生日期;然后查询该视图。4.修改视图(2)使用SQL语句修改视图使用ALTERVIEW语句修改视图,其语法格式如下:ALTER[ALGORITHM={UNDEFIEND|MERGE|TEMPTABLE}]VIEW<视图名>[(<字段名>[,……n])]AS<SELECT语句>[WITH[CASCADED|LOCAL]CHECKOPTION];
示例6-9:修改视图v_stu_grade,列出“网络131”班学生的学号、姓名、班级、课程编号、课程名称、成绩;然后查询该视图。5.更新视图通过视图除了可以查询表中数据以外,还可以通过视图更新(插入/修改/删除)表中数据。因为视图是一个虚拟表,其中没有数据。通过视图更新时,都是转换到基本表来更新。更新视图的语法与更新数据表的语法相同。更新视图时,只有更新权限范围内的数据,超出了范围,就不能更新。5.更新视图示例6-10:在视图v_stu中插入一条新的学生记录;然后查询该视图。示例6-11:在视图v_cou中插入一条新的课程记录;然后查询该视图。示例6-12:修改视图v_stu中学号“1308013110”学生的班级为“网络131”;然后查询该视图。示例6-13:删除视图v_cou中课程编号为“01004”的课程记录;然后查询该视图。6.删除视图(1)使用Navicat对话方式删除视图6.删除视图(2)使用SQL语句删除视图删除视图使用DROPVIEW语句,其语法格式如下:DROPVIEW[IFEXISTS]<视图名>[,…];
示例6-14:删除视图v_stu。PPT模板下载:/moban/行业PPT模板:/hangye/节日PPT模板:/jieri/PPT素材下载:/sucai/PPT背景图片:/beijing/PPT图表下载:/tubiao/优秀PPT下载:/xiazai/PPT教程:/powerpoint/Word教程:/word/Excel教程:/excel/资料下载:/ziliao/PPT课件下载:/kejian/范文下载:/fanwen/试卷下载:/shiti/教案下载:/jiaoan/
谢谢!第7章
MySQL编程基础1.SQL语言概述2.标识符命名规则3.注释4.变量5.运算符6.内部函数本章内容1.SQL语言概述SQL(StructuredQueryLanguage,结构化查询语言)是关系型数据库环境下的标准查询和程序设计语言。主要包括三个部分:数据定义语句DDL(DataDefinitionLanguage):定义数据结构和关系(CREATE、ALTER、DROP语句)。数据操作语句DML(DataManipulationLanguage):对数据进行增删改查等操作(INSERT、UPDATE、DELETE、SELECT语句)。数据控制语句DCL(DataControlLanguage):对数据存取权限控制(GRANT、REVOKE语句)。2.标识符的命名规则标识符用来命名一些对象,如数据库、表、列、变量等,以便在脚本中的其他地方引用。MySQL标识符里的合法字符如下:不加引号的标识符必须是由系统字符集中的字母和数字,再加上“_”和“$”字符组成。不加引号的标识符不允许完全由数字字符构成(因为这样难以和数值进行区分)。第一个字符可以是满足以上条件的任何一个字符(包括数字)。3.注释注释相当于代码的解释和说明,注释有两种形式:单行注释:#,或者是两个减号(--)加上一个空格。多行注释:/**/4.变量变量是程序运行中可以改变值(状态)的命名存储区。变量存储数据值,并可在语句之间传递数据值。MySQL变量分为:系统变量、用户变量、局部变量(仅在函数、存储过程、触发器中使用)。4.变量(1)系统变量MySQL系统变量是由MySQL系统本身创建,用于记录系统的各种设定值,可以直接使用。系统变量在MySQL服务器启动时被创建并初始化为默认值。用户只能使用系统预定义的系统变量,不能创建系统变量。多数系统变量名称以@@开头(为了兼容其他系统,也有部分使用时需要省略@@的)。输出系统变量使用SELECT语句,其语法格式如下:SELECT<系统变量名>[,…];4.变量(1)系统变量示例7-1:系统变量的使用(1)。示例7-2:系统变量的使用(2)。示例7-3:系统变量的使用(3)。4.变量(2)用户变量MySQL用户变量是由用户创建、其作用域限制在用户连接(会话)中的变量。不同用户会话中的用户变量相互不受影响,用户变量必须以@开头。其语法格式如下:SET<@用户变量名>=<表达式>[,…];4.变量(2)用户变量示例7-4:定义并初始化一个用户变量,然后输出该用户变量。示例7-5:把学号为“1308013101”学生的所在班级保存到一个用户变量中,然后查询这个班级的所有学生名单。4.变量(3)局部变量MySQL局部变量存在于函数、存储过程和触发器中,由用户创建、且必须使用DECLARE语句定义后才能使用的变量。该部分内容将在第8章中做详细介绍。5.运算符(1)算术运算符算术运算符主要包括:+、-、*、/、DIV、%或MOD。/和DIV表示两个数相除求商,其中DIV是整除。%或者MOD表示两个数相除求余数。算术运算符可以用于任何数字类型(整型、实数型)数的运算。+、-还可以用于日期时间型数的运算5.运算符(1)算术运算符示例7-6:算术运算符的使用。示例7-7:查询成绩表(soce),并显示减去了5分以后的成绩。5.运算符(2)比较运算符比较运算符主要包括:=、<=>、!=或<>、>、>=、<、<=、ISNULL、ISNOTNULL、IN、NOTIN、LIKE、NOTLIKE、BETWEENAND。比较运算是用来进行比较运算,比较两个表达式是否满足某种关系。比较运算可以用于数值型数据、字符串数据的比较。字符串比较时不区分大小写。比较运算返回的结果是逻辑值,有3种可能:1、0、NULL。5.运算符(2)比较运算符示例7-8:查询成绩表(soce),显示成绩小于60分的记录。5.运算符(3)逻辑运算符逻辑运算符用来判断表达式的真假。如果表达式是真,结果返回1。如果表达式是假,结果返回0。逻辑运算符是将多个逻辑量连接起来,构成更加复杂的条件。逻辑运算符主要包括:AND或&&、OR或||、NOT或!、XOR。5.运算符(3)逻辑运算符示例7-9:查询学生表(student),显示“网络131”班级的所有男生信息。5.运算符(4)位运算符位运算符是在二进制数上进行计算的运算符。位运算会先将操作数变成二进制数,进行位运算。然后再将计算结果从二进制数变回十进制数。位运算符主要包括:&(按位与)、|(按位或)、~(按位取反)、^(按位异或)、<<(按位左移)、>>(按位右移)。5.运算符(5)运算符的优先级6.内部函数(1)数学函数6.内部函数(1)数学函数示例7-10:数学函数的使用(1)。示例7-11:数学函数的使用(2)。6.内部函数(2)字符串函数6.内部函数(2)字符串函数示例7-12:字符串函数的使用(1)。示例7-13:字符串函数的使用(2)。示例7-14:字符串函数的使用(3)。示例7-15:字符串函数的使用(4)。6.内部函数(3)日期时间函数6.内部函数(3)日期时间函数6.内部函数(3)日期时间函数6.内部函数(3)日期时间函数示例7-16:日期时间函数的使用(1)。示例7-17:日期时间函数的使用(2)。示例7-18:日期时间函数的使用(3)。示例7-19:日期时间函数的使用(4)。示例7-20:日期时间函数的使用(5)。示例7-21:日期时间函数的使用(6)。示例7-22:日期时间函数的使用(7)。示例7-23:日期时间函数的使用(8)。6.内部函数(4)系统信息函数6.内部函数(4)系统信息函数示例7-24:系统信息函数的使用(1)。示例7-25:系统信息函数的使用(2)。6.内部函数(5)加密函数6.内部函数(5)加密函数示例7-26:加密函数的使用。PPT模板下载:/moban/行业PPT模板:/hangye/节日PPT模板:/jieri/PPT素材下载:/sucai/PPT背景图片:/beijing/PPT图表下载:/tubiao/优秀PPT下载:/xiazai/PPT教程:/powerpoint/Word教程:/word/Excel教程:/excel/资料下载:/ziliao/PPT课件下载:/kejian/范文下载:/fanwen/试卷下载:/shiti/教案下载:/jiaoan/
谢谢!第8章
存储过程和存储函数1.存储过程和存储函数概述2.创建存储过程和存储函数3.调用存储过程和存储函数4.查看存储过程和存储函数5.修改存储过程和存储函数6.删除存储过程和存储函数本章内容1.存储过程和存储函数概述存储过程和存储函数的概念MySQL的存储过程和存储函数是一种保存在数据库服务器上、可以用来执行特定工作的一组SQL代码的程序段。存储过程和函数可以包含针对数据库操作的SQL语句,还可以在其内部进行流程控制,而且执行速度快,所以在数据库应用开发中广泛使用。1.存储过程和存储函数概述存储过程和存储函数的优点存储过程和存储函数允许标准组件式编程,提高了SQL语句的重用性、共享性和可移植性。存储过程和存储函数是在MySQL服务器上执行的,执行速度快、网络通信流量小。存储过程和存储函数可以作为一种安全机制来利用,其权限可以与数据表的权限不同,保证数据的安全性。2.创建存储过程和存储函数(1)使用SQL语句创建存储过程创建存储过程使用CREATEPROCEDURE语句,其语法格式如下:CREATEPROCEDURE<存储过程名>([<参数>[,…n]])[characteristic…]<存储过程体>2.创建存储过程和存储函数(1)使用SQL语句创建存储过程示例8-1:创建一个不带有参数的存储过程up_studentInfo,查询出所有1994年9月之前出生的学生名单。示例8-2:创建一个带有输入参数的存储过程up_deptStudentInfo,通过一个给定的班级,查询出该班级的所有学生记录。示例8-3:创建一个带有输入和输出参数的存储过程up_scoreGradeInfo,通过一个给定的学号,查询出该学生选修课程的数量及平均分,并通过输出参数返回。2.创建存储过程和存储函数(2)使用SQL语句创建存储函数存储函数即用户自定义函数,创建存储函数使用CREATEFUNCTION语句,其语法格式如下:CREATEFUNCTION<函数名>([<参数>[,…n]])RETURNS<数据类型>[characteristic…]<函数体>2.创建存储过程和存储函数(2)使用SQL语句创建存储函数示例8-4:创建一个函数func_getStudentName,通过一个给定的学号,返回该学生的姓名。2.创建存储过程和存储函数(3)局部变量的使用定义变量DECLARE<变量名>[,…]<数据类型>[DEFAULT默认值]给变量赋值SET<变量名1>=<赋值表达式1>[,<变量名2>=<赋值表达式2>,…]SELECT<字段名>[,…]INTO<变量名>[,…] FROM<表名>WHERE<查询条件>2.创建存储过程和存储函数(4)定义条件和处理程序定义条件和处理程序是事先定义程序执行过程中可能遇到的问题,并且可以在处理程序中定义解决这些问题的办法。这种方式可以提前预测可能出现的问题,并提出解决办法。这样可以增强程序处理问题的能力,避免程序异常停止。2.创建存储过程和存储函数(5)流程控制语句的使用IF语句IF<条件表达式1>THEN<语句块1>[ELSEIF<条件表达式2>THEN<语句块2>]…[ELSE<语句块n>]ENDIF2.创建存储过程和存储函数(5)流程控制语句的使用示例8-5:创建一个存储过程up_scoreStateInfo,通过一个给定的学号和课程号,查询出该学生指定课程的成绩,如果成绩合格,则返回1;否则返回0。2.创建存储过程和存储函数(5)流程控制语句的使用CASE语句CASE<表达式名称>WHEN<表达式值1>THEN<结果1>[WHEN<表达式值2>THEN<结果2>]…[ELSE<结果
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年餐饮外卖供应链技术创新报告
- 2026年春节期间调休安排
- 2026年口腔黏膜病专科门诊建设构想
- 2026年年终述职述廉报告
- 2026年中班国庆节活动计划及目标
- 2026年护士长年终述职报告
- 2026年幼儿教师年终述职
- 2026年生产部门下半年工作计划
- 2026年物业工作下半年工作计划
- 2026年法律合作冷链运输协议
- 水利水电工程全过程工程咨询服务规程
- 物业电梯安全管理制度
- 智慧方案河套灌区数字孪生灌区建设方案
- 制程检验基础知识
- 商业银行巡视巡察心得体会
- 粤语入门教学课件
- 【历史】中考历史常见史料信息转化为答题术语
- GB/T 21649.2-2025粒度分析图像分析法第2部分:动态图像分析法
- (高清版)DB42∕T 1955-2023 《电动自行车停放充(换)电场所消防安全管理规范》
- DB11∕T 512-2024 建筑装饰工程石材应用技术规程
- 新生儿心律失常诊疗与管理体系
评论
0/150
提交评论