MySQL初学教程.docx
《MySQL初学教程.docx》由会员分享,可在线阅读,更多相关《MySQL初学教程.docx(28页珍藏版)》请在课桌文档上搜索。
1、MySQL教程第一章概述目标:1. 了解MySQL是什么?2. 什么是关系数据库管理系统?3. RDBMS的术语有哪些?什么是数据库?数据库(DatabaSe)是按照数据结构来组织、存储和管理数据的仓库。每个数据库都有一个或多个不同的APl用于创建,访问,管理,搜索和复制所保存的数据。我们也可以将数据存储在文件中,但是在文件中读写数据速度相对较慢。所以,现在我们使用关系型数据库管理系统(RDBMS)来存储和管理的大数据量。什么是关系数据库管理系统?所谓的关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。RDBMS即关系数据库管理系统(ReIati
2、OnalDatabaseManagementSyStem)的特点:1 .数据以表格的形式出现2 .每行为各种记录名称3 .每列为记录名称所对应的数据域4 .许多的行和列组成一张表单5 .若干的表单组成databaseRDBMS术语在我们开始学习MySQL数据库前,让我们先了解下RDBMS的一些术语:数据库:数据库是一些关联表的集合。数据表:表是数据的矩阵。在数据库中的表看起来像一个简单的电子表格。歹U:一列(数据元素)包含了相同的数据,例如邮政编码的数据。行:一行(二元组,或记录)是一组相关的数据,例如一条用户订阅的数据。冗余:存储两倍数据,冗余降低了性能,但提高了数据的安全性。主键:主键是唯
3、一的。一个数据表中只能包含一个主键。你可以使用主键来查询数据。外键:外键用于关联两个表。复合键:复合键(组合键)将多个列作为一个索引键,一般用于复合索引。索引:使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构。类似于书籍的目录。参照完整性:参照的完整性要求关系中不允许引用不存在的实体。与实体完整性是关系模型必须满足的完整性约束条件,目的是保证数据的一致性。现在你知道MySQL是什么了,让我们去在线课堂,并开始我们的第一个练习O第二章MySQL数据库操作因为我们要处理大量的数据,所以需要一种方法来定义数据库,表等,并更有效地处理数据。另外,我们可以将数据
4、转换成数据信息,所以就需要SQL来处理了。SQL代表结构化查询语言(StructuredQueryLanguage)0SQL是用于访问数据库的标准化语言。SQL语言包括以下几种:1 .数据定义语言包含定义数据库及其对象的语句,例如表,视图,触发器,存储过程等。2 .数据操作语言包含允许您更新和查询数据的语句。3 .数据控制语言允许授予用户权限访问数据库中特定数据的权限。在本教程中,会让大家快速掌握MySqI的基本知识,并轻松使用SQL语言来操作MySQL数据库。第1节连接数据库这里想要说的是,安装MySQL的方式有好几种。在本课程中,已经利用kubernetes(详情请参照k8s教程)生成了一
5、个MySQL的pod,并开启了mysql服务,打开终端即默认进入到MySQL的容器中。这里已经将密码改为“123456”,在终端输入以下命令即可登陆到MySQL,如下图所示:mysql-uroot-p123456#-uroot表示用户为root-pl23456表示密码为123456rootnysql-0:/#mysql-uroot-p123456Warning:Usingapasswordonthecommandlineinterfacecanbeinsecure.WelcometotheMySQLmonitor.Commandsendwith;org.YourMySQLconnectioni
6、dis2Serverversion:5.6.31MySQLCommunityServer(GPL)Copyright(c)20,216,Oracleand/oritsaffiliates.Allrightsreserved.OracleisaregisteredtrademarkofOracleCorporationand/oritsaffiliates.Othernamesmaybetrademarksoftheirrespectiveowners.Type,help;,or,hforhelp.Type,ctoclearthecurrentinputstatement.mysql出现这一幕则
7、表示你已经成功登录mysql,你可以看到一些其它信息,比如版本信息以及一些帮助命令。那么接下来就可以开始你的MySQL之旅啦!第2节创建数据库在上一小节中我们已经成功登陆到了mysql中,那么我们就需要使用SQL语句来操作数据库。(sql语句没对关键字的大小写做强制要求)在这一小节中会帮助大家查看有哪些数据库,怎么新建数据库以及怎么在各个数据库之间切换。首先查看mysql中包含哪些数据库。使用以下命令查看:showdatabases;#因为是查看所有数据库,所以这里使用的是databases,可以理解为复数,查看表格时也是同理。还有记住在最后加上分号表示结束语句。mysqlshowdataba
8、ses;+-+IDatabaseIinforation-schemaImysqlIPerfOEanCJSChema+-+3 rowsinset(.sec)mysql如图所示,可以看到mysql自带有三个数据库,现在我们要创建一个新的数据库。使用如下命令新建数据库:createdatabasetest;#格式为Createdatabase数据库名;mysqlcreatedatabasetest;QueryOK,1rowaffected(.1sec)mysqlshowdatabases;+IDatabase+Iinfonnation_schemaImysqlIperforance-schemaIt
9、est一I+4 rowsinset(.lsec)mysql可以看到在提交创建数据库的SQL语句后,提示的是“QueryOK,1rowaffected(0.01sec),表示SQL语句已经执行成功。再次使用查看数据库的命令,即可看到数据库test已经新建成功。当数据库太多的时候,你可能记不得当前使用的是哪个数据库。当然你可以查看数据库中有哪些表格来判断,但是我们可以使用以下命令来直接查看:selectdatabase();mysqlselectdatabase();Idatabase!)I+ItestI1rowinset(.0sec)mysql从返回的信息可以很清晰的知道当前使用的数据库为tes
10、t。假如我在使用test数据库后发现还需要使用其它数据库,那么肯定要想办法切换至指定数据库,然后再进行操作。现在我们来实现数据库之间的切换。usemysql;#切换数据库selectdatabase();#查看当前数据库mysqlusemysql;ReadingtableinformationforcompletionoftableandcolumnnamesYoucanturnoffthisfeaturetogetaquickerstartupwith-ADatabasechangedmysqlselectdatabase();Idatabase()+ImysqlI+1rowinset(.s
11、ec)mysql执行切换数据库的SQL语句后,系统会在最后返回一句Databasechanged,这表明数据库已经切换成功,再次使用查看当前数据库的命令可以看到已经成功切换。总结:数据库的操作其实就是一些逻辑语句,这个可以从SQL语句的关键字中看出。比如说新建数据库就是Createdatabasestest,查看数据库是Showdatabaseso所以说数据库的基础操作很简单,只需要记住逻辑关系以及一些引号,分号等细节,相信你也能快速入门。练习:自行创建几个数据库,然后在各个数据库之间进行切换;查看当前数据库;列出所有数据库;最后请大家思考一下删除数据库以及新建查看表格应该怎么完成?第3节删除
12、数据库增删改查为数据库的基本操作,前面我们已经学会了怎么新建和查询数据库,那么怎么实现删除数据库呢?这里要提醒的是,删除数据库过程中,务必要十分谨慎,因为在执行删除命令后,所有数据将会消失。通过前面的学习,我们知道数据库操作其实就是一些逻辑语句的处理,那么删除数据库肯定有同学想到用delete关键字。这里要简单说一下delete和drop的区别(只从结构简单描述,之后还会用到truncat,也是和删除相关的关键字)。delete:只删除数据不删除表结构。drop:用于删除表,数据库的所有数据包括结构。这里我们可以看出区别,delete一般是删除表格里存储的数据,也就是所谓的清空数据,但是表格结
13、构还在(表格属性还在,后面会详细讲解数据表的创建)。使用drop会删除所有包括结构,所以删除数据库的时候要使用drop命令。dropdatabasetest;#这里删除的数据库是上一小节新建的test数据库mysqldropdatabasetest;QueryOK,rowsaffected(.1sec)mysqlshowdatabases;+IDatabase+Iinfoation-schemaImysqlIperformance_schema+-+3rowsinset(O.sec)mysql没报错就代表命令已经执行成功,再次列出所有数据库可以看到test数据库已经消失。总结:到这里就把最基本
14、的数据库操作完成了,当然只有最基础的一些操作,也基本够平时使用了。若是想了解更多的操作,可以下来自己查找一些资料。练习:那么自己抛开教程,重头操作一遍,看看自己是否能快速、准确的操作MySQL数据库了。思考:删除数据库和删除表格有什么相同之处?第三章MySQL数据操作第1节数据类型在学习数据操作之前,我们要清楚数据都是放在表格中的,而表格中又以字段来区分各种数据,而且MySQL中定义数据字段的类型对你数据库的优化是非常重要的。这一小节先来学习了解一下MySQL的数据类型以及常用的基本类型。MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。数值类型:类型大小用途TI
15、NYINT1字节小整数值Smallint2字节大整数值INT4字节大整数值FLOAT4字节单精度,浮点数值DOUBLE8字节双精度,浮点数值日期和时间类型:类型大小用途DATE3字节日期值TIME3字节时间值或持续时间YEAR1字节年份值DATETIME8字节混合日期和时间值TIMESTAMP4字节混合日期和时间值,时间戳字符串类型:类型大小用途CHAR0-255字节定长字符串VARCHAR0-65535字节变长字符串TINYTEXT0-255字节短文本字符串TEXT0-65535字节长文本数据以上这些数据类型就是常用的类型,如果想要了解或用到其它类型,则可以通过一些资料了解。第2节创建数据表
16、在学习新建数据表之前,我们可以思考一下需要哪些信息?SQL语句应该怎么写?以及每个属性后面应该跟上什么关键字?那么在这一小节中,你将会亲自解开这些问题。创建表格所需信息1表名2表字段名3定义每个表字段语法首先给出一个通用语法供大家参考:CREATETABLEtable_name(column_namecolumn_type);结构很清晰,就是逻辑关键字加上表名,后面跟上想要添加的属性以及对应的数据类型,这样就可以实现新建一个比较完整的表格。那么接下来我们根据实际情况来新建一个数据表。假设我们定义一个PeoPIe类的表格,其中包括姓名和年龄,其SQL语法如下:CREATETABLEpeople(
17、idintprimarykeyauto_increment,namevarchar(20),ageint);mysqlCREATETABLEpeople(idintprimarykeyauto_increment,-namevarchar(2),-ageint);QueryOK,rowsaffected(0.05sec)现在大家应该对这种返回信息比较熟悉了,表示已经执行成功。可能大家会有疑问,为什么这里会多一个id字段,那这个字段又代表着什么含义,以及后面跟的关键字又有什么作用?那么马上我们来一一解释。这里的id只是一个普通的int类型字段,但是在加上primarykey后概念就不一样了。pr
18、imarykey表示主键,在概述中提过RDBMS的一些术语,其中就包括主键,表示这个属性在这张表中不能重复。通俗的讲,这里的id就好比个人的身份证号码,通过身份证号就我们就可以知道这个人的所有基本信息。那么在查询people表中的数据时就可以通过id来查询每行信息。auto_increment表示自增长。Id作为主键,要保证每次插入的id号都不相同;但是如果数据太多的话,就有可能出现插入的id号与表格中某一行数据的id号一致。所以这里设置id为自增长,每插入一条数据就自行判断表格中最大的id号,然后加Io所以auto_increment只能用于主键。那么接下来我们来看一下people表格有没有
19、新建成功,以及各个字段的信息是否正确。showtables;#查看当前数据库下的所有表格,格式和查看数据库一致mysqlCREATETABLEpeople(idint,-namevarchar(2),-ageint);QueryOK,rowsaffected(2.lsec)mysqlshowtables;+ITables_in_ddd+Ipeople+1rowinset(.15sec)mysqldescpeople;#通过desc+表名查看表格结构,包括名称、类型、是否为空mysqldescpeople;III1Ift.丁rIFieldITypeINull_LIKey丁I丁IDefaultEx
20、tra|IidIint(ll)Inamevarchar(2)Iageint(ll)_1TINOIYESIYES_IPRIIIINULLIauto_inccementINULLIIInullIITTT3rowsinset(0.1sec)mysql总结:创建数据表需要表名、字段名、字段类型,了解其它属性的含义,保证每张表都有唯一标识的主键。练习:新建一个图书表,其中包括书籍名称、作者、价格以及出版时间,考虑各个字段应该使用什么数据类型,主键应该用什么字段,是否应该加上其它一些属性。思考:1上面讲到了auto_increment等一些属性,那么以下属性分别表示什么含义?用在什么地方?notnull/
21、nulKdefault、unique、binary2下一小节将要学习删除数据表,思考一下该怎么执行SQL语句?第3节删除数据表在前面提到过删除数据库,那么这一小节我们就来实现删除数据表。MySQL中删除数据表是非常容易操作的,但是你再进行删除表操作时要非常小心,因为执行删除命令后所有数据都会消失。以下为删除MySQL数据表的通用语法:DROPTABLEtable_name;#DROPTABLE表名mysqlDROPTABLEpeople;QueryOK,rowsaffected(.4sec)mysqlshowtables;Emptyset(.sec)mysql查询出来可以看到,people表已
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MySQL 初学 教程

链接地址:https://www.desk33.com/p-991065.html