《MySQL数据库管理系统》由会员分享,可在线阅读,更多相关《MySQL数据库管理系统(67页珍藏版)》请在金锄头文库上搜索。
1、MySQL数据库管理系统1提纲2024/8/17Database Technology, GUCAS2MySQL数据库简介MySQL的安装与配置MySQL基本工具MySQL数据库操作建库建表存储过程触发器备份与恢复MySQL数据库简介MySQL数据库的特点主要有以下几个方面:使用核心线程的完全多线程服务,这意味着可以采用多CPU体系结构。可运行在不同平台。使用C和C+语言编写,并使用多种编译器进行测试,保证了源代码的可移植性。支持AIX、FreeBSD、HP-UX、Linux、Mac OS、Novell Netware、OpenBSD、OS/2 Wrap、Solaris、Windows等多种操
2、作系统。为多种编程语言提供了API。这些编程语言包括C、C+、Eiffel、Java、Perl、PHP、Python、Ruby和Tcl等。支持多线程,充分利用CPU资源。优化的SQL查询算法,可有效地提高查询速度。既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库嵌入其他的软件中。提供多语言支持,常见的编码如中文的GB2312、BIG5,日文的Shift_JIS等,都可以用做数据表名和数据列名。提供TCP/IP、ODBC和JDBC等多种数据库连接途径。提供可用于管理、检查、优化数据库操作的管理工具。可以处理拥有上千万条记录的大型数据库。2024/8/17Database
3、 Technology, GUCAS3MySQL的安装与配置下载地址:http:/ 2024/8/17Database Technology, GUCAS4运行下载的“mysql-5.1.31-win32”,出现如下界面:MySQL的安装与配置(续) Mysql安装向导启动,按Next继续。MySQL的安装与配置(续)选择安装类型,有“Typical(默认)”“Complete(完全)”“Custom(用户自定义)”三个选项,我们选择“Custom”,有更多的选项,也方便熟悉安装过程MySQL的安装与配置(续)确保Developer Components全部选上,点选“Change.”手动指定
4、安装目录。 MySQL的安装与配置(续)填上安装目录,我的是“d:Program FilesMySQLMySQL Server 5.1”,也建议不要放在与操作系统同一分区,这样可以防止系统备份还原的时候,数据被清空。按“OK”继续。 MySQL的安装与配置(续)返回刚才的界面,按“Next”继续。 MySQL的安装与配置(续)确认先前的设置,如果有误,按“Back”返回重做。按“Install”开始安装。 MySQL的安装与配置(续)正在安装中安装过程中会出现MySQL企业版的信息提示, 点Next继续安装MySQL的安装与配置(续)MySQL的安装与配置(续)至此,软件安装完成,出现mysq
5、l配置向导,将 “Configure the Mysql Server now”前面的勾打上,点“Finish”结束软件的安装并启动mysql配置向导。MySQL的安装与配置(续)mysql配置向导启动界面, 按“Next”继续。 MySQL的安装与配置(续)选择配置方式,1.“Detailed Configuration2. (手动精确配置)”2.“Standard Configuration (标准配置)”, 我们选择“Detailed Configuration”,方便熟悉配置过程。MySQL的安装与配置(续)选择服务器类型,1.“Developer Machine(开发测试类,mysq
6、l占用很少资源)”2.“Server Machine(服务器类型,mysql占用较多资源)”3.“Dedicated MySQL Server Machine(专门的数据库服务器,mysql占用所有可用资源)” 一般选“Server Machine”,不会太少,也不会占满。 MySQL的安装与配置(续)1.选择mysql数据库的大致用途,“Multifunctional Database(通用多功能型,好)”、2.“Transactional Database Only(服务器类型,专注于事务处理,一般)”3.“Non-Transactional Database Only(非事务处理型,较简
7、单,主要做一些监控、记数用,对MyISAM数据类型的支持仅限于non-transactional),随自己的用途而选择,我这里选择“Transactional Database Only”,按“Next”继续。MySQL的安装与配置(续)对InnoDB Tablespace进行配置,就是为InnoDB 数据库文件选择一个存储空间。这里没有修改,使用用默认位置,直接按“Next”继续MySQL的安装与配置(续)选择您的应用的一般mysql访问量,同时连接的数目1.“Decision Support(DSS)/OLAP(20个左右)”、2.“Online Transaction Processin
8、g(OLTP)(500个左右)”、3.“Manual Setting(手动设置,自己输一个数)”,这里选“Online Transaction Processing(OLTP)”,一般够用了,按“Next”继续MySQL的安装与配置(续)是否启用TCP/IP连接,设定端口,如果不启用,就只能在自己的机器上访问mysql数据库了,这里启用,把前面的勾打上,Port Number:3306。按“Next”继续MySQL的安装与配置(续)对mysql默认数据库语言编码进行设置,第一个是西文编码,第二个是多字节的通用utf8编码,都不是我们通用的编码,这里选择第三个,然后在Character Set那
9、里选择或填入“gbk”,当然也可以用“gb2312”,按 “Next”继续。MySQL的安装与配置(续)选择是否将mysql安装为windows服务,还可以指定Service Name(服务标识名称),是否将mysql的bin目录加入到Windows PATH,我们这里全选,Service Name不变。按“Next”继续。询问是否要修改默认root用户(超级管理)的密码(默认为空最后)Create An Anonymous Account(新建一个匿名用户,匿名用户可以连接数据库,不能操作数据,包括查询)”,一般就不用选了,设置完毕,按“Next”继续。MySQL的安装与配置(续)确认设置无
10、误,如果有误,按“Back”返回检查。按“Execute”使设置生效。 MySQL的安装与配置(续)设置完毕,按“Finish”结束mysql的安装与配置 MySQL的安装与配置(续)MySQL的安装与配置(续)检验MySQL是否安装成功的方法:进入cmd输入:mysql u root p 命令,并在随后的提示中输入密码如果出现以下提示则表示MySQL安装成功。MySQL工具nMySQL命令行实用程序 nMySQL管理器nMySQL查询浏览器MySQL命令行实用程序u 进入方法: mysql u root pu 退出方法:quitu 命令以;或g结束,即仅按enter不执行命令u mysql命
11、令不区分大小写u 一条命令可以分为多行输入,直到遇到分号为止u 一行可以输入多条命令,命令之间用分号隔开MySQL管理器下载地址:http:/ 下载该文件即可MySQL管理器启动MySQL管理器MySQL管理器登录:填写数据库服务器地址、用户名和密码MySQL管理器登录后的界面:MySQL查询浏览器登录后的界面:创建数据库创建数据库创建数据库可以使用CREATEDATABASE语句,该语句的基本格式如下:CREATEDATABASE|SCHEMAIFNOTEXISTSdb_name说明:“”中内容为可选项,DATABASE与SCHEMA同义。db_name。要创建的数据库的名称,在文件系统中,
12、MySQL的数据存储区将以目录方式表示MySQL数据库。因此,命令中的数据库名字必须符合操作系统文件夹命名规则。值得注意的是,在MySQL中是不区分大小写的。IFNOTEXISTS。在创建数据库前进行判断,只有该数据库目前尚不存在时才执行CREATEDATABASE操作。用此选项可以避免出现数据库已经存在而再新建的错误。创建数据库例子:创建学生管理系统的数据库,名为PXSCJ。打开“开始”“程序”“MySQL”“MySQLServer5.1”“MySQLCommandLineClient”菜单项,进入MySQL客户端,在客户端窗口输入密码,在命令提示行输入以下语句:CREATEDATABASE
13、PXSCJ;创建了数据库之后使用USE命令可指定当前数据库。语法格式如下:USEdb_name;创建数据库已经创建的数据库如要删除,使用DROPDATABASE命令。语法格式如下:DROPDATABASEIFEXISTSdb_name其中,db_name是要删除的数据库名。可以使用IFEXISTS子句以避免删除不存在的数据库时出现的MySQL错误信息。示例如下:删除数据库创建表使用CREATETABLE语句,基本格式如下:CREATETEMPORARYTABLEIFNOTEXISTStbl_name(,)TEMPORARY。该关键字表示用CREATE命令新建的表为临时表。不加该关键字创建的表通
14、常称为持久表,在数据库中持久表一旦创建将一直存在,多个用户或者多个应用程序可以同时使用持久表。有时需要临时存放数据,例如,临时存储复杂的SELECT语句的结果。此后,可能要重复地使用这个结果,但这个结果又不需要永久保存。这时,可以使用临时表。用户可以像操作持久表一样操作临时表。只不过临时表的生命周期较短,而且只能对创建它的用户可见,当断开与该数据库的连接时,MySQL会自动删除它们。创建表IFNOTEXISTS。建表前加上一个判断,只有该表目前尚不存在时才执行CREATETABLE操作。用此选项可以避免出现表已经存在无法再新建的错误。列选项。列选项主要有以下几种:NULL或NOTNULL:表示
15、一列是否允许为空,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都表示字段中
16、的值是唯一的。PRIMARYKEY表示设置为主键,一个表只能定义一个主键,主键必须为NOTNULL。COMMENTstring:对于列的描述,string是描述的内容。创建表表选项。在定义列选项的时候,可以将某列定义为PRIMARYKEY,但是当主键是由多个列组成的多列索引时,定义列时无法定义此主键,这时就必须在语句最后加上一个PRIMARYKEY(col_name,)子句定义的表选项。另外,表选项中还可以定义索引和外键。例:使用命令行方式在PXSCJ数据库中创建学生管理系统中的三个表XSB、KCB和CJB。创建XSB表使用如下语句:USEPXSCJ;CREATETABLEXSB(学号CHAR
17、(6)NOTNULLPRIMARYKEY,姓名CHAR(8)NOTNULL,性别TINYINT(1)NULLDEFAULT1,出生时间DATENULL,专业CHAR(12)NULL,总学分INT(4)NULLDEFAULT0,备注TEXT NULL);创建表创建KCB表使用如下语句:USEPXSCJ;CREATETABLEKCB(课程号CHAR(3)NOTNULLPRIMARYKEY,课程名CHAR(16)NOTNULL,开课学期 TINYINT(1)NULLDEFAULT1,学时TINYINT(1)NULL,学分TINYINT(1)NOTNULL);创建CJB表使用如下语句:USEPXSCJ
18、;CREATETABLECJB(学号CHAR(6)NOTNULL,课程号CHAR(3)NOTNULL,成绩INT(4)NULL,PRIMARYKEY(学号,课程号);创建表ALTERTABLE用于更改原有的表结构。例如,可以增加或删减列,创建或取消索引,更改原有列的类型,重新命名列或表,还可以更改表的描述和表的类型。ALTERTABLE语句的基本格式如下:ALTERTABLEtable_nameADD/*添加列*/|ALTERSETDEFAULTdefault_value|DROPDEFAULT /*修改默认值*/|CHANGE/*对列重命名*/|MODIFY/*修改列类型*/|DROP/*删
19、除列*/|RENAME/*重命名该表*/|其他修改表其中,table_name为要修改表的表名。ALTERTABLE语句中的修改子句可以包含以下几类:ADD子句。向表中增加新列。例如,在表t1中增加新的一列a:ALTERTABLEt1ADDCOLUMNaTINYINTNULL;ALTER子句。修改表中指定列的默认值。CHANGE子句。修改列的名称。重命名时,需给定旧列名、新列名和列当前的类型,例如,要把一个INTEGER列的名称从a变更到b:ALTERTABLEt1CHANGEabINTEGER;MODIFY子句:修改指定列的类型。例如,把一个列的数据类型改为BIGINT:ALTERTABLE
20、t1MODIFYbBIGINTNOTNULL;注意:若表中该列所存数据的数据类型与将要修改的列的类型冲突,则发生错误。例如,原来CHAR类型的列要修改成INT类型,而原来列值中有字符型数据“a”,则无法修改。DROP子句:从表中删除列或约束。RENAME子句:修改该表的表名。例如,将表a改名为b:ALTERTABLEaRENAMEb;修改表删除一个表可以使用DROPTABLE语句。语法格式如下:DROPTEMPORARYTABLEIFEXISTStbl_name,tbl_name.例如,删除XSB表可以使用如下语句:USEPXSCJ;DROPTABLEXSB;删除表SELECT语句可以从一个或
21、多个表中选取特定的行和列,结果通常是生成一个临时表。在执行过程中系统根据用户的要求从数据库中选出匹配的行和列,并将结果存放到临时的表中,SELECT语句的语法格式如下:SELECTALL|DISTINCTselect_expr,.FROMtable1,table2 /*FROM子句*/WHEREwhere_definition/*WHERE子句*/GROUPBYcol_name|expr|positionASC|DESC,./*GROUPBY子句*/HAVINGwhere_definition/*HAVING子句*/ORDERBYcol_name|expr|positionASC|DESC,.
22、/*ORDERBY子句*/LIMIToffset,row_count/*LIMIT子句*/查询表数据1.创建存储过程创建存储过程存储过程可以由声明式SQL语句(如CREATE、UPDATE和SELECT等语句)和过程式SQL语句(如IF-THEN-ELSE语句)组成。创建存储过程使用CREATEPROCEDURE语句,语法格式如下:CREATEPROCEDUREsp_name(IN|OUT|INOUTparam_nametype,.)存储过程是存储过程的主体部分,也叫做存储过程体。它包含了在过程调用的时候必须执行的语句,这个部分总是以BEGIN开始,以END结束。当然,当存储过程体中只有一个S
23、QL语句时可以省略BEGIN-END标志。另外,BEGIN-END复合语句还可以嵌套使用。在开始创建存储过程之前,先介绍一个很实用的命令:DELIMITER命令。在MySQL中,服务器处理语句的时候是以分号为结束标志的。但是在创建存储过程的时候,存储过程体中可能包含多个SQL语句,每个SQL语句都是以分号为结尾的,这时服务器处理程序遇到第一个分号的时候就会认为程序结束,这肯定是不行的。所以这里使用DELIMITER命令将MySQL语句的结束标志修改为其他符号。例如:DELIMITER$执行完这条命令后,程序结束的标志就换成两个美元符“$”了。要想恢复使用分号“;”作为结束符,运行下面命令即可:
24、DELIMITER;存储过程存储过程体中可以包含所有类型的SQL语句,另外还可以包含以下内容。(1)局部变量使用DECLARE语句声明局部变量,例如,声明一个整型变量和两个字符变量:DECLAREnumINT(4);DECLAREstr1,str2VARCHAR(6);说明:局部变量只能在BEGIN_END语句块中声明。(2)使用SET语句赋值要给局部变量赋值,可以使用SET语句,例如:SETnum=1,str1=hello;说明:这条语句无法单独执行,只能在存储过程和存储函数中使用。(3)SELECT.INTO语句使用SELECTINTO语句可以把选定的列值直接存储到变量中。因此,返回的结果
25、只能有一行。例如:SELECT姓名,专业INTOname,projectFROMXSBWHERE学号=081101;存储过程(4)流程控制语句在MySQL中,常见的过程式SQL语句可以用在一个存储过程体中。例如,IF语句、CASE语句、WHILE语句等。IF语句。IF-THEN-ELSE语句可根据不同的条件执行不同的操作。语法格式为:IFsearch_conditionTHENstatement_listELSEIFsearch_conditionTHENstatement_list.ELSEstatement_listENDIF说明:search_condition是判断的条件,statem
26、ent_list中包含一个或多个SQL语句。当search_condition的条件为真时,就执行相应的SQL语句。CASE语句。语法格式为:CASEcase_valueWHENwhen_valueTHENstatement_listWHENwhen_valueTHENstatement_list.ELSEstatement_listENDCASE存储过程或者:CASEWHENsearch_conditionTHENstatement_listWHENsearch_conditionTHENstatement_list.ELSEstatement_listENDCASE第一种格式中case_v
27、alue是要被判断的值或表达式,接下来是一系列的WHEN-THEN块,每一块的when_value参数指定要与case_value比较的值,如果为真,就执行statement_list中的SQL语句。如果前面的每一块都不匹配就执行ELSE块指定的语句。CASE语句最后以ENDCASE结束。第二种格式中CASE关键字后面没有参数,在WHEN-THEN块中,search_condition指定了一个比较表达式,表达式为真时执行THEN后面的语句。与第一种格式相比,这种格式能够实现更为复杂的条件判断,使用起来更方便。存储过程WHILE语句。语法格式为:WHILEsearch_conditionDOs
28、tatement_listENDWHILE说明:语句首先判断search_condition是否为真,为真则执行statement_list中的语句,然后再次进行判断,为真则继续循环,不为真则结束循环。【例】创建一个存储过程,实现的功能是删除一个特定学生的信息。DELIMITER$CREATEPROCEDUREDELETE_STUDENT(INXHCHAR(6)BEGINDELETEFROMXSBWHERE学号=XH;END$DELIMITER;存储过程【例】创建一个存储过程,有两个输入参数XH和KCM,要求当某学生某门课程的成绩小于60分时将备注修改为“有课程没过”,大于等于60分时将该成绩
29、修改为60分。DELIMITER$CREATEPROCEDUREDO_UPDATE(INXHCHAR(6),INKCMCHAR(16)BEGINDECLAREKCHCHAR(3);DECLARECJTINYINT;SELECT课程号INTOKCHFROMKCBWHERE课程名=KCM;SELECT成绩INTOCJFROMCJBWHERE学号=XHAND课程号=KCH;IFCJ】按钮,在MySQLAdministrator中出现如图所示的备份选项。要取消,单击【】按钮。(3)选择要备份的数据库中的表,单击【ExecuteBackupNow】按钮,出现保存数据对话框,选择要备份的路径,并单击【保存
30、】按钮。备份完成后可以在指定的目录中找到一个.sql格式的文件,里面保存了与数据库相关的一系列SQL语句。要备份的数据库列表单击备份选择需要备份的表文件数据库备份和恢复2. 恢复数据库恢复数据库(1)登录MySQLAdministrator,在MySQLAdministrator管理器窗口选中Restore选项栏,在弹出的菜单上选择“OpenBackupFile”选项。在弹出的对话框中选择需要恢复的备份,单击【打开】按钮,如图所示。Restore选项栏已经保存的备份数据库备份和恢复(2)在随后的恢复选项中,如图所示,选择要恢复的类型,然后单击【StartRestore】按钮即可。(3)如果提示数据库恢复成功,在Catalogs目录下就能查看数据库恢复的具体情况。单击此按钮开始恢复数据库备份和恢复总结MySQL数据库简介MySQL的安装与配置MySQL基本工具MySQL数据库操作建库建表存储过程触发器备份与恢复2024/8/17Database Technology, GUCAS67