MySQL数据库应用教程 课件 第5、6章 表记录的查询、索引_第1页
MySQL数据库应用教程 课件 第5、6章 表记录的查询、索引_第2页
MySQL数据库应用教程 课件 第5、6章 表记录的查询、索引_第3页
MySQL数据库应用教程 课件 第5、6章 表记录的查询、索引_第4页
MySQL数据库应用教程 课件 第5、6章 表记录的查询、索引_第5页
已阅读5页,还剩117页未读 继续免费阅读

下载本文档

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

文档简介

第5章表记录的查询《MySQL数据库应用教程》刘瑞新主编配套资源目录第5章表记录的查询5.1单表记录查询5.2聚合函数查询5.3多表连接查询5.4子查询5.1.1单表查询语句SELECT[ALL|DISTINCT]selection_list1[,selection_list2…]FROMtable_source;5.1单表记录查询【例5-1】在数据库studentinfo中查询学生表student中的所有记录。USEstudentinfo;SELECT*FROMstudent;5.1单表记录查询2.查询指定的列【例5-2】在数据库studentinfo中,查询学生表student中的StudentName、Sex、StudentID和ClassID列。SELECTStudentName,Sex,StudentID,ClassIDFROMstudent;5.1单表记录查询5.1单表记录查询3.查询计算的值【例5-3】在数据库studentinfo中,查询学生表student中的全体学生,显示StudentName、Sex列,以及“年龄:”字符串和年龄。SELECTStudentName,Sex,'年龄:',YEAR(NOW())-YEAR(Birthday)FROMstudent;5.1单表记录查询【例5-4】计算表达式的值。SELECT101+3*50/7,"abc"="ABC",2>=3;5.1单表记录查询3.为列取别名【例5-5】在数据库studentinfo中,查询student表中的全体学生的姓名、性别和年龄,要求对应的列名显示为中文名称。SELECTStudentNameAS'姓名',Sex性别,YEAR(NOW())-YEAR(Birthday)AS年龄

FROMstudent;5.1单表记录查询4.不显示重复记录【例5-6】在数据库studentinfo中,查询student表中的性别。SELECTSexFROMstudent;5.1单表记录查询SELECTDISTINCTSexFROMstudent;5.1单表记录查询SELECTStudentName,SexFROMstudent;5.1单表记录查询5.1.2使用WHERE子句过滤结果集SELECT[ALL|DISTINCT]selection_list1[,selection_list2…]FROMtable_source[WHEREsearch_condition];5.1单表记录查询1.使用关系表达式和逻辑表达式的条件查询关系运算符有<,<=,=,>,>=,<>,!=,!<,!>,<=>。“<>”表示不等于,等价“!=”;“!>”表示不大于,等价“<=”;“!<”表示不小于,等价“>=”。逻辑运算符有ANOT或!,AND或&&,OR或||,XOR。AND和OR连接多个条件。5.1单表记录查询【例5-7】查询selectcourse表中成绩在60到75之间或者成绩为100的学号、课程号。SQL语句和查询结果如下:SELECTStudentID,CourseID,ScoreFROMselectcourseWHEREScore>=60ANDScore<=75ORScore=100;5.1单表记录查询2.使用BETWEEN…AND关键字的范围查询expression[NOT]BETWEENexpressionlANDexpression2“xBETWEEN200AND500”相当于表达式“x>=200ANDx<=500”。5.1单表记录查询【例5-8】对例5-7改用BETWEEN…AND关键字实现查询。SELECTStudentID,CourseID,ScoreFROMselectcourseWHEREScoreBETWEEN60AND75ORScore=100;5.1单表记录查询【例5-9】查询student表中出生日期不在2003-02-01到2003-05-31之间的学生。SELECTStudentName,Sex,BirthdayFROMstudentWHEREBirthdayNOTBETWEEN'2003-02-01'AND'2003-05-31';5.1单表记录查询3.使用IN关键字的集合查询expression[NOT]IN(value1,value2,…)【例5-10】查询student表中地址不在北京、上海、广东、浙江的记录。SELECT*FROMstudentWHEREAddressNOTIN('北京','上海','广东','浙江');5.1单表记录查询4.使用ISNULL关键字查询空值expressionIS[NOT]NULL【例5-11】在course表中,查询填写课程号的记录。SELECT*FROMcourseWHEREPreCourseIDISNOTNULL;5.1单表记录查询5.使用LIKE关键字的字符匹配查询expression[NOT]LIKE'模式字符串'[ESCAPE'换码字符']【例5-12】在course表中,查询课程名CourseName中含有“基础”的课程。SELECT*FROMcourseWHERECourseNameLIKE'%基础%';5.1单表记录查询6.使用正则表达式的查询expression[NOT]REGEXP'正则表达式'5.1单表记录查询SELECT'teacher'REGEXP'er$';5.1单表记录查询(1)匹配指定的字符串【例5-13】在课程表course中,查询课程名称中含有“学”“基础”“法”的课程。SELECT*FROMcourseWHERECourseNameREGEXP'学|基础|法';5.1单表记录查询(2)查询以特定字符或字符串开头的记录【例5-14】在student表中,查询广东、广西、湖南或湖北的学生的信息。SELECT*FROMstudentWHEREAddressREGEXP'^广|湖';5.1单表记录查询(3)用“.”替代字符串中的任意一个字符【例5-15】在student表中,查询姓名中以“李”开头,以“欣”结尾,中间包含一个字的学生信息。SELECT*FROMstudentWHEREStudentNameREGEXP'^李.欣$';5.1单表记录查询5.1.3对查询结果集的处理1.使用ORDERBY子句对查询结果排序ORDERBYexpression1[ASC|DESC][,expression2[ASC|DESC],…]【例5-16】在student表中,按出生日期的先后顺序显示。SELECT*FROMstudentORDERBYBirthdayASC;5.1单表记录查询【例5-17】在selectcourse表中查询成绩大于或等于85分的学生的学号、课程号和成绩,并先按成绩的降序,再按学号的升序排列,列名显示为中文。SELECTStudentIDAS学号,CourseID课程号,Score成绩FROMselectcourseWHEREScore>=85ORDERBYScoreDESC,StudentIDASC;5.1单表记录查询2.限制查询结果的数量LIMITlines[OFFSEToffset]【例5-18】在selectcourse表中,查询课程号CourseID为6开头的成绩,按成绩从高到低降序排序,输出第2至第4条记录的学生,该子句改为LIMIT4OFFSET2。SELECTStudentIDAS学号,CourseIDAS课程号,ScoreAS成绩

