MySQL数据库 课件全套 姜云桥 1.1 MySQL的安装与配置 - 5.2 备份与恢复的应用_第1页
MySQL数据库 课件全套 姜云桥 1.1 MySQL的安装与配置 - 5.2 备份与恢复的应用_第2页
MySQL数据库 课件全套 姜云桥 1.1 MySQL的安装与配置 - 5.2 备份与恢复的应用_第3页
MySQL数据库 课件全套 姜云桥 1.1 MySQL的安装与配置 - 5.2 备份与恢复的应用_第4页
MySQL数据库 课件全套 姜云桥 1.1 MySQL的安装与配置 - 5.2 备份与恢复的应用_第5页
已阅读5页,还剩597页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

任务1.1MySQL的安装与配置子项目1数据库设计开发前期准备任务背景开始做数据库设计开发之前,需要下载、安装并配置MySQL数据库软件,本子项目介绍MySQL的详细安装配置步骤,为下一步工作搭建好工作环境。任务目标1.能安装MySQL数据库软件2.能配置MySQL数据库知识目标1.了解数据库基本知识2.掌握安装MySQL的方法3.掌握配置MySQL的方法4.掌握从本地和远程登录MySQL服务器的方法能力目标任务要求本任务将学习在图形化界面下安装与配置MySQL8.0的基本方法,并掌握启动和停止MySQL8.0服务器的方法,学习从本地和远程登录MySQL8.0服务器的方法。任务必备知识1.1.1MySQL概述MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQLAB公司,目前是Oracle公司的另一个数据库项目。优点:开源,体积小、速度快、总体拥有成本低。MySQLCommunityServer社区版本:MySQLEnterpriseEdition企业版本:任务必备知识想一想更改MySQL的配置方法?1.1.2更改MySQL的配置通过修改my.ini文件进行配置

MySQL默认安装路径“C:\ProgramData\MySQL\MySQLServer8.0\”目录下的my.ini文件如要修改字符集,则在[mysql]下方加入如下的代码。default-character-set=utf8mb4任务必备知识任务必备知识想一想MySQL服务器的启动和关闭两种方法?1.1.3MySQL服务器的启动和关闭两种方法1.操作系统命令启动和停止服务。按下win+R键打开“运行”,在输入框里面输入“cmd”,点击确定进入DOS命令窗口,在命令行输入“netstartMySQL”就启动MySQL服务了,输入“netstopMySQL”则停止MySQL服务。2.图形化方式配置服务的启动类型。如果MySQL服务没有打开,也可以直接打开Windows的服务,启动MySQL服务即可。任务必备知识1.1.3MySQL服务器的启动和关闭两种方法鼠标右键点击任务栏,选择任务管理器,选择服务选项卡,下拉找到MySQL80,鼠标右键点击,可以选择启动或停止,或者选择打开服务,下拉找到MySQL80,鼠标右键点击,选择属性,可以设置启动或停止,同时可以设置启动类型为自动、手动或禁止。任务必备知识任务必备知识想一想连接MySQL本地服务的两种方法?1.1.4连接MySQL本地服务MySQL数据库分为服务器端(Server)和客户端(Client)两部分。只有服务器端的服务开启以后,才可以通过客户端来登录到MySQL数据库。任务必备知识1.1.4连接MySQL本地服务的两种方式1.

MySQL客户端连接MySQL服务器。从“开始”菜单中打开程序MySQLServer8.0,默认以root(管理员)用户进入,输入密码后按<Enter>键,MySQL的提示符如下所示。

MySQL>任务必备知识1.1.4连接MySQL本地服务的两种方式2.DOS命令连接到MySQL服务器。格式:mysql-h主机地址-u用户名-p用户密码。首先打开DOS窗口,然后进入目录bin命令如下:cdc:\ProgramFiles\MySQL\MySQLServer8.0\bin根据系统中MySQL安装位置的不同,前面的例子中使用的路径也不同。然后键入命令mysql–uroot–p密码,如果从本地主机登录服务器,-hlocalhost可以省略,按<Enter>键后提示你输密码后按<Enter>键即可进入到MySQL中了。任务必备知识任务必备知识想一想如何远程访问MySQL服务器?1.1.5远程访问MySQL服务器上述办法是以本地主机连接到本地服务器(localhost或IP地址)。要想要成功连接到远程主机,需要在远程主机上打开MySQL远程访问权限。远程访问MySQL服务器方法?任务必备知识1.1.5连接MySQL本地服务的两种方式1.创建用户,从指定IP登录到MySQL服务器。创建一个新用户DAVID,密码为123456。格式:grant权限on数据库名.表名to用户@登录主机identifiedby“用户密码”。mysql>grantselect,update,insert,deleteon*.*toDAVID@2identifiedby’123456’;任务必备知识2.设置从任何客户端机器登录到MySQL服务器。将host字段的值改为%,就表示在任何客户端机器上能以DAVID用户登录到MySQL服务器,建议在开发时设为%。mysql>grantallprivilegeson*.*toDAVID@’%’identifiedby’123456’;1.1.5连接MySQL本地服务的两种方式任务必备知识3.远程端远程访问。以DAVID用户身份登录MySQL,登录步骤如下:(1)在远程计算机中打开DOS窗口,然后进入MySQL安装目录下的bin目录,默认安装的路径为:

