Mysql数据库技术Mysql数据库技术应用(微课版)课件 项目4 数据操作_第1页
Mysql数据库技术Mysql数据库技术应用(微课版)课件 项目4 数据操作_第2页
Mysql数据库技术Mysql数据库技术应用(微课版)课件 项目4 数据操作_第3页
Mysql数据库技术Mysql数据库技术应用(微课版)课件 项目4 数据操作_第4页
Mysql数据库技术Mysql数据库技术应用(微课版)课件 项目4 数据操作_第5页
已阅读5页,还剩30页未读, 继续免费阅读

下载本文档

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

文档简介

项目4数据操作教材编写组任务1MySQL运算符和表达式一、

算术运算符和算术表达式运算符描述+加法运算-减法运算*乘法运算/(DIV)除法运算,返回商%(MOD)求余运算,返回余数在MySQL中,灵活地使用算术运算符,是衡量MySQL用户水平高低的标准之一。MySQL支持的算术运算符见表4-1。表4-1算术运算符任务1

MySQL运算符和表达式算术运算符及使用示例在对数值进行除法和求余运算时,除数不能为0,如果为0,那么MySQL计算的结果将返回null。二、比较运算符和关系表达式任务1MySQL运算符和表达式运算符描述=等于<=>安全等于<>/(!=)不等于<=小于等于>=大于等于>

大于isnull字段是否为nullisnotnull字段是否不为nullbetween…and…是否在某个闭区间,适用于数值型、日期时间型等[not]in是否在/不在集合中like匹配…格式,通常和通配符“%”和“_”配合使用“%”表示0个或任意个字符,“_”表示单个字符表4-2常用比较运算符比较运算符是查询数据时最常用的一类运算符。一个比较运算符的结果总是1、0或null。select语句中的条件语句经常要使用比较运算符,通过这些比较运算符,来查询满足指定条件的记录。MySQL中的常用比较运算符见表4-2。比较运算符使用示例任务1MySQL运算符和表达式任务1MySQL运算符和表达式三、

逻辑运算符和逻辑表达式运算符描述非(NOT)单目运算符。运算规则:真为假,假为真与(AND)双目运算符。运算规则:全真为真,有假即假或(OR)双目运算符。运算规则:全假为假,有真即真表4-3逻辑运算符任务1MySQL运算符和表达式逻辑运算符使用示例任务1MySQL运算符和表达式四、

运算符优先级优先级运算符1()2*、/、%3+、-4比较运算符5NOT6AND7OR表4-4运算符优先级当一个复杂的表达式有多个运算符时,运算符优先级决定执行运算的先后次序。执行顺序可能对结果值有明显的影响。运算符优先级见表4-4。在较低级别的运算符之前先对较高级别的运算符进行求值。任务2MySQL内置函数一、

数学函数表4-5部分常用的数学函数函数功能ABS(x)返回x的绝对值CEIL(x)/CEILING(x)返回大于或等于x的最小整数,即向上取整FLOOR(x)返回小于或等于x的最大整数,即向下取整GREATEST(expr1,expr2,expr3,……)返回列表中的最大值LEAST(exprl,expr2,expr3,……)返回列表中的最小值POWER(x,y)返回x的y次方SQRT(x)返回x的算术平方根RAND()返回0到1的随机float数ROUND(x)返回离x最近的整数ROUND(x,y)返回离x最近的值,保留小数位数y位TRUNCATE(x,y)对数值x进行截取,保留小数点后y位数字数学函数的使用示例任务2MySQL内置函数truncate()和round()的区别在于truncate()仅仅是截断,而不进行四舍五入。二、

