MySQL数据库管理系统课件_第1页
MySQL数据库管理系统课件_第2页
MySQL数据库管理系统课件_第3页
MySQL数据库管理系统课件_第4页
MySQL数据库管理系统课件_第5页
已阅读5页,还剩131页未读 继续免费阅读

下载本文档

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

文档简介

MySQL数据库管理系统MySQL数据库管理系统1提纲MySQL数据库简介MySQL的安装与配置MySQL基本工具MySQL数据库操作建库建表存储过程触发器备份与恢复2022/12/92DatabaseTechnology,GUCAS提纲MySQL数据库简介2022/12/92DatabaseMySQL数据库简介MySQL数据库的特点主要有以下几个方面:使用核心线程的完全多线程服务,这意味着可以采用多CPU体系结构。可运行在不同平台。使用C和C++语言编写,并使用多种编译器进行测试,保证了源代码的可移植性。支持AIX、FreeBSD、HP-UX、Linux、MacOS、NovellNetware、OpenBSD、OS/2Wrap、Solaris、Windows等多种操作系统。为多种编程语言提供了API。这些编程语言包括C、C++、Eiffel、Java、Perl、PHP、Python、Ruby和Tcl等。支持多线程,充分利用CPU资源。优化的SQL查询算法,可有效地提高查询速度。既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库嵌入其他的软件中。提供多语言支持,常见的编码如中文的GB2312、BIG5,日文的Shift_JIS等,都可以用做数据表名和数据列名。提供TCP/IP、ODBC和JDBC等多种数据库连接途径。提供可用于管理、检查、优化数据库操作的管理工具。可以处理拥有上千万条记录的大型数据库。2022/12/93DatabaseTechnology,GUCASMySQL数据库简介MySQL数据库的特点主要有以下几个方面MySQL的安装与配置下载地址:

2022/12/94DatabaseTechnology,GUCASMySQL的安装与配置下载地址:2022/12/94Dat运行下载的“mysql-5.1.31-win32”,出现如下界面:MySQL的安装与配置(续)

Mysql安装向导启动,按Next继续。运行下载的“mysql-5.1.31-win32”,MySQ5MySQL的安装与配置(续)选择安装类型,有“Typical(默认)”“Complete(完全)”“Custom(用户自定义)”三个选项,我们选择“Custom”,有更多的选项,也方便熟悉安装过程MySQL的安装与配置(续)选择安装类型,有6MySQL的安装与配置(续)确保DeveloperComponents全部选上,点选“Change...”手动指定安装目录。MySQL的安装与配置(续)确保7MySQL的安装与配置(续)填上安装目录,我的是“d:\ProgramFiles\MySQL\MySQLServer5.1\”,也建议不要放在与操作系统同一分区,这样可以防止系统备份还原的时候,数据被清空。按“OK”继续。MySQL的安装与配置(续)填上安装目录,8MySQL的安装与配置(续)返回刚才的界面,按“Next”继续。MySQL的安装与配置(续)返回刚才的界面,9MySQL的安装与配置(续)确认先前的设置,如果有误,按“Back”返回重做。按“Install”开始安装。MySQL的安装与配置(续)确认先前的设置,如果有误,按“B10MySQL的安装与配置(续)正在安装中MySQL的安装与配置(续)正在安装中11安装过程中会出现MySQL企业版的信息提示,点Next继续安装MySQL的安装与配置(续)安装过程中会出现MySQLMySQL的安装与配置(续)12MySQL的安装与配置(续)至此,软件安装完成,出现mysql配置向导,将“ConfiguretheMysqlServernow”前面的勾打上,点“Finish”结束软件的安装并启动mysql配置向导。

MySQL的安装与配置(续)至此,软件安装完成,出现mysq13MySQL的安装与配置(续)mysql配置向导启动界面,按“Next”继续。MySQL的安装与配置(续)mysql配置向导启动界面,14MySQL的安装与配置(续)选择配置方式,“DetailedConfiguration(手动精确配置)”“StandardConfiguration(标准配置)”,我们选择“DetailedConfiguration”,方便熟悉配置过程。MySQL的安装与配置(续)选择配置方式,15MySQL的安装与配置(续)选择服务器类型,“DeveloperMachine(开发测试类,mysql占用很少资源)”“ServerMachine(服务器类型,mysql占用较多资源)”“DedicatedMySQLServerMachine(专门的数据库服务器,mysql占用所有可用资源)”一般选“ServerMachine”,不会太少,也不会占满。MySQL的安装与配置(续)选择服务器类型,16MySQL的安装与配置(续)选择mysql数据库的大致用途,“MultifunctionalDatabase(通用多功能型,好)”、“TransactionalDatabaseOnly(服务器类型,专注于事务处理,一般)”“Non-TransactionalDatabaseOnly(非事务处理型,较简单,主要做一些监控、记数用,对MyISAM数据类型的支持仅限于non-transactional),

随自己的用途而选择,我这里选择“TransactionalDatabaseOnly”,按“Next”继续。MySQL的安装与配置(续)选择mysql数据库的大致用途,17MySQL的安装与配置(续)对InnoDBTablespace进行配置,就是为InnoDB数据库文件选择一个存储空间。这里没有修改,使用用默认位置,直接按“Next”继续MySQL的安装与配置(续)对InnoDBTablespa18MySQL的安装与配置(续)选择您的应用的一般mysql访问量,同时连接的数目“DecisionSupport(DSS)/OLAP(20个左右)”、“OnlineTransactionProcessing(OLTP)(500个左右)”、“ManualSetting(手动设置,自己输一个数)”,