FROMselectcourseWHERESUBSTR(CourseID,1,1)='6'ORDERBYScoreDESCLIMIT3OFFSET2;5.1单表记录查询5.2.1聚合函数5.2聚合函数查询1.COUND()函数COUNT(*):返回数据表中记录的行数,包含NULL值的行。COUNT([DISTINCT|ALL]<列名>)返回指定列中的所有非空值的记录行数。5.2聚合函数查询【例5-19】在course表中,查询PreCourseID列的行数,分别查询包含NULL行和不包含NULL的行的行数。SELECTCOUNT(*)AS'行数',COUNT(PreCourseID)FROMcourse;5.2聚合函数查询【例5-20】查询student表中2022级计算机学院的学生的总数。SELECTCOUNT(*)FROMstudentWHERESUBSTRING(StudentID,1,6)='202263';5.2聚合函数查询【例5-21】查询selectcourse表中选修了课程的学生总人数。一名学生可以选修多门课程,在selectcourse表中对应多条记录,为避免重复计算学生人数,在COUNT()函数中使用DISTINCT关键字。SELECTCOUNT(DISTINCTStudentID)FROMselectcourse;5.2聚合函数查询2.SUM()函数和AVG()函数SUM([DISTINCT|ALL]<列名>)返回指定列中的所有非空值的和。AVG([DISTINCT|ALL]<列名>)返回指定列中的所有非空值的平均值。5.2聚合函数查询【例5-22】在selectcourse表中,查询学生的总成绩和平均成绩。SELECTSUM(Score)总分,AVG(Score)平均分,SUM(Score)/COUNT(*)平均分数

FROMselectcourse;5.2聚合函数查询3.MAX()函数和MIN()函数MAX([DISTINCT|ALL]<列名>) MIN([DISTINCT|ALL]<列名>)【例5-23】查询selectcourse表中,求课程编号CourseID为630575的学生最高分、最低分、最高分与最高分之差、平均分。SELECTMAX(Score)最高分,MIN(Score)最低分,MAX(Score)-MIN(Score)分数差,AVG(Score)平均分FROMselectcourseWHERECourseID='630575';5.2聚合函数查询5.2.2分组聚合查询[GROUPBY分组表达式1,分组表达式2,…][HAVING条件表达式][WITHROLLUP](1)按单列分组【例5-24】在学生表student中,按照Sex单列分组,查询学生信息。SELECTSex性别,COUNT(*)人数FROMstudentGROUPBYSex;5.2聚合函数查询【例5-25】在成绩表selectcourse中,统计每位学生的选课门数、最高分、最低分和平均分。SELECTstudentID,count(*)选课门数,MAX(Score)最高分,MIN(Score)最低分,avg(Score)平均分