cdc:\ProgramFiles\MySQL\MySQLServer8.0\bin(2)输入命令MySQL–h8-uDAVID–p123456其中-h后为主机名,-u后为用户名,-p后为用户密码。假设8是要登录的MySQL服务器所在主机的IP地址。

1.1.5连接MySQL本地服务的两种方式任务必备知识任务必备知识想一想MySQL服务器的安装与配置步骤?任务实施一、MySQL8.0软件下载1.下载地址官网:2.打开官网,点击DOWNLOADS(下载)然后,点击下方的MySQLCommunity(GPL)Downloads。任务实施一、MySQL8.0软件下载3.点击MySQLCommunityServer(MySQL社区服务器)。4.选择Windows平台下提供的MySQL二进制分发版(.msi安装文件)。任务实施二、MySQL服务器的安装与配置1.MySQL的安装与配置。(1)双击MySQL的安装文件,打开安装向导。进入安装界面后选择Custom自定义安装。安装类型选项如下: DeveloperDefault:开发者默认 Serveronly:只安装服务器端 Clientonly:只安装客户端 Full:安装全部选项 Custom:自定义安装任务实施二、MySQL服务器的安装与配置(2)选择安装产品任务实施二、MySQL服务器的安装与配置(3)点击Execute执行安装(4)将MySQL配置类型选择DevelopmentComputer任务实施二、MySQL服务器的安装与配置(5)选择加密授权方式任务实施二、MySQL服务器的安装与配置(6)这一步是设置MySQL的超级用户密码任务实施二、MySQL服务器的安装与配置(7)设置WindowsService系统服务,设置完毕后点击Next下一步;点击Execute执行设置;安装完成,点击Finish完成。任务实施二、MySQL服务器的安装与配置2.启动测试。(1)MySQL8.0CommandLineClient任务实施二、MySQL服务器的安装与配置(2)DOS命令窗口使用mysql-uroot-p密码。任务实施二、MySQL服务器的安装与配置(3)远程登录,上例中使用的命令加上参数-h服务器ip地址即可。如MySQL–h8-uroot–proot项目实践一、连接MySQL本地服务的两种方式(1)在Windows环境下安装MySQL。(2)从本地登录MySQL服务器。(3)远程登录MySQL服务器。学习活动展示学习产品(学习超市):优化(完善)设计学习产品展示提交点评归纳MySQL服务器的安装与配置步骤更改MySQL的配置MySQL服务器的启动和关闭两种方法连接MySQL本地服务的两种方式远程访问MySQL服务器成绩考核考核项目完成度线上各个考核项目完成情况课堂预习问题回答课堂表现布置作业任务书2.1主讲教师:姜云桥谢谢观看THANKYOU主讲教师:姜云桥任务2.1数据库的创建与数据表的开发子项目2数据库基础开发任务背景学校要建立一个教学管理系统。根据需求分析,要求创建学生、课程、教师和系部等数据表来存储数据。接下来,要建立数据库,设计数据表的结构,并初始化相关表数据。任务目标1.能创建和管理数据库2.能创建和管理表知识目标1.掌握创建数据库方法2.掌握管理数据库的方法3.掌握创建数据表的方法4.掌握管理数据表的方法能力目标任务要求本任务将学习创建和管理数据库、创建和管理表。在任务实施过程中,要特别注意表的规范化,要注意数据类型的正确选择,还要注意数据库和数据表字符集的统一问题。任务必备知识想一想MySQL创建数据库的语句?任务必备知识2.1.1创建与管理数据库使用CREATEDATABASE或CREATESCHEMA命令可以创建数据库。其语法结构如下:create{database|schema}[ifnotexists]db_name[charactersetcharset_name][collatecollation_name]任务必备知识2.1.1创建与管理数据库CREATEDATABASE[IFNOTEXISTS]test1;CREATEDATABASEtest1;【任务2.1.1】创建数据库test1任务必备知识mysql>createdatabasetest2->charactersetgb2312->collategb2312_chinese_ci;2.1.1创建与管理数据库【任务2.1.2】创建数据库test2库,并指定字符集为gb2312任务必备知识(1)DEFAULTCHARACTERSET:指定数据库的默认字符集(Charset),charset_name为字符集名称。COLLATE:指定字符集的校对规则,collation_name为校对规则名称。(2)创建数据库时最好指定字符集。(3)IFNOTEXISTS:如果已存在某个数据库,再来创建一个同名的库,这时会出现错误信息。为避免错误信息,可以在建库前加上这一判断,只有该库目前尚不存在时才执行CREATEDATABASE操作。分析与讨论任务必备知识想一想MySQL中如何查看库?任务必备知识2.1.2查看库用SHOWDATABASES命令查看,输出结果如图所示。任务必备知识mysql>showdatabases;2.1.1创建与管理数据库【任务2.1.3】查看MySQL中存在的所有数据库任务必备知识mysql>showcreatedatabasetest2\G***************************1.row***************************Database:test2CreateDatabase:CREATEDATABASE`test2`/*!40100defaultCHARACTERsetgb2312*//*!80016defaultENCRYPTION='N'*/2.1.1创建与管理数据库【任务2.1.4】查看数据库test2的定义任务必备知识想一想如何选定并使用数据库?任务必备知识2.1.3选定并使用数据库创建完数据库并不表示选定并使用它,必须明确地用命令指定,可通过use命令完成。【任务2.1.5】将当前的数据库切换为test2mysql>Usetest2;任务必备知识想一想如何修改库字符集?任务必备知识2.1.4修改库数据库创建后,如果需要修改数据库的参数,可以使用ALTERDATABASE命令。语法格式如下:alterdatabasedb_namecharactersetcharset_namecollatecollation_name任务必备知识mysql>alterdatabasetest2->charactersetutf8mb4->collateutf8mb4_0900_ai_ci;【任务2.1.6】将test2库修改字符集为utf8mb4,校对规则为utf8mb4_0900_ai_ci2.1.4修改库任务必备知识想一想如何删除数据库?任务必备知识当数据库不再需要时,我们可以使用dropdatabase命令删除。语法格式如下:dropdatabase[ifexists]db_name2.1.5删除库任务必备知识mysql>dropdatabasetest1;删除数据库的时候,如果希望数据库存在则删除,不存在则忽略,需要添加ifexists:mysql>dropdatabaseifexiststest1;【任务2.1.7】删除test1库2.1.5删除库任务必备知识数据库创建之后,数据库是空的,是没有表的,可以用SHOWTABLES命令查看。表决定了数据库的结构,表是存放数据的地方,一个库需要什么表,各数据库表中有什么样的列,是要合理设计的。任务必备知识2.1.6创建数据表创建教师表teacher,结构如表所示【任务2.1.8】创建教师表teacher任务必备知识2.1.6创建数据表mysql>createtableifnotexiststeacher->(->t_no char(6)primarykeycomment'教师编号',->t_name varchar(20) comment'教师姓名',->d_no char(4) comment'院系编号'->);【任务2.1.8】创建教师表teacher任务必备知识(1)char和varchar都用来表示字符串类型,那这两者有何区别,应该如何选择?(2)主键primarykey如何设置?分析与讨论任务必备知识2.1.6创建数据表创建院系表department,结构如表所示【任务2.1.9】创建院系表department任务必备知识2.1.6创建数据表mysql>createtableifnotexistsdepartment->(->d_no char(4)primarykey comment'院系编号',->d_name varchar(20)notnulluniquecomment'院系名称'->);【任务2.1.9】创建院系表department任务必备知识2.1.6创建数据表创建课程表course,结构如表所示【任务2.1.10】创建课程表course任务必备知识2.1.6创建数据表mysql>createtableifnotexistscourse->(->c_no char(4) primarykey comment'课程号',->c_name varchar(20) notnull comment'课程名',->c_periodtinyintunsignednotnull comment'学时',->c_credittinyintunsigned notnull comment'学分',->c_typeenum('必修课','选修课')default'必修课'comment'课程类型'->);【任务2.1.10】创建课程表course任务必备知识2.1.6创建数据表创建表student,结构如表所示【任务2.1.11】创建表student任务必备知识2.1.6创建数据表mysql>createtableifnotexistsstudent->(->s_no char(6) primarykey comment'学号',->s_name varchar(20) notnull comment'姓名',->s_sex enum('男','女')notnulldefault'男' comment'性别',->s_birth date notnull comment'出生日期',->s_address varchar(50) notnull comment'家庭地址',->s_phone char(11) comment'联系电话',->s_photo blob comment'照片',->d_no char(4) comment'系部编号',->foreignkey(d_no)referencesdepartment(d_no)->);【任务2.1.11】创建表student任务必备知识2.1.6创建数据表创建成绩表score,结构如表所示【任务2.1.12】创建表score任务必备知识2.1.6创建数据表mysql>createtableifnotexistsscore->(->s_no char(4) notnull comment'学号',->c_no char(4) notnull comment'课程号',->mark decimal(4,1) comment'成绩',->->primarykey(s_no,c_no),->foreignkey(s_no)referencesstudent(s_no),->foreignkey(c_no)referencescourse(c_no)->);【任务2.1.12】创建表score任务必备知识2.1.6创建数据表创建成绩表teach,结构如表所示【任务2.1.13】创建授课表teach任务必备知识2.1.6创建数据表mysql>createtableifnotexiststeach->(->id intunsignedprimarykeyauto_incrementcomment'标识',->t_nochar(8) NOTnull comment'教师编号',->c_nochar(4) comment'课程编号'->);【任务2.1.13】创建授课表teach任务必备知识想一想如何查看表?表结构?任务必备知识2.1.7查看表mysql>showtables;输出结果如图所示。【任务2.1.14】查询已创建的表创建了数据表后,现在能用SHOWTABLES查询已创建的表的情况。任务必备知识2.1.7查看表mysql>descteacher;【任务2.1.15】查看teacher表的结构任务必备知识2.1.7查看表mysql>showcreatetableteacher\G***************************1.row***************************Table:teacherCreateTable:CREATETABLE`teacher`(`t_no`char(8)NOTnullCOMMENT'教师编号',`t_name`varchar(20)DEFAULTnullCOMMENT'教师姓名',`d_no`char(4)DEFAULTnullCOMMENT'院系编号',PRIMARYKEY(`t_no`))ENGINE=InnoDBDEFAULTCHARset=utf8mb4COLLATE=utf8mb4_0900_ai_ci【任务2.1.16】查看teacher的定义任务必备知识想一想如何修改表?(增加或删减列、重新命名列或表,修改默认字符集)?任务必备知识2.1.8修改表mysql>altertablestudentrenamestudent_new;altertable用于更改原有表的结构,包含重命名、增加、删除、修改等。【任务2.1.17】将表student重名为student_new【任务2.1.18】将student表中的s_birth字段重命名为s_s_birthmysql>altertablestudentrenamecolumns_birthtos_s_birth;任务必备知识2.1.8修改表mysql>altertablestudent->add‘入学日期’datenotnulldefault'2014-9-1'afters_sex;【任务2.1.19】给student表的s_sex列后增加一列“入学日期”,并定义其默认值为'2014-9-1'任务必备知识2.1.8修改表mysql>altertableteachaddforeignkey(t_no)referencesteacher(t_no);【任务2.1.20】为表teach的t_no字段添加外键,其参考表teacher的t_no字段任务必备知识2.1.8修改表mysql>altertablescoreaddcheck(markbetween0and100);【任务2.1.21】为score表中的mark字段添加检查约束(mark大于等于0小于等于100)任务必备知识2.1.8修改表mysql>altertablestudent2dropcolumn‘入学日期’【任务2.1.22】删除student表中的“入学日期”字段任务必备知识2.1.8修改表首先通过showcreatetable命令查看约束名称:mysql>showcreatetablescore\G***************************1.row***************************Table:scoreCreateTable:CREATETABLE`score`(`s_no`char(4)NOTnullCOMMENT'学号',`c_no`char(4)NOTnullCOMMENT'课程号',`mark`decimal(4,1)DEFAULTnullCOMMENT'成绩',PRIMARYKEY(`s_no`,`c_no`),【任务2.1.23】删除score表中的check约束任务必备知识2.1.8修改表KEY`c_no`(`c_no`),CONSTRAINT`score_ibfk_1`FOREIGNKEY(`s_no`)REFERENCES`student`(`s_no`),CONSTRAINT`score_ibfk_2`FOREIGNKEY(`c_no`)REFERENCES`course`(`c_no`),CONSTRAINT`score_chk_1`CHECK((`mark`between0and100)))ENGINE=InnoDBDEFAULTCHARset=utf8mb4COLLATE=utf8mb4_0900_ai_ci查询到约束的名称为score_chk_1,通过该名称删除约束:mysql>altertablescoredropcheckscore_chk_1;【任务2.1.23】删除score表中的check约束任务必备知识2.1.8修改表mysql>altertablestudentmodifys_sexenum('男','女')default'女';【任务2.1.24】修改表student的s_sex列的默认值为女任务必备知识2.1.8修改表mysql>altertablestudent1modifys_nochar(8);【任务2.1.25】修改student表中字段s_no的数据类型为char(8)任务必备知识2.1.9复制表可以通过createtable命令复制表的结构和数据,语法格式:createtable[ifnotexists]tbl_name[likeold_tbl_name|asselect_statement];mysql>createtableteacher_newliketeacher;【任务2.1.26】基于teacher表创建teacher_new表,其结构和teacher表相同任务必备知识mysql>createtableteacher_copyasselect*fromteacher;【任务2.1.27】基于teacher表创建teacher_copy表,其结构和数据与teacher相同2.1.9复制表任务必备知识想一想如何删除表?任务必备知识如果表不合适或不需要了,可以用droptable命令删除已存在的表。droptable[ifexists]表1,表2,...;说明:一次性删除多张表时,表与表之间通过逗号(,)分隔。【任务2.1.28】删除表teacher_new和teacher_copy2.1.10删除表mysql>droptableifexiststeacher_new,teacher_copy;任务实施创建人事管理系统(rsgl)数据库,在这个数据库中设计3张表:department(部门信息)表、employee(员工信息)表、salary(工资)表,表结构如下所示。department(部门信息)表employee(员工信息)表salary任务实施参考jxgl数据库及表的建立操作完成以上操作,写出创建这3张表的SQL语句,在创建完成后,用desc命令查看并检验是否正确。要求撰写实训总结,把完成任务过程中主要操作、命令及关键步骤的截图,遇到的问题与解决方法、未解决或需要进一步探讨的问题、以及任务实践过程中的收获和经验教训的内容写入总结并提交。学习活动展示学习产品(学习超市):展示创建的数据库与表,代码与结果截图优化(完善)设计:参照别人的修改完善优化学习产品展示提交:通过网络上传到mysql作业文件夹点评归纳创建数据库的语句?如何查看库?如何选定并使用数据库?如何删除数据库?*如何创建数据表?参数有那些?如何查看表?表结构?如何修改表?如何删除表?成绩考核考核项目完成度线上各个考核项目完成情况课堂预习问题回答课堂表现布置作业任务书2.2主讲教师:姜云桥谢谢观看THANKYOU主讲教师:姜云桥任务2.2数据的操作子项目2数据库基础开发任务背景学校要建立一个教学管理系统。根据需求分析,建立数据库,数据表,接下来要初始化相关表数据。任务目标1.能管理数据表数据2.能插入数据3.能修改数据4.能删除数据知识目标1.掌握插入INSERTINTO的语法2.了解REPLACEINTO、LOADDATAINFILE的语法3.掌握update...set...命令的语法4.掌握DELETE的语法能力目标任务要求本任务将学习数据表中插入、修改和删除数据。在任务实施过程中,要特别注意操作的语法结构。任务必备知识想一想如何插入数据?任务必备知识2.2.1插入数据插入数据的方法很多,可以通过insertinto、replaceinto语句插入,也可以使用loaddatainfile方式将保存在文本文件中的数据插入到指定的表。一次可以插入一行或插入多行数据。任务必备知识insertintotable_name(col1,col2,...)values(val1,val2,...);2.2.1插入数据一、插入单行数据【任务2.2.1】向student表中插入如下数据任务必备知识mysql> insert intostudent(s_no,s_name,s_sex,s_birth,s_address,s_phone,s_photo,d_no)->values('132001','李平','男','2001-02-01','南京路1号',null,null,'D001');2.2.1插入数据任务必备知识2.2.1插入数据【任务2.2.1】再次用insertinto语句向student表中插入主键相同数据mysql> insert intostudent(s_no,s_name,s_sex,s_birth,s_address,s_phone,s_photo,d_no)->values('132001','李平','女','2023-02-01','南京路3号',null,null,'D001');ERROR1062(23000):Duplicateentry'132001'forkey'student.PRIMARY'任务必备知识2.2.1插入数据由于student表中已经有132001学生的记录,因此将出现主键冲突错误,如果希望即使插入主键相同的数据也不会报错,则可以使用关键字ignore:mysql> insert ignore intostudent(s_no,s_name,s_sex,s_birth,s_address,s_phone,s_photo,d_no)->values('132001','李平','女','2023-02-01','南京路3号',null,null,'D001')任务必备知识insertintotable_name(col1,col2,...)values(val1,val2,...),(val1,val2,...),...;2.2.1插入数据二、插入多行数据【任务2.2.3】一次性向student表中插入下列2行数据任务必备知识mysql> insert intostudent(s_no,s_name,s_sex,s_birth,s_address,s_phone,s_photo,d_no)->values('132002','叶明','女','2001-05-02','学院路1号',null,null,'D003'),->('132003','张天','男','2000-02-019','文明路6号',null,null,'D001');2.2.1插入数据任务必备知识insertintotable_name(col1,col2,...)selectcol1,col2,...;2.2.1插入数据三、插入查询数据【任务2.2.4】将student表中对应数据插入student_new表中。任务必备知识首先创建student_new表:mysql>createtablestudent_new->(->s_nochar(8)primarykey,->s_namevarchar(20),->s_sexenum('男','女')default'女',->s_birthdatenotnull,->d_nochar(4)->);将student表中对应字段的数据插入student_new表:mysql>insertintostudent_new(s_no,s_name,s_sex,s_birth,d_no)->selects_no,s_name,s_sex,s_birth,d_nofromstudent;2.2.1插入数据任务必备知识当插入主键相同的记录时默认会报错,插入失败,而有时我们希望当插入的数据违反主键约束时,执行更新操作替换原表中的数据,此时可通过ONDUPLICATEKEYupdate或REPLACE语句实现。2.2.1插入数据四、插入重复数据.insert…onduplicatekeyupdateinsertintotable_name(col1,col2,...)values(val1,val2,...)onduplicatekeyupdateassignment_list;任务必备知识2.2.1插入数据【任务2.2.5】向student表中插入如下数据,若数据存在,更新s_birth为’2023-03-02’mysql> insert intostudent(s_no,s_name,s_sex,s_birth,s_address,s_phone,s_photo,d_no)->values('122001','张群','男','2000-02-01','文明路8号',null,null,'D001')->onduplicatekeyupdate->s_birth='2023-03-02'任务必备知识2.2.1插入数据【任务2.2.6】向student表中插入如下数据若数据不存在,直接插入,若存在,更新为待插入的数据mysql> replace intostudent(s_no,s_name,s_sex,s_birth,s_address,s_phone,s_photo,d_no)->values('122001','张群','男','1991-02-01','文明路13号',null,null,'D002');任务必备知识MySQL还支持图片的存储,图片一般可以以路径的形式来存储,即插入图片采用直接插入图片的存储路径。当然,也可以直接插入图片本身,只要用LOAD_FILE()函数即可。2.2.1插入数据五、插入图片数据122110,程明,男,1991-02-01,D001,北京路123号,02066635425,picture.jpg其中,照片路径为“D:\IMAGE\picture.jpg”。使用如下语句。