日期时间函数表4-6MySQL中常用的日期与时间函数任务2MySQL内置函数函数功能NOW()以YYYY-MM-DDHH:MM:SS格式返回当前的日期时间CURRENT_TIMESTAMP()以YYYY-MM-DDHH:MM:SS格式返回当前的日期时间CURDATE()/CURRENT_DATE()以YYYY-MM-DD格式返回当前日期CURTIME()/CURRENT_TIME()以HH:MM:SS格式返回当前时间ADDDATE(d,n)计算起始日期d加上n天的日期ADDT1ME(t,n)时间t加上n秒的时间DATEDIFF(dl,d2)计算日期d1-d2之间相隔的天数(d1>d2)DATE_ADD(d,INTERVALexprtype)在日期上加指定的时间间隔,type可以是year、month、day、week、hour等。如DATE_ADD(d1,INTERVAL1year)就是计算对日期d1向后推算1年后的日期DATE_SUB(date,INTERVALexprtype)在日期上减去指定的时间间隔,type含义同DATE_ADD()YEAR(d)返回日期d的年份MONTH(d)返回日期d的月份MONTHNAME(d)以字符串格式返回日期d的月份DAY(d)返回日期d的日期DAYNAME(d)返回日期d是星期几,如MondayDAYOFMONTH(d)计算日期d是本月的第几天DAYOFWEEK(d)返回日期d是星期几,1星期日,2星期一,以此类推DAYOFYEAR(d)计算日期d是本年的第几天表4-6MySQL中常用的日期与时间函数1.获取日期和时间任务2MySQL内置函数执行curdate()、curtime()和now()函数,具体SQL语句如下selectcurdate(),curtime(),now();执行上述语句,其输出结果如下。任务2MySQL内置函数2.操作指定日期可以对指定的日期进行操作,如获取日期所对应的年份、月份、星期几、当前日期是本年的第几天等。分别获得当前日期,当前日期的月份,当前日期是星期几、是本年的第几天、本月的第几天、与0000年1月1日之间间隔的天数、是第几季度,具体SQL语句如下selectcurdate()当前日期,monthname(curdate())月份,dayname(curdate())星期几,dayofyear(curdate())本年的第几天,dayofmonth(curdate())本月的第几天,to_days(curdate())间隔的天数,quarter(curdate())第几季度;任务2MySQL内置函数3.日期间隔、时间间隔函数日期间隔函数to_days(x)函数用于计算日期x距离0000年1月1日的天数;from_days(x)函数用于计算从0000年1月1日开始x天后的日期;datediff(x1,x2)函数计算日期d1与d2之间相隔的天数。adddate(x,n)函数返回起始日期x加上n天的日期;subdate(x,n)函数返回起始日期x减去n天的日期。任务2MySQL内置函数例:执行datediff(x1,x2)、adddate(x,n)函数,具体SQL语句如下。select

datediff(‘2024-5-12’,’2023-10-25’),adddate(‘2024-5-12’,

20);练练:selectcurdate(),