这里选“OnlineTransactionProcessing(OLTP)”,一般够用了,按“Next”继续MySQL的安装与配置(续)选择您的应用的一般mysql访问19MySQL的安装与配置(续)是否启用TCP/IP连接,设定端口,如果不启用,就只能在自己的机器上访问mysql数据库了,这里启用,把前面的勾打上,PortNumber:3306。按“Next”继续MySQL的安装与配置(续)是否启用TCP/IP连接,设定端20MySQL的安装与配置(续)对mysql默认数据库语言编码进行设置,第一个是西文编码,第二个是多字节的通用utf8编码,都不是我们通用的编码,这里选择第三个,然后在CharacterSet那里选择或填入“gbk”,当然也可以用“gb2312”,按“Next”继续。MySQL的安装与配置(续)对mysql默认数据库语言编码进21MySQL的安装与配置(续)选择是否将mysql安装为windows服务,还可以指定ServiceName(服务标识名称),是否将mysql的bin目录加入到WindowsPATH,我们这里全选,ServiceName不变。按“Next”继续。MySQL的安装与配置(续)选择是否将mysql安装为win22询问是否要修改默认root用户(超级管理)的密码(默认为空最后)CreateAnAnonymousAccount(新建一个匿名用户,匿名用户可以连接数据库,不能操作数据,包括查询)”,一般就不用选了,设置完毕,按“Next”继续。MySQL的安装与配置(续)询问是否要修改默认root用户(超级管理)的密码(默认为空最23确认设置无误,如果有误,按“Back”返回检查。按“Execute”使设置生效。MySQL的安装与配置(续)确认设置无误,如果有误,按“Back”返回检查。按“Exec24设置完毕,按“Finish”结束mysql的安装与配置MySQL的安装与配置(续)设置完毕,按“Finish”结束mysql的安装与配置My25MySQL的安装与配置(续)检验MySQL是否安装成功的方法:进入cmd输入:mysql–uroot–p命令,并在随后的提示中输入密码如果出现以下提示则表示MySQL安装成功。MySQL的安装与配置(续)检验MySQL是否安装成功的方法26MySQL工具MySQL命令行实用程序

MySQL管理器MySQL查询浏览器MySQL工具MySQL命令行实用程序27MySQL命令行实用程序

进入方法:mysql–uroot–p

退出方法:quit

命令以;或\g结束,即仅按enter不执行命令

mysql命令不区分大小写一条命令可以分为多行输入,直到遇到分号为止一行可以输入多条命令,命令之间用分号隔开MySQL命令行实用程序进入方法:mysql–ur28MySQL管理器下载地址:

下载该文件即可MySQL管理器下载地址:下载该文件即可29MySQL管理器启动MySQL管理器MySQL管理器启动MySQL管理器30MySQL管理器登录:填写数据库服务器地址、用户名和密码MySQL管理器登录:填写数据库服务器地址、用户名和密码31MySQL管理器登录后的界面:MySQL管理器登录后的界面:32MySQL查询浏览器登录后的界面:MySQL查询浏览器登录后的界面:33创建数据库创建数据库可以使用CREATEDATABASE语句,该语句的基本格式如下:CREATE{DATABASE|SCHEMA}[IFNOTEXISTS]db_name说明:“[]”中内容为可选项,DATABASE与SCHEMA同义。db_name。要创建的数据库的名称,在文件系统中,MySQL的数据存储区将以目录方式表示MySQL数据库。因此,命令中的数据库名字必须符合操作系统文件夹命名规则。值得注意的是,在MySQL中是不区分大小写的。IFNOTEXISTS。在创建数据库前进行判断,只有该数据库目前尚不存在时才执行CREATEDATABASE操作。用此选项可以避免出现数据库已经存在而再新建的错误。创建数据库创建数据库创建数据库34例子:创建学生管理系统的数据库,名为PXSCJ。打开“开始”→“程序”→“MySQL”→“MySQLServer5.1”→“MySQLCommandLineClient”菜单项,进入MySQL客户端,在客户端窗口输入密码,在命令提示行输入以下语句:CREATEDATABASEPXSCJ;创建了数据库之后使用USE命令可指定当前数据库。语法格式如下:USEdb_name;创建数据库例子:创建学生管理系统的数据库,名为PXSCJ。创建数据库35已经创建的数据库如要删除,使用DROPDATABASE命令。语法格式如下:DROPDATABASE[IFEXISTS]db_name其中,db_name是要删除的数据库名。可以使用IFEXISTS子句以避免删除不存在的数据库时出现的MySQL错误信息。示例如下:删除数据库已经创建的数据库如要删除,使用DROPDATABASE命令36创建表使用CREATETABLE语句,基本格式如下:CREATE[TEMPORARY]TABLE[IFNOTEXISTS]tbl_name( <列名1><数据类型>[<列选项>], <列名2><数据类型>[<列选项>], … <表选项>)TEMPORARY。该关键字表示用CREATE命令新建的表为临时表。不加该关键字创建的表通常称为持久表,在数据库中持久表一旦创建将一直存在,多个用户或者多个应用程序可以同时使用持久表。有时需要临时存放数据,例如,临时存储复杂的SELECT语句的结果。此后,可能要重复地使用这个结果,但这个结果又不需要永久保存。这时,可以使用临时表。用户可以像操作持久表一样操作临时表。只不过临时表的生命周期较短,而且只能对创建它的用户可见,当断开与该数据库的连接时,MySQL会自动删除它们。创建表创建表使用CREATETABLE语句,基本格式如下:创建表37IFNOTEXISTS。建表前加上一个判断,只有该表目前尚不存在时才执行CREATETABLE操作。用此选项可以避免出现表已经存在无法再新建的错误。列选项。列选项主要有以下几种:NULL或NOTNULL:表示一列是否允许为空,NULL表示可以为空,NOTNULL表示不可以为空,如果不指定,则默认为NULL。DEFAULTdefault_value:为列指定默认值,默认值default_value必须为一个常量。AUTO_INCREMENT:设置自增属性,只有整型列才能设置此属性。当插入NULL值或0到一个AUTO_INCREMENT列中时,列被设置为value+1,value是此前表中该列的最大值。AUTO_INCREMENT顺序从1开始。每个表只能有一个AUTO_INCREMENT列,并且它必须被索引。UNIQUEKEY|PRIMARYKEY:UNIQUEKEY和PRIMARYKEY都表示字段中的值是唯一的。PRIMARYKEY表示设置为主键,一个表只能定义一个主键,主键必须为NOTNULL。COMMENT'string':对于列的描述,string是描述的内容。创建表IFNOTEXISTS。建表前加上一个判断,只有该表目前38表选项。在定义列选项的时候,可以将某列定义为PRIMARYKEY,但是当主键是由多个列组成的多列索引时,定义列时无法定义此主键,这时就必须在语句最后加上一个PRIMARYKEY(col_name,…)子句定义的表选项。另外,表选项中还可以定义索引和外键。例:使用命令行方式在PXSCJ数据库中创建学生管理系统中的三个表XSB、KCB和CJB。创建XSB表使用如下语句:USEPXSCJ;CREATETABLEXSB(

学号

CHAR(6) NOTNULLPRIMARYKEY,

姓名

CHAR(8) NOTNULL,

性别

TINYINT(1) NULLDEFAULT1,

出生时间DATE NULL,

专业

CHAR(12) NULL,

总学分

INT(4) NULLDEFAULT

0,

备注

TEXT NULL);创建表表选项。在定义列选项的时候,可以将某列定义为PRIMARY39创建KCB表使用如下语句:USEPXSCJ;CREATETABLEKCB(

课程号

CHAR(3) NOTNULLPRIMARYKEY,

课程名

CHAR(16) NOTNULL,

开课学期

TINYINT(1) NULLDEFAULT1,

学时

TINYINT(1) NULL,

学分

TINYINT(1) NOTNULL);创建CJB表使用如下语句:USEPXSCJ;CREATETABLECJB(

学号

CHAR(6) NOTNULL,

课程号

CHAR(3) NOTNULL,

成绩

INT(4) NULL, PRIMARYKEY(学号,课程号));创建表创建KCB表使用如下语句:创建表40ALTERTABLE用于更改原有的表结构。例如,可以增加或删减列,创建或取消索引,更改原有列的类型,重新命名列或表,还可以更改表的描述和表的类型。ALTERTABLE语句的基本格式如下:ALTERTABLEtable_name ADD<列名><数据类型><列选项> /*添加列*/ |ALTER<列名>{SETDEFAULTdefault_value|DROPDEFAULT} /*修改默认值*/ |CHANGE<旧列名><新列名><数据类型><列选项> /*对列重命名*/ |MODIFY<列名><数据类型><列选项> /*修改列类型*/ |DROP<列名> /*删除列*/ |RENAME<新表名> /*重命名该表*/ |其他修改表修改表41其中,table_name为要修改表的表名。ALTERTABLE语句中的修改子句可以包含以下几类:ADD子句。向表中增加新列。例如,在表t1中增加新的一列a:ALTERTABLEt1ADDCOLUMNaTINYINTNULL;ALTER子句。修改表中指定列的默认值。CHANGE子句。修改列的名称。重命名时,需给定旧列名、新列名和列当前的类型,例如,要把一个INTEGER列的名称从a变更到b:ALTERTABLEt1CHANGEabINTEGER;MODIFY子句:修改指定列的类型。例如,把一个列的数据类型改为BIGINT:ALTERTABLEt1MODIFYbBIGINTNOTNULL;注意:若表中该列所存数据的数据类型与将要修改的列的类型冲突,则发生错误。例如,原来CHAR类型的列要修改成INT类型,而原来列值中有字符型数据“a”,则无法修改。DROP子句:从表中删除列或约束。RENAME子句:修改该表的表名。例如,将表a改名为b:ALTERTABLEaRENAMEb;修改表其中,table_name为要修改表的表名。修改表42删除一个表可以使用DROPTABLE语句。语法格式如下:DROP[TEMPORARY]TABLE[IFEXISTS]tbl_name[,tbl_name]...例如,删除XSB表可以使用如下语句:USEPXSCJ;DROPTABLEXSB;删除表删除一个表可以使用DROPTABLE语句。语法格式如下:删43SELECT语句可以从一个或多个表中选取特定的行和列,结果通常是生成一个临时表。在执行过程中系统根据用户的要求从数据库中选出匹配的行和列,并将结果存放到临时的表中,SELECT语句的语法格式如下:SELECT [ALL|DISTINCT] select_expr,... [FROMtable1[,table2]…] /*FROM子句*/ [WHEREwhere_definition] /*WHERE子句*/ [GROUPBY{col_name|expr|position}[ASC|DESC],...] /*GROUPBY子句*/ [HAVINGwhere_definition] /*HAVING子句*/ [ORDERBY{col_name|expr|position}[ASC|DESC],...] /*ORDERBY子句*/ [LIMIT{[offset,]row_count}] /*LIMIT子句*/查询表数据SELECT语句可以从一个或多个表中选取特定的行和列,结果通44创建存储过程存储过程可以由声明式SQL语句(如CREATE、UPDATE和SELECT等语句)和过程式SQL语句(如IF-THEN-ELSE语句)组成。创建存储过程使用CREATEPROCEDURE语句,语法格式如下:CREATEPROCEDUREsp_name([[IN|OUT|INOUT]param_nametype[,...]]) <routine_body>存储过程存储过程45<routine_body>是存储过程的主体部分,也叫做存储过程体。它包含了在过程调用的时候必须执行的语句,这个部分总是以BEGIN开始,以END结束。当然,当存储过程体中只有一个SQL语句时可以省略BEGIN-END标志。另外,BEGIN-END复合语句还可以嵌套使用。在开始创建存储过程之前,先介绍一个很实用的命令:DELIMITER命令。在MySQL中,服务器处理语句的时候是以分号为结束标志的。但是在创建存储过程的时候,存储过程体中可能包含多个SQL语句,每个SQL语句都是以分号为结尾的,这时服务器处理程序遇到第一个分号的时候就会认为程序结束,这肯定是不行的。所以这里使用DELIMITER命令将MySQL语句的结束标志修改为其他符号。例如:DELIMITER$$执行完这条命令后,程序结束的标志就换成两个美元符“$$”了。要想恢复使用分号“;”作为结束符,运行下面命令即可:DELIMITER;存储过程<routine_body>是存储过程的主体部分,也叫做存储46存储过程体中可以包含所有类型的SQL语句,另外还可以包含以下内容。(1)局部变量使用DECLARE语句声明局部变量,例如,声明一个整型变量和两个字符变量:DECLAREnumINT(4);DECLAREstr1,str2VARCHAR(6);说明:局部变量只能在BEGIN_END语句块中声明。(2)使用SET语句赋值要给局部变量赋值,可以使用SET语句,例如:SETnum=1,str1='hello';说明:这条语句无法单独执行,只能在存储过程和存储函数中使用。(3)SELECT...INTO语句使用SELECT…INTO语句可以把选定的列值直接存储到变量中。因此,返回的结果只能有一行。例如:SELECT姓名,专业

INTOname,project FROMXSB WHERE学号='081101';存储过程存储过程体中可以包含所有类型的SQL语句,另外还可以包含以下47(4)流程控制语句在MySQL中,常见的过程式SQL语句可以用在一个存储过程体中。例如,IF语句、CASE语句、WHILE语句等。IF语句。IF-THEN-ELSE语句可根据不同的条件执行不同的操作。语法格式为:IFsearch_conditionTHENstatement_list[ELSEIFsearch_conditionTHENstatement_list]...[ELSEstatement_list]ENDIF说明:search_condition是判断的条件,statement_list中包含一个或多个SQL语句。当search_condition的条件为真时,就执行相应的SQL语句。CASE语句。语法格式为:CASEcase_value WHENwhen_valueTHENstatement_list [WHENwhen_valueTHENstatement_list]... [ELSEstatement_list]ENDCASE存储过程(4)流程控制语句存储过程48或者:CASE WHENsearch_conditionTHENstatement_list [WHENsearch_conditionTHENstatement_list]... [ELSEstatement_list]ENDCASE第一种格式中case_value是要被判断的值或表达式,接下来是一系列的WHEN-THEN块,每一块的when_value参数指定要与case_value比较的值,如果为真,就执行statement_list中的SQL语句。如果前面的每一块都不匹配就执行ELSE块指定的语句。CASE语句最后以ENDCASE结束。第二种格式中CASE关键字后面没有参数,在WHEN-THEN块中,search_condition指定了一个比较表达式,表达式为真时执行THEN后面的语句。与第一种格式相比,这种格式能够实现更为复杂的条件判断,使用起来更方便。存储过程或者:存储过程49WHILE语句。语法格式为:WHILEsearch_conditionDO statement_listENDWHILE说明:语句首先判断search_condition是否为真,为真则执行statement_list中的语句,然后再次进行判断,为真则继续循环,不为真则结束循环。【例】创建一个存储过程,实现的功能是删除一个特定学生的信息。DELIMITER$$CREATEPROCEDUREDELETE_STUDENT(INXHCHAR(6))BEGIN DELETEFROMXSBWHERE学号=XH;END$$DELIMITER;存储过程WHILE语句。语法格式为:存储过程50【例】创建一个存储过程,有两个输入参数XH和KCM,要求当某学生某门课程的成绩小于60分时将备注修改为“有课程没过”,大于等于60分时将该成绩修改为60分。DELIMITER$$CREATEPROCEDUREDO_UPDATE(INXHCHAR(6),INKCMCHAR(16))BEGIN DECLAREKCHCHAR(3); DECLARECJTINYINT; SELECT课程号

INTOKCHFROMKCBWHERE课程名=KCM; SELECT成绩

INTOCJFROMCJBWHERE学号=XHAND课程号=KCH; IFCJ<60THEN UPDATEXSBSET备注='有课程没过'WHERE学号=XH; ELSE UPDATECJBSET成绩=60WHERE学号=XHAND课程号=KCH; ENDIF;END$$DELIMITER;存储过程【例】创建一个存储过程,有两个输入参数XH和KCM,要求512.调用存储过程存储过程创建完后,可以使用CALL语句来调用。语法格式如下:CALLsp_name([参数[,...]])例:创建存储过程,实现查询XSB表中学生人数的功能,该存储过程不带参数。CREATEPROCEDUREDO_QUERY() SELECTCOUNT(*)FROMXSBORDERBY学号;调用该存储过程:CALLDO_QUERY();存储过程3.删除存储过程存储过程创建后需要删除时使用DROPPROCEDURE语句。例如,删除存储过程DELETE_STUDENT可以使用如下语句:DROPPROCEDUREIFEXISTSDELETE_STUDENT;2.调用存储过程存储过程3.删除存储过程52创建触发器使用CREATETRIGGER语句,语法格式如下:CREATETRIGGERtrigger_nametrigger_timetrigger_eventONtbl_nameFOREACHROWtrigger_stmttrigger_name。触发器的名称。trigger_time。触发器触发的时刻,有两个选项AFTER和BEFORE,以表示触发器是在激活它的语句之前还是之后触发。trigger_event。触发事件,指明激活触发程序的语句的类型。trigger_event可以是INSERT、UPDATE和DELETE,分别表示插入、修改、删除数据时激活触发器。tbl_name。与触发器相关的表名,在该表上发生触发事件才会激活触发器。同一个表不能拥有两个具有相同触发时刻和事件的触发器。trigger_stmt。触发器动作,包含触发器激活时将要执行的语句。如果要执行多个语句,可使用BEGIN...END复合语句结构,这样就能使用存储过程中允许的相同语句。触发器创建触发器使用CREATETRIGGER语句,语法格式如下53例:创建一个触发器,当删除表XSB中某个学生的信息时,同时将CJB表中与该学生有关的数据全部删除。DELIMITER$$CREATETRIGGERXS_DELETEAFTERDELETE ONXSBFOREACHROWBEGIN DELETEFROMCJBWHERE学号=OLD.学号;END$$DELIMITER;现在验证一下触发器的功能:DELETEFROMXSBWHERE学号='081101';使用SELECT语句查看CJB表中的情况:SELECT*FROMCJB;删除触发器也是使用DROP语句,例如:DROPTRIGGERXS_DELETE;触发器例:创建一个触发器,当删除表XSB中某个学生的信息时,同时将54创建数据库和表1.创建数据库以创建PXSCJ2数据库为例,创建数据库的方法如下:(1)打开“开始”→“程序”→“MySQL”→“MySQLAdministrator”菜单项,ServerHost为“localhost”,Username为“root”,输入密码,单击【OK】按钮。主机名用户名密码使用界面工具操作MySQL创建数据库和表主机名用户名密码使用界面工具操作MySQL55(2)在MySQLAdministrator窗口中展开Catalogs选项栏,出现如图所示的数据库列表,在任意一个数据库名上右击鼠标,选择“CreateNewSchema”子选项。Catalogs选项栏数据库列表使用界面工具操作MySQL(2)在MySQLAdministrator窗口中展开Ca56(3)出现如图所示的界面,输入需要创建的数据库名PXSCJ2,单击【OK】按钮。这样数据库PXSCJ2就创建成功了。使用界面工具操作MySQL(3)出现如图所示的界面,输入需要创建的数据库名PXSCJ2572.创建表若要在数据库PXSCJ2中创建XSB表,步骤如下:(1)在MySQLAdministrator窗口中展开Catalogs选项栏,在数据库PXSCJ2上右击鼠标,在弹出的快捷单上选择“CreateNewTable”选项,或者直接单击【CreateTable】按钮。(2)在弹出的“MySQLTableEditor”窗口中输入表名XSB,在“ColumnsandIndices”子选框中输入表的各列及数据类型,如图所示,单击【ApplyChanges】按钮。在弹出的“ConfirmTableEditor”对话框中单击【Execute】按钮,即可成功创建表XSB。输入表名列名列类型使用界面工具操作MySQL2.创建表列名列类型使用界面工具操作MySQL58如果要在数据库中删除表,步骤如下:(1)在MySQLAdministrator窗口中展开Catalogs选项栏,选择数据库(如PXSCJ2),在快捷选单上右击要删除的表,选择“DropTable”选项。(2)在弹出对话框中单击【DropTable】按钮,即删除了表。如果要修改表,可以在步骤(1)中选择“EditTable”选项,在弹出的窗口中进行修改,修改后单击【ApplyChanges】按钮即可完成。使用界面工具操作MySQL如果要在数据库中删除表,步骤如下:使用界面工具操作MySQL59启动MySQLAdministrator,在Catalogs选项栏中选中数据库PXSCJ2,再选中需要操作的表(XSB),右击,在弹出的快捷选单中选择“EditTableData”选项,进入操作所选择的表数据窗口,如图所示。添加记录的方法是:单击图中下方工具栏的“Edit”选项,双击需要输入的地方,将数据写入,每输入一个值,按回车键。每输入完一行值,将光标移到下一行中,如图所示。数据输入完毕后单击【ApplyChanges】按钮保存结果。单击Edit进行修改操作表数据启动MySQLAdministrator,在Catalog60双击右侧Schemata栏内数据库PXSCJ2中的XSB表,单击【Execute】按钮可查看插入数据后的XSB表。修改记录的方法和添加数据基本相同。进入上页图所示的窗口后单击“Edit”选项,双击需要修改的地方,输入新记录,修改完后单击【ApplyChanges】按钮即可。删除记录的方法是:在操作数据的窗口,将当前光标移动到要删除的行,单击鼠标右键,在弹出的快捷选单上选择“deleterow(s)”选项,再单击【ApplyChanges】按钮即删除了该行记录。保存记录执行按钮图7.14添加数据操作表数据双击右侧Schemata栏内数据库PXSCJ2中的XSB表,61除了用命令行进行查询外,还可以用MySQL的查询工具MySQLQueryBrowser进行数据查询。查询方法如下:启动MySQLQueryBrowser,输入服务器名、用户名和密码(与MySQLAdministrator工具一样),在DefaultSchema栏后的文本框中输入要设定的当前数据库名。连接后进入MySQLQueryBrowser主窗口,如图所示。输入SQL语句显示结果操作表数据除了用命令行进行查询外,还可以用MySQL的查询工具MySQ621.备份数据库(1)登录MySQLAdministrator,在MySQLAdministrator管理器窗口选中“Backup”选项栏,在出现的“BackupProject”栏上单击【NewProject】按钮,如图所示。备份名Backup选项栏数据库备份和恢复1.备份数据库备份名Backup选项栏数据库备份和恢复63(2)在Projectname栏上输入要创建备份的名称,在Schemata选项框中选择需要创建的数据库名称(以PXSCJ数据库为例),单击【>】按钮,在MySQLAdministrator中出现如图所示的备份选项。要取消,单击【<】按钮。(3)选择要备份的数据库中的表,单击【ExecuteBackupNow】按钮,出现保存数据对话框,选择要备份的路径,并单击【保存】按钮。备份完成后可以在指定的目录中找到一个.sql格式的文件,里面保存了与数据库相关的一系列SQL语句。要备份的数据库列表单击备份选择需要备份的表文件数据库备份和恢复(2)在Projectname栏上输入要创建备份的名称,在642.恢复数据库(1)登录MySQLAdministrator,在MySQLAdministrator管理器窗口选中Restore选项栏,在弹出的菜单上选择“OpenBackupFile”选项。在弹出的对话框中选择需要恢复的备份,单击【打开】按钮,如图所示。Restore选项栏已经保存的备份数据库备份和恢复2.恢复数据库数据库备份和恢复65(2)在随后的恢复选项中,如图所示,选择要恢复的类型,然后单击【StartRestore】按钮即可。(3)如果提示数据库恢复成功,在Catalogs目录下就能查看数据库恢复的具体情况。单击此按钮开始恢复数据库备份和恢复(2)在随后的恢复选项中,如图所示,选择要恢复的类型,然后单66总结MySQL数据库简介MySQL的安装与配置MySQL基本工具MySQL数据库操作建库建表存储过程触发器备份与恢复2022/12/9DatabaseTechnology,GUCAS67总结MySQL数据库简介2022/12/9Database67谢谢观赏谢谢观赏68MySQL数据库管理系统MySQL数据库管理系统69提纲MySQL数据库简介MySQL的安装与配置MySQL基本工具MySQL数据库操作建库建表存储过程触发器备份与恢复2022/12/970DatabaseTechnology,GUCAS提纲MySQL数据库简介2022/12/92DatabaseMySQL数据库简介MySQL数据库的特点主要有以下几个方面:使用核心线程的完全多线程服务,这意味着可以采用多CPU体系结构。可运行在不同平台。使用C和C++语言编写,并使用多种编译器进行测试,保证了源代码的可移植性。支持AIX、FreeBSD、HP-UX、Linux、MacOS、NovellNetware、OpenBSD、OS/2Wrap、Solaris、Windows等多种操作系统。为多种编程语言提供了API。这些编程语言包括C、C++、Eiffel、Java、Perl、PHP、Python、Ruby和Tcl等。支持多线程,充分利用CPU资源。优化的SQL查询算法,可有效地提高查询速度。既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库嵌入其他的软件中。提供多语言支持,常见的编码如中文的GB2312、BIG5,日文的Shift_JIS等,都可以用做数据表名和数据列名。提供TCP/IP、ODBC和JDBC等多种数据库连接途径。提供可用于管理、检查、优化数据库操作的管理工具。可以处理拥有上千万条记录的大型数据库。2022/12/971DatabaseTechnology,GUCASMySQL数据库简介MySQL数据库的特点主要有以下几个方面MySQL的安装与配置下载地址:

2022/12/972DatabaseTechnology,GUCASMySQL的安装与配置下载地址:2022/12/94Dat运行下载的“mysql-5.1.31-win32”,出现如下界面:MySQL的安装与配置(续)

Mysql安装向导启动,按Next继续。运行下载的“mysql-5.1.31-win32”,MySQ73MySQL的安装与配置(续)选择安装类型,有“Typical(默认)”“Complete(完全)”“Custom(用户自定义)”三个选项,我们选择“Custom”,有更多的选项,也方便熟悉安装过程MySQL的安装与配置(续)选择安装类型,有74MySQL的安装与配置(续)确保DeveloperComponents全部选上,点选“Change...”手动指定安装目录。MySQL的安装与配置(续)确保75MySQL的安装与配置(续)填上安装目录,我的是“d:\ProgramFiles\MySQL\MySQLServer5.1\”,也建议不要放在与操作系统同一分区,这样可以防止系统备份还原的时候,数据被清空。按“OK”继续。MySQL的安装与配置(续)填上安装目录,76MySQL的安装与配置(续)返回刚才的界面,按“Next”继续。MySQL的安装与配置(续)返回刚才的界面,77MySQL的安装与配置(续)确认先前的设置,如果有误,按“Back”返回重做。按“Install”开始安装。MySQL的安装与配置(续)确认先前的设置,如果有误,按“B78MySQL的安装与配置(续)正在安装中MySQL的安装与配置(续)正在安装中79安装过程中会出现MySQL企业版的信息提示,点Next继续安装MySQL的安装与配置(续)安装过程中会出现MySQLMySQL的安装与配置(续)80MySQL的安装与配置(续)至此,软件安装完成,出现mysql配置向导,将“ConfiguretheMysqlServernow”前面的勾打上,点“Finish”结束软件的安装并启动mysql配置向导。

MySQL的安装与配置(续)至此,软件安装完成,出现mysq81MySQL的安装与配置(续)mysql配置向导启动界面,按“Next”继续。MySQL的安装与配置(续)mysql配置向导启动界面,82MySQL的安装与配置(续)选择配置方式,“DetailedConfiguration(手动精确配置)”“StandardConfiguration(标准配置)”,我们选择“DetailedConfiguration”,方便熟悉配置过程。MySQL的安装与配置(续)选择配置方式,83MySQL的安装与配置(续)选择服务器类型,“DeveloperMachine(开发测试类,mysql占用很少资源)”“ServerMachine(服务器类型,mysql占用较多资源)”“DedicatedMySQLServerMachine(专门的数据库服务器,mysql占用所有可用资源)”一般选“ServerMachine”,不会太少,也不会占满。MySQL的安装与配置(续)选择服务器类型,84MySQL的安装与配置(续)选择mysql数据库的大致用途,“MultifunctionalDatabase(通用多功能型,好)”、“TransactionalDatabaseOnly(服务器类型,专注于事务处理,一般)”“Non-TransactionalDatabaseOnly(非事务处理型,较简单,主要做一些监控、记数用,对MyISAM数据类型的支持仅限于non-transactional),

随自己的用途而选择,我这里选择“TransactionalDatabaseOnly”,按“Next”继续。MySQL的安装与配置(续)选择mysql数据库的大致用途,85MySQL的安装与配置(续)对InnoDBTablespace进行配置,就是为InnoDB数据库文件选择一个存储空间。这里没有修改,使用用默认位置,直接按“Next”继续MySQL的安装与配置(续)对InnoDBTablespa86MySQL的安装与配置(续)选择您的应用的一般mysql访问量,同时连接的数目“DecisionSupport(DSS)/OLAP(20个左右)”、“OnlineTransactionProcessing(OLTP)(500个左右)”、“ManualSetting(手动设置,自己输一个数)”,

这里选“OnlineTransactionProcessing(OLTP)”,一般够用了,按“Next”继续MySQL的安装与配置(续)选择您的应用的一般mysql访问87MySQL的安装与配置(续)是否启用TCP/IP连接,设定端口,如果不启用,就只能在自己的机器上访问mysql数据库了,这里启用,把前面的勾打上,PortNumber:3306。按“Next”继续MySQL的安装与配置(续)是否启用TCP/IP连接,设定端88MySQL的安装与配置(续)对mysql默认数据库语言编码进行设置,第一个是西文编码,第二个是多字节的通用utf8编码,都不是我们通用的编码,这里选择第三个,然后在CharacterSet那里选择或填入“gbk”,当然也可以用“gb2312”,按“Next”继续。MySQL的安装与配置(续)对mysql默认数据库语言编码进89MySQL的安装与配置(续)选择是否将mysql安装为windows服务,还可以指定ServiceName(服务标识名称),是否将mysql的bin目录加入到WindowsPATH,我们这里全选,ServiceName不变。按“Next”继续。MySQL的安装与配置(续)选择是否将mysql安装为win90询问是否要修改默认root用户(超级管理)的密码(默认为空最后)CreateAnAnonymousAccount(新建一个匿名用户,匿名用户可以连接数据库,不能操作数据,包括查询)”,一般就不用选了,设置完毕,按“Next”继续。MySQL的安装与配置(续)询问是否要修改默认root用户(超级管理)的密码(默认为空最91确认设置无误,如果有误,按“Back”返回检查。按“Execute”使设置生效。MySQL的安装与配置(续)确认设置无误,如果有误,按“Back”返回检查。按“Exec92设置完毕,按“Finish”结束mysql的安装与配置MySQL的安装与配置(续)设置完毕,按“Finish”结束mysql的安装与配置My93MySQL的安装与配置(续)检验MySQL是否安装成功的方法:进入cmd输入:mysql–uroot–p命令,并在随后的提示中输入密码如果出现以下提示则表示MySQL安装成功。MySQL的安装与配置(续)检验MySQL是否安装成功的方法94MySQL工具MySQL命令行实用程序

MySQL管理器MySQL查询浏览器MySQL工具MySQL命令行实用程序95MySQL命令行实用程序

进入方法:mysql–uroot–p

退出方法:quit

命令以;或\g结束,即仅按enter不执行命令

mysql命令不区分大小写一条命令可以分为多行输入,直到遇到分号为止一行可以输入多条命令,命令之间用分号隔开MySQL命令行实用程序进入方法:mysql–ur96MySQL管理器下载地址:

下载该文件即可MySQL管理器下载地址:下载该文件即可97MySQL管理器启动MySQL管理器MySQL管理器启动MySQL管理器98MySQL管理器登录:填写数据库服务器地址、用户名和密码MySQL管理器登录:填写数据库服务器地址、用户名和密码99MySQL管理器登录后的界面:MySQL管理器登录后的界面:100MySQL查询浏览器登录后的界面:MySQL查询浏览器登录后的界面:101创建数据库创建数据库可以使用CREATEDATABASE语句,该语句的基本格式如下:CREATE{DATABASE|SCHEMA}[IFNOTEXISTS]db_name说明:“[]”中内容为可选项,DATABASE与SCHEMA同义。db_name。要创建的数据库的名称,在文件系统中,MySQL的数据存储区将以目录方式表示MySQL数据库。因此,命令中的数据库名字必须符合操作系统文件夹命名规则。值得注意的是,在MySQL中是不区分大小写的。IFNOTEXISTS。在创建数据库前进行判断,只有该数据库目前尚不存在时才执行CREATEDATABASE操作。用此选项可以避免出现数据库已经存在而再新建的错误。创建数据库创建数据库创建数据库102例子:创建学生管理系统的数据库,名为PXSCJ。打开“开始”→“程序”→“MySQL”→“MySQLServer5.1”→“MySQLCommandLineClient”菜单项,进入MySQL客户端,在客户端窗口输入密码,在命令提示行输入以下语句:CREATEDATABASEPXSCJ;创建了数据库之后使用USE命令可指定当前数据库。语法格式如下:USEdb_name;创建数据库例子:创建学生管理系统的数据库,名为PXSCJ。创建数据库103已经创建的数据库如要删除,使用DROPDATABASE命令。语法格式如下:DROPDATABASE[IFEXISTS]db_name其中,db_name是要删除的数据库名。可以使用IFEXISTS子句以避免删除不存在的数据库时出现的MySQL错误信息。示例如下:删除数据库已经创建的数据库如要删除,使用DROPDATABASE命令104创建表使用CREATETABLE语句,基本格式如下:CREATE[TEMPORARY]TABLE[IFNOTEXISTS]tbl_name( <列名1><数据类型>[<列选项>], <列名2><数据类型>[<列选项>], … <表选项>)TEMPORARY。该关键字表示用CREATE命令新建的表为临时表。不加该关键字创建的表通常称为持久表,在数据库中持久表一旦创建将一直存在,多个用户或者多个应用程序可以同时使用持久表。有时需要临时存放数据,例如,临时存储复杂的SELECT语句的结果。此后,可能要重复地使用这个结果,但这个结果又不需要永久保存。这时,可以使用临时表。用户可以像操作持久表一样操作临时表。只不过临时表的生命周期较短,而且只能对创建它的用户可见,当断开与该数据库的连接时,MySQL会自动删除它们。创建表创建表使用CREATETABLE语句,基本格式如下:创建表105IFNOTEXISTS。建表前加上一个判断,只有该表目前尚不存在时才执行CREATETABLE操作。用此选项可以避免出现表已经存在无法再新建的错误。列选项。列选项主要有以下几种:NULL或NOTNULL:表示一列是否允许为空,NULL表示可以为空,NOTNULL表示不可以为空,如果不指定,则默认为NULL。DEFAULTdefault_value:为列指定默认值,默认值default_value必须为一个常量。AUTO_INCREMENT:设置自增属性,只有整型列才能设置此属性。当插入NULL值或0到一个AUTO_INCREMENT列中时,列被设置为value+1,value是此前表中该列的最大值。AUTO_INCREMENT顺序从1开始。每个表只能有一个AUTO_INCREMENT列,并且它必须被索引。UNIQUEKEY|PRIMARYKEY:UNIQUEKEY和PRIMARYKEY都表示字段中的值是唯一的。PRIMARYKEY表示设置为主键,一个表只能定义一个主键,主键必须为NOTNULL。COMMENT'string':对于列的描述,string是描述的内容。创建表IFNOTEXISTS。建表前加上一个判断,只有该表目前106表选项。在定义列选项的时候,可以将某列定义为PRIMARYKEY,但是当主键是由多个列组成的多列索引时,定义列时无法定义此主键,这时就必须在语句最后加上一个PRIMARYKEY(col_name,…)子句定义的表选项。另外,表选项中还可以定义索引和外键。例:使用命令行方式在PXSCJ数据库中创建学生管理系统中的三个表XSB、KCB和CJB。创建XSB表使用如下语句:USEPXSCJ;CREATETABLEXSB(

学号

CHAR(6) NOTNULLPRIMARYKEY,

姓名

CHAR(8) NOTNULL,

性别

TINYINT(1) NULLDEFAULT1,

出生时间DATE NULL,

专业

CHAR(12) NULL,

总学分

INT(4) NULLDEFAULT

0,

备注

TEXT NULL);创建表表选项。在定义列选项的时候,可以将某列定义为PRIMARY107创建KCB表使用如下语句:USEPXSCJ;CREATETABLEKCB(

课程号

CHAR(3) NOTNULLPRIMARYKEY,

课程名

CHAR(16) NOTNULL,

开课学期

TINYINT(1) NULLDEFAULT1,

学时

TINYINT(1) NULL,

学分

TINYINT(1) NOTNULL);创建CJB表使用如下语句:USEPXSCJ;CREATETABLECJB(

学号

CHAR(6) NOTNULL,

课程号

CHAR(3) NOTNULL,

成绩

INT(4) NULL, PRIMARYKEY(学号,课程号));创建表创建KCB表使用如下语句:创建表108ALTERTABLE用于更改原有的表结构。例如,可以增加或删减列,创建或取消索引,更改原有列的类型,重新命名列或表,还可以更改表的描述和表的类型。ALTERTABLE语句的基本格式如下:ALTERTABLEtable_name ADD<列名><数据类型><列选项> /*添加列*/ |ALTER<列名>{SETDEFAULTdefault_value|DROPDEFAULT} /*修改默认值*/ |CHANGE<旧列名><新列名><数据类型><列选项> /*对列重命名*/ |MODIFY<列名><数据类型><列选项> /*修改列类型*/ |DROP<列名> /*删除列*/ |RENAME<新表名> /*重命名该表*/ |其他修改表修改表109其中,table_name为要修改表的表名。ALTERTABLE语句中的修改子句可以包含以下几类:ADD子句。向表中增加新列。例如,在表t1中增加新的一列a:ALTERTABLEt1ADDCOLUMNaTINYINTNULL;ALTER子句。修改表中指定列的默认值。CHANGE子句。修改列的名称。重命名时,需给定旧列名、新列名和列当前的类型,例如,要把一个INTEGER列的名称从a变更到b:ALTERTABLEt1CHANGEabINTEGER;MODIFY子句:修改指定列的类型。例如,把一个列的数据类型改为BIGINT:ALTERTABLEt1MODIFYbBIGINTNOTNULL;注意:若表中该列所存数据的数据类型与将要修改的列的类型冲突,则发生错误。例如,原来CHAR类型的列要修改成INT类型,而原来列值中有字符型数据“a”,则无法修改。DROP子句:从表中删除列或约束。RENAME子句:修改该表的表名。例如,将表a改名为b:ALTERTABLEaRENAMEb;修改表其中,table_name为要修改表的表名。修改表110删除一个表可以使用DROPTABLE语句。语法格式如下:DROP[TEMPORARY]TABLE[IFEXISTS]tbl_name[,tbl_name]...例如,删除XSB表可以使用如下语句:USEPXSCJ;DROPTABLEXSB;删除表删除一个表可以使用DROPTABLE语句。语法格式如下:删111SELECT语句可以从一个或多个表中选取特定的行和列,结果通常是生成一个临时表。在执行过程中系统根据用户的要求从数据库中选出匹配的行和列,并将结果存放到临时的表中,SELECT语句的语法格式如下:SELECT [ALL|DISTINCT] select_expr,... [FROMtable1[,table2]…] /*FROM子句*/ [WHEREwhere_definition] /*WHERE子句*/ [GROUPBY{col_name|expr|position}[ASC|DESC],...] /*GROUPBY子句*/ [HAVINGwhere_definition] /*HAVING子句*/ [ORDERBY{col_name|expr|position}[ASC|DESC],...] /*ORDERBY子句*/ [LIMIT{[offset,]row_count}] /*LIMIT子句*/查询表数据SELECT语句可以从一个或多个表中选取特定的行和列,结果通112创建存储过程存储过程可以由声明式SQL语句(如CREATE、UPDATE和SELECT等语句)和过程式SQL语句(如IF-THEN-ELSE语句)组成。创建存储过程使用CREATEPROCEDURE语句,语法格式如下:CREATEPROCEDUREsp_name([[IN|OUT|INOUT]param_nametype[,...]]) <routine_body>存储过程存储过程113<routine_body>是存储过程的主体部分,也叫做存储过程体。它包含了在过程调用的时候必须执行的语句,这个部分总是以BEGIN开始,以END结束。当然,当存储过程体中只有一个SQL语句时可以省略BEGIN-END标志。另外,BEGIN-END复合语句还可以嵌套使用。在开始创建存储过程之前,先介绍一个很实用的命令:DELIMITER命令。在MySQL中,服务器处理语句的时候是以分号为结束标志的。但是在创建存储过程的时候,存储过程体中可能包含多个SQL语句,每个SQL语句都是以分号为结尾的,这时服务器处理程序遇到第一个分号的时候就会认为程序结束,这肯定是不行的。所以这里使用DELIMITER命令将MySQL语句的结束标志修改为其他符号。例如:DELIMITER$$执行完这条命令后,程序结束的标志就换成两个美元符“$$”了。要想恢复使用分号“;”作为结束符,运行下面命令即可:DELIMITER;存储过程<routine_body>是存储过程的主体部分,也叫做存储114存储过程体中可以包含所有类型的SQL语句,另外还可以包含以下内容。(1)局部变量使用DECLARE语句声明局部变量,例如,声明一个整型变量和两个字符变量:DECLAREnumINT(4);DECLAREstr1,str2VARCHAR(6);说明:局部变量只能在BEGIN_END语句块中声明。(2)使用SET语句赋值要给局部变量赋值,可以使用SET语句,例如:SETnum=1,str1='hello';说明:这条语句无法单独执行,只能在存储过程和存储函数中使用。(3)SELECT...INTO语句使用SELECT…INTO语句可以把选定的列值直接存储到变量中。因此,返回的结果只能有一行。例如:SELECT姓名,专业

INTOname,project FROMXSB WHERE学号='081101';存储过程存储过程体中可以包含所有类型的SQL语句,另外还可以包含以下115(4)流程控制语句在MySQL中,常见的过程式SQL语句可以用在一个存储过程体中。例如,IF语句、CASE语句、WHILE语句等。IF语句。IF-THEN-ELSE语句可根据不同的条件执行不同的操作。语法格式为:IFsearch_conditionTHENstatement_list[ELSEIFsearch_conditionTHENstatement_list]...[ELSEstatement_list]ENDIF说明:search_condition是判断的条件,statement_list中包含一个或多个SQL语句。当search_condition的条件为真时,就执行相应的SQL语句。CASE语句。语法格式为:CASEcase_value WHENwhen_valueTHENstatement_list [WHENwhen_valueTHENstatement_list]... [ELSEstate

温馨提示

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

评论

0/150

提交评论