mysql>insertintostudentvalues('122110','程明','男','1991-02-01','D001','北京路123号','02066635425','D:\IMAGE\picture.jpg');【任务2.2.7】向student表中插入一行数据任务必备知识想一想如何修改数据?任务必备知识用update...set...命令对表中的数据进行修改。可以修改一个表的数据,也可以修改多个表的数据。2.2.2修改数据updatetbl_namesetcol1=val1,col2=val2,...[wherewhere_condition][orderby...][limitrow_count]一、单表更新任务必备知识2.2.2修改数据mysql>updatecoursesetc_type='专业基础课'wherec_no='A002';【任务2.2.8】将课程A002的类型修改为专业基础课程任务必备知识2.2.2修改数据updatetable_referencessetcol1=val1,col2=val2,...[wherewhere_condition]二、多表更新说明:1)更新多个表中的数据,意味着SET涉及的字段分属不同的表。2)多表更新不支持orderby和limit子句。3)多表更新中多个字段的赋值执行顺序是不确定的。任务必备知识2.2.2修改数据mysql>updatestudentstjoinscoresconst.s_no=sc.s_no->joincoursecsoncs.c_no=sc.c_no->setst.s_s_address='人民路21号',sc.mark=85->wherest.s_name='聂凤卿'andcs.c_name='MYSQL';【任务2.2.9】同时更新“聂凤卿“的地址为”人民路21号“,MYSQL课程的成绩为85任务必备知识