to_days(curdate(),

from_days(600000),subdate(curdate(),365);任务2MySQL内置函数三、

字符串函数表4-7MySQL中常用的字符串函数及其功能函数功能LENGTH(s)返回字符串占用的字节数CHAR_LENGTH(s)返回字符串s的字符个数REVERSE(str)反转字符串LOCATE(sl,s)从字符串s中获取s1第1个字符的开始位置,从1开始计数CONCAT(sl,s2,…)字符串s1,s2等多个字符申合并为一个字符串REPEAT(str,n)返回字符串str重复n次的结果REPLACE(str,s1,s2)用字符串s2替换字符串str中的字符串s1LEFT(str,n)返回字符串str最左边的n个字符RIGHT(str,n)返回字符串str最右边的n个字符SUMSTRING(str,m,n)返回字符串str从左边第m个字符开始的n个字符LOWER(str)将字符串str的所有字母变成小写字母UPPER(str)将字符串str中的字母全部转换为大写STRCMP(s1,s2)比较字符串s1和s2,相等返回0,若str1<str2返回-1,否则返回1;不区分大小写任务2MySQL内置函数1、字符串操作函数任务2MySQL内置函数2、字符串比较函数strcmp(str1,str2)函数用来比较两个字符串str1和str2。selectstrcmp('ABCD',‘ABBC'

),strcmp('ABCD','adcd'),strcmp('AB'

,ba'

);任务2MySQL内置函数3、子字符串操作函数substring(str,start,length)函数从字符串str的第start个位置开始获取长度为length的字符串。任务3插入表数据一、

插入单条记录1.插入全部字段值语法格式:INSERTINTO表名[(字段名列表)]VALUES(字段值列表)说明:(字段名列表)可以省略,VALUES子句中的字段值必须和各字段名一一对应。字段值类型要与对应字段的数据类型一致。若字段为字符串类型和日期类型,插入的字段值必须要用英文半角单引号或双引号括起来。如果某个字段值为空,其值必须设置为null或NULL,否则会出错。命令中所有符号均为英文半角符号。要遵守表的相关约束输入数据,如主键约束、检查约束、外键约束等。尤其当两表之间存在主外键约束关系时,必须要先输入主表内容,再输入从表内容。如class表和student表,要先输入主键所在表class的内容,然后才能输入外键所在表student的内容。例1:采用保留字段名向数据库dbschool中的班级表class插入第1条记录的全部内容,采用省略字段名方式插入第2-5条记录的全部内容。任务3插入表数据usedbschoolinsertintoclass(classid,classname,department)values('211101','21大数据与会计1班','会计学院');insertintoclassvalues('221101','22大数据与会计1班','会计学院');insertintoclassvalues('211201','21会计信息管理1班','会计学院');insertintoclassvalues('221301','22大数据与财管1班','会计学院');insertintoclassvalues('221302','22大数据与财管2班','会计学院');练练:向course表中插入前11条记录的全部内容2.插入部分字段内容语法格式:INSERTINTO表名(字段名列表)VALUES(字段值列表)或者INSERTINTO表名SET字段名1=值1,字段名1=值2,…说明:字段值与字段名要一一对应。任务3插入表数据例2:向student表插入姓名为“吴鑫”和“孙月茹”2条记录的内容,民族字段nation由默认值自动填入。任务3插入表数据usedbschoolinsertintostudent(sno,sname,gender,birthday,subject,classid)values('22320401','吴鑫','男','2004-2-2','空中乘务','223204');insertintostudent(sno,sname,gender,birthday,subject,classid)values('22420101','孙月茹','女','2004-6-29','金融科技应用','224201');可以使用“select*fromstudent”查询结果,该命令的详细用法在项目5中学习。任务3插入表数据例3:采用插入部分字段内容的两种方法向course表插入课程名为“数据库基础”、“平面设计”和“Python数据分析”3门课程的内容。usedbschoolinsertintocoursesetcno=‘21004’,cname=‘数据库基础’;insertintocourse(cno,cname,period,credit)values(‘21005’,’’平面设计’,64,4);insertintocourse(cno,cname,period,credit)values(‘21006’,’’Python数据分析’,64,4);思考:采用合适的方法向course表中插入剩余的所有记录任务3插入表数据二、

同时插入多条记录内容例4:不省略表字段名,使用一条INSERT命令向study表中插入前6条记录。usedbschoolinsertintostudy(sno,cno,score)values(‘21110101’,’11003’,80),(‘21110101’,’11004’,66),(‘21110102’,’11003’,52),(‘21110102’,’11004’,85),(‘21120101’,’11003’,73),(‘21120101’,’21004’,88);任务3插入表数据例5:省略表字段名,使用一条INSERT命令向study表中插入6条记录。usedbschoolinsertintostudy(sno,cno,score)values(‘21211101’,’21002’,62),(‘21211101’,’11004’,77),(‘21211101’,’11003’,82),(‘21211001’,’11004’,78),(‘21220101’,’11003’,72),(‘21220101’,’21004’,71);任务4修改表数据一、单表数据修改语法格式:UPDATE表名SET字段名1=表达式1[,字段名2=表达式2,…][WHERE条件表达式]说明:SET短语是对指定的字段按满足WHERE子句中的条件表达式进行修改,可以同时对多个字段的值进行修改,它们之间用英文半角逗号分隔。省略WHERE子句时,修改表中所有记录的指定字段值。表达式可以是常量、变量、函数或表达式。更新后的数据不能违背原表的相关约束条件。一般情况下,不建议修改主键的值,特别是被从表引用的主键值。任务4修改表数据1.修改表中的全部数据例1:对student表进行复制,副本表名为s。将s表中所有学生的民族字段的内容在原来的数据后加上“族”字。复制student表,得到副本表s。createtablesasselect*fromstudent;对s表中所有学生的民族字段值进行修改。updatessetnation=concat(nation,'族');任务4修改表数据2.修改表中的部分数据例2:备份course表为c;在c表中,将第1学期开设课程的课时增加4。复制course表,得到副本表c。createtablecasselect*fromcourse;修改前,查看s表第1学期开设课程的课时。select*fromcwhereterm='1';使用where子句,限定只修改第1学期开设课程的课时。updatecsetperiod=period+4whereterm='1';任务4修改表数据二、

多表数据修改例3:备份study表为cj;将s表中的学生吴鑫的专业由原来的“空中乘务”调整为“数字媒体”,学号改为22250302,并自动修改cj表中的对应学号。将第1学期开设课程的课时增加4。复制study表,得到副本表cj。createtablecjasselect*fromstudy;分别在主表s和从表cj的sno字段上创建主键约束和可以级联更新的外键约束。altertablesaddprimarykey(sno);altertablecjaddforeignkey(sno)referencess(sno)onupdatecascade;修改前,查看s表中吴鑫的学号和专业名。selectsno,subjectfromswheresname='吴鑫';查看cj表中吴鑫的课程成绩。(吴鑫的原学号是22320401)select*fromcjwheresno='22320401';修改s表中吴鑫的专业名和学号,where子句中的学号是吴鑫的原学号。updatessetsubject='数字媒体',sno='22250302'wheresno='22320401';修改后,查看s表中吴鑫的学号和专业名。selectsno,subjectfromswheresname='吴鑫';

任务5删除表数据

一、使用DELETE命令删除单表数据语法格式:DELETEFROM表名[WHERE条件表达式]说明:WHERE子句是可选项,若省略该子句,会删除指定表中所有数据,否则,删除满足WHERE条件的记录行。任务5删除表数据例1:删除cj表中成绩不及格的成绩信息。deletefromcjwherescore<60;例2:删除cj表中的所有成绩信息,并从数据库dbschool中删除cj表。deletefromcj;droptablecj;任务5删除表数据

二、

温馨提示

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

评论

0/150

提交评论