FROMselectcourseGROUPBYStudentID;5.2聚合函数查询【例5-26】在selectcourse表中,先按照CourseID分组,再按照StudentID分组。SELECTCourseID,StudentID,COUNT(CourseID),AVG(Score)FROMselectcourseGROUPBYCourseID,StudentID;5.2聚合函数查询2.HAVING子句【例5-27】在selectcourse表中,查询平均分80以上的每位学生的选课门数、最高分、最低分和平均分。SELECTStudentID学号,COUNT(*)选课门数,MAX(Score)最高分,MIN(Score)最低分,AVG(Score)平均分

FROMselectcourseWHEREScore>=60GROUPBYStudentIDHAVINGAVG(Score)>=80;5.2聚合函数查询3.GROUPBY子句与WITHROLLUP【例5-28】在selectcourse表中,查询每一门课的平均分数和所有课的平均分数。SELECTCourseID课程号,AVG(Score)每门课程的平均分FROMselectcourseGROUPBYCourseIDWITHROLLUP;5.2聚合函数查询交叉连接内连接外连接连接子句的语法格式如下:FROMtb_name1连接类型tb_name2[连接类型tb_name3[…]][ON连接条件]5.3多表连接查询5.3.1交叉连接SELECT*FROMtb_name1CROSSJOINtb_name2;或SELECT*FROMtb_name1,tb_name2;【例5-29】将班级表class和院系表department进行交叉连接。SELECT*FROMclassCROSSJOINdepartment;5.3多表连接查询5.3多表连接查询5.3.2内连接SELECTselection_list1,selection_list2,…,selection_listnFROMtb_name1INNERJOINtb_name2ON连接条件

[WHERE过滤条件];[表名1.]列名1比较运算符[表名2.]列名2表名[AS]表别名5.3多表连接查询1.等值连接SELECTselection_list1,selection_list2,…,selection_listnFROMtb_name1INNERJOINtb_name2ONtb_name1.column_name1=tb_name2.column_name2[WHERE过滤条件];5.3多表连接查询【例5-30】查询选修课程号为630572的学生的学号、姓名和成绩。本例中要求查询的列分别在student表和selectcourse表中,通过StudentID列使用内连接方式连接两个表,找出选修课程号为630572的行。SELECTstudent.StudentID,StudentName,ScoreFROMstudentINNERJOINselectcourseONstudent.StudentID=selectcourse.StudentIDWHEREselectcourse.CourseID='630572';5.3多表连接查询【例5-31】查询选修了课程名称为“数据结构”的学号、姓名和课程号、课程名、成绩的学生。SELECTstudent.StudentID,StudentName,course.CourseID,CourseName,ScoreFROMstudentINNERJOINcourseINNERJOINselectcourseONstudent.StudentID=selectcourse.StudentIDANDcourse.CourseID=selectcourse.CourseIDWHERECourseName='数据结构';5.3多表连接查询2.不等值连接【例5-32】对student表和selectcourse表做不等值连接,返回的结果集限制在5行以内。SELECT*FROMstudentINNERJOINselectcourseONstudent.StudentID!=selectcourse.StudentID;5.3多表连接查询3.自然连接(NATURALJOIN)SELECTselection_list1,selection_list2,…,selection_listnFROMtb_name1NATURALJOINtb_name2;【例5-33】对student表和selectcourse表做自然连接。SELECT*FROMstudentNATURALJOINselectcourse;5.3多表连接查询SELECTStudentID,StudentName,CourseID,ScoreFROMstudentNATURALJOINselectcourse;5.3多表连接查询SELECTStudentID,StudentName,CourseID,CourseName,ScoreFROMstudentNATURALJOINselectcourseNATURALJOINcourse;5.3多表连接查询4.自连接【例5-34】查询与“算法”这门课学分相同的课程信息。SELECTc1.*FROMcourseASc1JOINcourseASc2ONc1.Credit=c2.CreditWHEREc2.CourseName='算法';5.3多表连接查询SELECTc1.*FROMcourseASc1,courseASc2WHEREc1.Credit=c2.CreditANDc2.CourseName='算法';SELECTc1.*FROMcourseASc1JOINcourseASc2ONc1.Credit=c2.CreditWHEREc2.CourseName='算法'ANDc1.CourseName!='算法';5.3多表连接查询5.3.3外连接SELECTselection_list1,selection_list2,…,selection_listnFROMtb_name1LEFT|RIGHTJOINtb_name2ONtb_name1.column_name1=tb_name2.column_name25.3多表连接查询1.左连接(LEFTJOIN)【例5-35】查询所有学生及其选修课程的情况,包括没有选修课程的学生,要求显示学号、姓名、班号、选修的课程号和成绩,使用左外连接。INSERTINTOstudent(StudentID,StudentName,Sex,Birthday,Address,ClassID)VALUES('202260010321','于得水','男','2003-10-22','山西','2022600103');SELECTa.StudentID,StudentName,ClassID,CourseID,ScoreFROMstudentASaLEFTJOINselectcourseASbONa.StudentID=b.StudentID;5.3多表连接查询5.3多表连接查询2.右连接(RIGHTJOIN)【例5-36】查询所有学生及其选修课程的情况,包括没有选修课程的学生,要求显示学号、姓名、班号、选修的课程号和成绩,使用右外连接。SELECTa.StudentID,StudentName,ClassID,CourseID,ScoreFROMstudentASaRIGHTJOINselectcourseASbONa.StudentID=b.StudentID;5.3多表连接查询5.4.1子查询的执行过程和类型1.子查询的执行过程2.子查询的类型3.子查询中的常用运算4.使用子查询时的注意事项5.4子查询5.4.2选择列表中的子查询【例5-37】利用子查询显示学号为202263050133的学生的平均成绩、考试次数,同时显示学号、姓名等信息。SELECTStudentID,StudentName,(SELECTAVG(Score)FROMselectcourseWHEREStudentID='202263050133')平均成绩,(SELECTCOUNT(StudentID)FROMselectcourseWHEREStudentID='202263050133')考试次数