SET子句:根据WHERE子句中指定的条件,对符合条件的数据行进行修改。若语句中不设定WHERE子句,则更新所有行。分析与讨论任务必备知识想一想如何删除数据?任务必备知识2.2.3删除数据deletefromtbl_name[wherewhere_condition][orderby...][limitrow_count]一、单表删除说明:1)只删除满足where_condition条件的数据行,没有指定条件将会删除表中的全部数据。2)如果指定了orderby和limit子句,按照顺序删除row_count行数据。3)数据删除后将不能恢复,因此,在执行删除之前对数据做好备份。任务必备知识mysql>deletefromstudentwheres_sex='女';【任务2.2.10】删除女生记录2.2.3删除数据mysql>deletefromscorewherec_no='B001'andmark<60;【任务2.2.11】删除B001课程不及格的成绩记录任务必备知识mysql>deletefromscoreorderbymarklimit3;【任务2.2.12】删除score表中分数最低的3行记录2.2.3删除数据mysql>deletefromstudent_new;或者mysql>truncatestudent_new;【任务2.2.13】清空student_new表中的数据任务必备知识2.2.3删除数据deletetbl_name1,tbl_name2,...fromtable_references[wherewhere_condition]或者deletefromtbl_name1,tbl_name2,...usingtable_references[wherewhere_condition]一、多表删除任务必备知识mysql>deletest,sc->fromstudentstjoinscoresconst.s_no=sc.s_no->wherest.s_name='聂凤卿';或者mysql>deletefromst,sc->usingstudentstjoinscoresconst.s_no=sc.s_no->wherest.s_name='聂凤卿';【任务2.2.14】同时删除“聂凤卿”的信息,以及相应的课程成绩2.2.3删除数据任务必备知识(1)QUICK修饰符:可以加快部分种类的删除操作的速度。(2)FROM子句:用于指定从何处删除数据。(3)WHERE子句指定的删除条件。如果省略WHERE子句则删除该表的所有行。(4)ORDERBY子句:各行按照子句中指定的顺序进行删除,此子句只在与LIMIT联用时才起作用。ORDERBY子句和LIMIT子句的具体定义将在任务10中介绍。

分析与讨论任务必备知识(5)LIMIT子句:用于告知服务器在控制命令被返回到客户端前被删除的行的最大值。(6)数据删除后将不能恢复,因此,在执行删除之前一定要对数据做好备份。分析与讨论任务实施一、在人事管理数据库rsgl中进行如下操作:1.用insertinto语句向department表插入所有数据。数据如下:('A001','办公室'),('A002','人事处'),('A003','宣传部'),('A004','教务处'),('A005','科技处'),('A006','后勤处'),('B001','信息学院'),('B002','艺术学院'),('B003','外语学院'),('B004','金融学院'),('B005','建筑学院’);2.以文本文件的方式将数据装入到数据表employee,文件放在“D:\MYSQL\employee.txt”内。(可选命令可参考数据恢复)任务实施3.用insertinto语句一次性向salary表插入所有数据。数据如下:('100100',2000.00,4000.00,2266.00,1320.00,300.00,100.00),('100101',3000.00,5000.00,2278.00,1460.00,450.00,30.00),('100102',2500.00,4500.00,2500.00,1300.00,500.00,52.00),('100103',2600.00,4500.00,2300.00,1350.00,600.00,60.00),('100104',2400.00,4600.00,2500.00,1200.00,630.00,50.00),('100105',2600.00,3500.00,2300.00,1000.00,650.00,60.00),('100106',2400.00,4300.00,2600.00,1200.00,300.00,40.00),('100330',3500.00,5000.00,2300.00,1500.00,300.00,80.00),('100331',4500.00,5600.00,2500.00,1800.00,687.00,60.00),('100332',1800.00,3600.00,1500.00,800.00,300.00,60.00);任务实施二、创建test数据库,创建一个t_student表,设计表结构满足如下操作,并写出操作语句1.向t_student表插入数据:('100101','李明','男','2001','团员','足球'),('100102','张君','女','2002','群众','电影')2.查看数据库系统中已经存在的数据库,确保test数据库已经存在3.复制t_student表的结构和数据,成为附表t_student1。4.删除t_student表数据。5.删除test数据库。6.再次查看数据库系统中已经存在的数据库,确保test数据库已经删除任务实施要求撰写实训总结,把完成任务过程中主要操作、命令及关键步骤的截图,遇到的问题与解决方法、未解决或需要进一步探讨的问题、以及任务实践过程中的收获和经验教训的内容写入总结并提交。学习活动展示学习产品(学习超市):优化(完善)设计学习产品展示提交点评归纳如何插入数据?如何修改数据?如何删除数据?成绩考核考核项目完成度线上各个考核项目完成情况课堂预习问题回答课堂表现布置作业任务书3.1主讲教师:姜云桥谢谢观看THANKYOU主讲教师:姜云桥任务3.1数据表的基本查询子项目3数据库的查询开发任务背景查询和统计数据是数据库的基本功能。在数据库实际操作中,经常遇到类似的查询,例如,查询成绩在80~90之间的学生;查询姓李的学生。任务目标1.能理解查询的含义。2.能进行各种目标的查询。3.能使用多种过滤方式完成指定查询知识目标1.理解查询的基本构成。2.熟练掌握select子句的基本使用。3.熟练掌握where子句的各种过滤方式能力目标任务要求本任务从简单的单表查询开始,学习使用查询的基本语法,重点学习select和where子句的使用。其中,select子句部分,完成单字段、多字段、所有字段、别名以及去重等查询,where子句部分,完成简单查询、复合条件查询、范围查询、模糊查询以及null判断等。任务必备知识想一想SELECT语句有哪些子句?任务必备知识3.1.1认识select子句SELECT语句可以从一个或多个表中选取特定的行和列,结果通常是生成一个临时表。其基本语法格式如下。试举出曾用过的select语句?selectcol1,col2,...fromtbl_name;一、查询指定字段任务必备知识【任务3.1.1】查询学生表student,获取所有学生的姓名和学号3.1.1认识select子句mysql>selects_no,s_namefromstudent;任务必备知识3.1.1认识select子句二、查询所有字段【任务3.1.2】查询学生表student,获取所有学生的基本信息。mysql>selects_no,s_name,s_sex,s_birth,d_no,s_address,s_phone,s_photo->fromstudent;任务必备知识3.1.1认识select子句利用通配符星号’*’可实现相同的效果:mysql>select*fromstudent;任务必备知识3.1.1认识select子句三、使用distinct消除重复行【任务3.1.3】查询学生所在系部,去掉重复值。SQL语句如下。mysql>selectdistinctd_nofromstudent;任务必备知识3.1.1认识select子句四、使用as定义查询的列别名【任务3.1.4】查询学生的s_name字段和s_no字段,将其重命名为“姓名”列和”学号“列。mysql>selects_nameas'姓名',s_noas'学号'->fromstudent;任务必备知识想一想Where子句功能?任务必备知识3.1.2认识where子句很多时候,我们并不需要查看全部数据,更多的则是满足指定条件的数据;此时,我们就需要利用where子句来实现数据的过滤。where子句指定查询的条件,限制返回的数据行。其语法格式如下:selectcol1,col2,...fromtable_namewherewhere_condition任务必备知识一、简单条件【任务3.1.5】在学生表student中查询学生“李军”的地址和电话。mysql>selects_name,s_address,s_phone->fromstudent->wheres_name='李军';3.1.2认识where子句任务必备知识除了等值(=)判断,还包括一些其他常用的比较运算符,如下表格所示。3.1.2认识where子句任务必备知识一、简单条件【任务3.1.6】在学生表student中,查询“2001-06-01”之后出生的学生的姓名。mysql>selects_name,s_birth->fromstudent->wheres_birth>'2001-06-01';3.1.2认识where子句任务必备知识何时使用引号?引号用来限定字符串,如果字符串类型的列与值进行比较,则值需要用引号限定;如果数值类型的列与值进行比较,则值不需要用引号限定。分析与讨论任务必备知识二、复合条件3.1.2认识where子句除了使用单个查询条件之外,MySQL还可以利用逻辑运算符将多个查询条件进行组合。日常使用的逻辑运算符主要包含三种:任务必备知识【任务3.1.7】在学生表student中,查询“2001-06-01”之后出生的女生的姓名。mysql>selects_no,s_name,s_sex,s_birth,d_no,s_address,s_phone->fromstudent->wheres_birth>'2001-06-01'ands_sex='女';3.1.2认识where子句任务必备知识【任务3.1.8】通过学生表student,查询“2001-06-01”之后出生的或者性别为女的学生的基本信息。mysql>selects_no,s_name,s_sex,s_birth,d_no,s_address,s_phone->fromstudent->wheres_birth>'2001-06-01'ors_sex='女';3.1.2认识where子句任务必备知识3.1.2认识where子句注意:OR,逻辑或运算符,满足其中一个条件即可。not运算符可参考空值判断部分。任务必备知识【任务3.1.9】通过学生表student,查询出生日期在2001年5月出生的学生。mysql>selects_no,s_name,s_sex,s_birth,d_no,s_address,s_phone->fromstudent->wheres_birthbetween'2001-05-01'and'2001-05-31';3.1.2认识where子句三、范围条件任务必备知识【任务3.1.10】通过学生表student,查询院系编号为D002或D003或D005的学生。mysql>selects_no,s_name,s_sex,s_birth,d_no,s_address,s_phone->fromstudent->whered_noin('d002','d003','d005');3.1.2认识where子句任务必备知识3.1.2认识where子句注意:in运算符可以用于判断数据是否位于某个列表之中,只要满足in列表中的任意值即可。任务必备知识【任务3.1.11】通过学生表student,查询姓张的学生信息。mysql>selects_no,s_name,s_sex,s_birth,d_no,s_address,s_phone->fromstudent->wheres_namelike'张%';3.1.2认识where子句四、模糊匹配+--------+-----------+-------+------------+------+-----------------+---------+|s_no|s_name|s_sex|s_birth|d_no|s_address|s_phone|+--------+-----------+-------+------------+------+-----------------+---------+|122001|张群|男|2000-02-01|D001|上海路8号|||122002|张平|男|2001-03-02|D001|人民路9号|||122007|张早|男|2001-03-04|D003|人民路67号|NULL||123006|张东妹|女|2001-06-07|D005|澄明路223号||+--------+-----------+-------+------------+------+-----------------+---------+任务必备知识【任务3.1.12】通过学生表student,查询姓名中包含“光”的学生信息。mysql>selects_no,s_name,s_sex,s_birth,d_no,s_address,s_phone->fromstudent->wheres_nameLIKE'%光%';3.1.2认识where子句任务必备知识【任务3.1.13】通过学生表student,查询姓名是两位字符的学生信息。mysql>selects_no,s_name,s_sex,s_birth,d_no,s_address,s_phone->fromstudent->wheres_namelike'__';3.1.2认识where子句任务必备知识3.1.2认识where子句注意:上述示例LIKE后面是两个下划线,下划线(_)匹配一个任意字符。任务必备知识【任务3.1.14】通过学生表student,查询电话不为空的学生信息。mysql>selects_no,s_name,s_sex,s_birth,d_no,s_address,s_phone->fromstudent->wheres_phoneisnotnull;3.1.2认识where子句五、null判断任务必备知识3.1.2认识where子句任务必备知识3.1.2认识where子句null并不是一个值,它没有数据类型,因此不能将比较运算符作用于null,任何与null的比较结果都不是true或者false,而是null。这是与编程语言如Java不同的地方,Java是二元逻辑,或者为true,或者为false,没有其他状态,而SQL却是三元逻辑,除了true和false之后,还有第三种状态null。任务实施在人事管理数据库rsgl中进行如下操作:1.查询员工的政治背景有哪几类,结果显示如下:任务实施2.查询女性员工的姓名和学历,结果显示如下:任务实施3.查询“王”姓员工的姓名、性别、职称和学历,结果显示如下:任务实施4.查询90年代出生或职称为教授的员工的姓名、职称和出生日期,结果显示如下:任务实施5.查询名字中包含“明”字的员工的姓名和出生日期,结果显示如下:任务实施6.查询姓名为两个字的员工的姓名和学历,结果显示如下:任务实施7.查询部门编号为A001、A002、B001对应的部门名称,结果显示如下:任务实施8.查询职称不为教授、副教授的员工的姓名和职称,结果显示如下:任务实施要求撰写实训总结,把完成任务过程中主要操作、命令及关键步骤的截图,遇到的问题与解决方法、未解决或需要进一步探讨的问题、以及任务实践过程中的收获和经验教训的内容写入总结并提交。学习活动展示学习产品(学习超市):优化(完善)设计学习产品展示提交点评归纳查询的基本概念和组成SQL查询语法的书写顺序,并说明原因如何完成查询目标的设置总结各种基本的数据过滤设置成绩考核考核项目完成度线上各个考核项目完成情况课堂预习问题回答课堂表现布置作业任务书3.2主讲教师:姜云桥谢谢观看THANKYOU主讲教师:姜云桥任务3.2数据表的高级查询子项目3数据库的查询开发任务背景查询和统计数据是数据库的基本功能。在数据库实际操作中,经常遇到类似的查询,例如,按照要求完成各种分组的设置、过滤;返回指定数量、位置的数据。任务目标1.能按照要求完成各种分组的设置。能按照要求完成分组的过滤。能按照指定要求完成排序。能返回指定数量、位置的数据。

知识目标1.掌握groupby的使用。掌握having的使用,理解having与where的区别。掌握orderby的各种排序方式。掌握limit的使用方式。能力目标任务要求本任务基于学生表student和成绩表score,完成数据的分组,包括按照单字段和多字段进行分组;按照指定方式,完成分组的过滤;完成数据的排序,按照指定字段指定方式;完成限制返回指定位置、指定数量的记录的查询。任务必备知识想一想GROUPBY子句的功能?任务必备知识3.2.1认识groupby子句groupby子句主要根据字段对行分组,在分组之后会把每个分组聚合成一行数据,因此需要调用聚合函数完成该操作,常用的聚合函数如表所示。groupby子句的语法格式如下。selectcol1,col2,... fromtable_name wherewhere_condition groupbycol1,col2 havingwhere_condition任务必备知识3.2.1认识groupby子句(1)groupby子句后通常包含列名或表达式。也可以用正整数表示列,如指定3,则表示按第3列分组,另外需要注意的一点,mysql8.0对于groupby字段不再支持隐式排序,如需要排序,必须显式加上orderby子句。(2)asc为升序,desc降序,系统默认为asc,将按分组的第一列升序排序输出结果。(3)可以指定多列分组。若指定多列分组,则先按指定的第一列分组再对指定的第二列分组,以此类推。(4)使用带rollup操作符的groupby子句:指定在结果集内不仅包含由groupby提供的正常行,还包含汇总行。任务必备知识3.2.1认识groupby子句任务必备知识【任务3.2.1】按系统计各系的学生人数,SQL语句如下mysql>selectd_no,count(*)as人数

->fromstudent ->groupbyd_no;3.2.1认识groupby子句任务必备知识count()参数没有指定字段时,如用星号(*),表示统计的时记录数,即使某个字段为null也会被统计在内;而指定字段的情况下,如count(field),如果field为null,此时则不会被统计在内。3.2.1认识groupby子句

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论