FROMstudentWHEREStudentID='202263050133';5.4子查询5.4.3子查询生成派生表【例5-38】查询课程号为600131,成绩高于60分的学生的学号、课程号和成绩。SELECTT.StudentID,T.CourseID,T.ScoreFROM(SELECT*FROMselectcourseWHEREScore>60)AST WHERECourseID='600131';5.4子查询5.4.4WHERE子句中的子查询1.子查询与比较运算符组成条件【例5-39】在成绩表selectcourse中,查询低于平均分的学生。SELECTStudentID,CourseID,ScoreFROMselectcourseWHEREScore<(SELECTAVG(Score)FROMselectcourse);SELECTAVG(Score)FROMselectcourse;SELECTStudentID,CourseID,ScoreFROMselectcourseWHEREScore<75.57143;5.4子查询2.使用带IN关键字的子查询【例5-40】查询考试成绩低于60分的学生的学号、姓名等信息。SELECT*FROMstudentWHEREStudentIDIN(SELECTStudentIDFROMselectcourseWHEREScore<60);SELECTStudentIDFROMselectcourseWHEREScore<60;5.4子查询3.使用带EXISTS关键字的子查询【例5-31】如果存在班号“2022600103”的班,则查询该班的所有学生。SELECT*FROMstudentWHEREEXISTS(SELECT*FROMclassWHEREClassID='2022600103')ANDClassID='2022600103';5.4子查询4.使用ANY、SOME或ALL的子查询(1)使用ANY(或SOME)的子查询<表达式>{=|<>|!=|>|>=|<|<=|!>|!<}ANY(子查询)【例5-42】查询男生中比某个女生出生年份晚的学生姓名和出生年份。SELECTDISTINCTYEAR(Birthday)FROMstudentWHERESex='女';5.4子查询SELECTStudentName,YEAR(Birthday)FROMstudentWHERESex='男'ANDYEAR(Birthday)>ANY(SELECTDISTINCTYEAR(Birthday)FROMstudentWHERESex='女');5.4子查询(2)使用ALL的子查询【例5-43】查询男生中比所有女生出生年份晚的学生姓名和出生年份。SELECTStudentName,YEAR(Birthday)FROMstudentWHERESex='男'ANDYEAR(Birthday)>ALL(SELECTDISTINCTYEAR(Birthday)FROMstudentWHERESex='女');5.4子查询(3)ANY或ALL与聚合函数的对应关系5.4子查询【例5-44】查询男生中比某个女生出生年份晚的学生姓名和出生年份。SELECTStudentName,YEAR(Birthday)FROMstudentWHERESex='男'ANDYEAR(Birthday)>(SELECTMIN(YEAR(Birthday))FROMstudentWHERESex='女');5.4子查询5.4.5用子查询插入、修改或删除记录1.用子查询插入记录INSERTINTO表名[(列名列表1)](SELECT列名列表2FROM表名);【例5-45】把student表中2002年出生的学生记录添加到student2002表中。INSERTINTOstudent2002(StudentID,StudentName,Sex,Birthday,Address,ClassID)(SELECT*FROMstudentWHEREYEAR(Birthday)='2002');SELECT*FROMstudent2002;5.4子查询2.用子查询修改记录【例5-46】学号为202240010215的学生转班为“数学2022-3班”,在student2002表中,修改该生的班级号。SELECTDISTINCTClassIDFROMclassWHEREClassName='数学2022-3班'LIMIT1;UPDATEstudent2002SETClassID=(SELECTDISTINCTClassIDFROMclassWHEREClassName='数学2022-3班'LIMIT1)WHEREStudentID='202240010215';5.4子查询3.用子查询删除记录【例5-47】在student2002表中,删除“数学2022-3班”的所有记录。DELETEFROMstudent2002WHEREClassID=(SELECTDISTINCTClassIDFROMclassWHEREClassName='数学2022-3班'LIMIT1);5.4子查询祝贺你完成了一章《MySQL数据库应用教程》刘瑞新主编配套资源第6章索引《MySQL数据库应用教程》刘瑞新主编配套资源目录第6章索引6.1索引概述6.2查看索引6.3创建索引6.4使用索引6.5删除索引6.1.1表中数据的搜索方式1.全表搜索方式2.索引搜索方式6.1索引概述6.1.2索引的概念6.1.3索引的类型1.按数据结构分类(1)B树索引(2)Hash索引6.1索引概述2.按逻辑区分类(1)普通索引(INDEX)(2)唯一(UNIQUE)索引(3)主键(PRIMARYKEY)索引(4)全文(FULLTEXT)索引(5)空间(SPATIAL)索引6.1索引概述3.按使用时分类(1)单列索引(2)多列索引6.1索引概述4.聚簇索引和非聚簇索引(1)聚簇索引(2)非聚簇索引6.1索引概述使用SHOWINDEX语句查看表上建立的索引名、索引类型及相关参数,其语法格式为:SHOWINDEXFROMtb_name[FROMdb_name];SHOWINDEXFROM[db_name.]tb_name;6.2查看索引【例6-1】在studentinfo数据库中,查看selectcourse表上建立的索引。USEstudentinfo;SHOWINDEXFROMselectcourse;6.2查看索引6.3.1创建索引的语句1.使用CREATETABLE语句创建索引CREATE[TEMPORARY]TABLE[db_name.]tb_name(column_namedata_type[列级完整性约束条件,][…,][表级完整性约束条件,][CONSTRAINTindex_name][UNIQUE|FULLTEXT][INDEX][index_name](index_column));6.3创建索引index_column索引列的语法格式如下:index_column_name[(length)][ASC|DESC]6.3创建索引2.使用CREATEINDEX语句创建索引CREATE[UNIQUE|FULLTEXT][INDEX]index_nameONtb_name(index_column_name[(length)][ASC|DESC]);6.3创建索引3.使用ALTERTABLE语句创建索引ALTERTABLEtb_nameADD[UNIQUE|FULLTEXT][INDEX][index_name](index_column_name[(length)][ASC|DESC]);4.自动创建索引6.3创建索引6.3.2创建索引实例1.没有索引【例6-2】在studentinfo数据库中,重新创建系表department,列定义有系编号DepartmentID、CHAR(2);系名称DepartmentName、VARCHAR(10);系电话Telephone、VARCHAR(20)。DROPTABLEIFEXISTSdepartment;CREATETABLEdepartment(DepartmentIDCHAR(2),DepartmentNameVARCHAR(10),TelephoneCHAR(20));SHOWINDEXFROMdepartment;6.3创建索引2.普通索引【例6-3】重新创建department表,在定义表的同时为DepartmentID列定义普通索引,并按升序排列;创建表后为该表的DepartmentName列添加普通索引。DROPTABLEIFEXISTSdepartment;CREATETABLEdepartment(DepartmentIDCHAR(2),DepartmentNameVARCHAR(10),TelephoneCHAR(20),INDEXindex_id(IDASC));6.3创建索引CREATEINDEXindex_nameONdepartment(DepartmentName);SHOWINDEXFROMdepartment;6.3创建索引3.列值前缀普通索引【例6-4】在department表中,为DepartmentName列添加前3个字符的列值前缀普通索引;为Telephone列添加前14个字符的列值前缀普通索引。CREATEINDEXindex_name3ONdepartment(DepartmentName(3)DESC);ALTERTABLEdepartmentADDINDEXindex_telephone14(Telephone(14));SHOWINDEXFROMdepartment;6.3创建索引4.唯一索引【例6-5】重新创建department表,定义表的Telephone列是唯一键约束,在表的DepartmentName列上创建名为name的唯一索引。DROPTABLEIFEXISTSdepartment;CREATETABLEdepartment(DepartmentIDCHAR(2),DepartmentNameVARCHAR(10),TelephoneCHAR(20)UNIQUE,UNIQUEINDEXname(DepartmentName));6.3创建索引SHOWINDEXFROMdepartment;6.3创建索引【例6-6】使用CREATEINDEX在表department的DepartmentID列上创建唯一索引。CREATEUNIQUEINDEXdepartmentIDONdepartment(DepartmentID);6.3创建索引【例6-7】使用ALTERTABLE语句在表department的电话列Telephone上创建唯一索引。ALTERTABLEdepartmentADDUNIQUEINDEX(TelephoneDESC);6.3创建索引5.多列索引【例6-8】创建teacher表,列有TeacherID、CHAR(6);TeacherName、CHAR(20);Age、INT;DepartmentName、VARCHAR(10),DepartmentID、CHAR(2)。CREATETABLEteacher(TeacherIDCHAR(6),TeacherNameCHAR(20),AgeINT,DepartmentNameVARCHAR(10),DepartmentIDCHAR(2),INDEXname(DepartmentNameASC,TeacherNameDESC));6.3创建索引SHOWINDEXFROMteacher;CREATEINDEXname2ONteacher(DepartmentName,TeacherName);6.3创建索引6.全文索引【例6-9】在teacher表中添加简历列Note、VARCHAR(50),并指定Note列为全文索引。ALTERTABLEteacherADDCOLUMNNoteVARCHAR(50),ADDFULLTEXTINDEXindex_note(Note);6.3创建索引7.主键索引和外键索引【例6-10】重新创建department表,在定义列时对DepartmentID列设置主键约束,对Telephone列设置唯一键,对DepartmentName列创建唯一索引。DROPTABLEIFEXISTSdepartment;CREATETABLEdepartment(DepartmentIDCHAR(2)PRIMARYKEY,#设置主键约束

DepartmentNameVARCHAR(10),TelephoneCHAR(20)UNIQUE,#设置唯一约束

UNIQUEINDEXname(DepartmentName)#创建唯一索引);6.3创建索引SHOWINDEXdepartment;6.3创建索引【例6-11】在teacher表中,给TeacherID列添加主键约束。ALTERTABLEteacherADDPRIMARYKEY(TeacherID);6.3创建索引【例6-12】重新创建teacher表,设置TeachertID列为主键约束,设置外键约束FK_teacher,通过外键DepartmentID列与department表建立外键关系。DROPTABLEIFEXISTSteacher;CREATETABLEteacher(TeacherIDCHAR(6),TeacherNameCHAR(20),AgeINT,DepartmentIDCHAR(2),CONSTRAINTPK_teacherPRIMARYKEY(TeacherID),

CONSTRAINTFK_teacherFOREIGNKEY(DepartmentID)REFERENCESdepartment(DepartmentID));6.3创建索引SHOWINDEXFROMteacher;6.3创建索引6.4.1EXPLAIN语句的使用1.EXPLAIN语句的语法EXPLAINSQL_statement;【例6-13】在studentinfo数据库中,显示student表的索引,然后用EXPLAIN语句执行查询,了解EXPLAIN运行的结果。SHOWINDEXFROMstudent;6.4使用索引6.4使用索引6.4使用索引6.4使用索引6.4使用索引2.

温馨提示

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

评论

0/150

提交评论