全栈 - 11 数据库 MySQL使用方法

这是全栈数据工程师养成攻略系列教程的第十一期:11 数据库 MySQL使用方法。javascript

咱们已经掌握了如何用MAMP或WAMP在我的电脑上搭建Web环境,其中包含了用于存储数据的关系型数据库MySQL,如今就让咱们来了解下如何使用MySQL。php

基本概念

MySQL中能够存在多个数据库(Database),每一个数据库对应一个相对独立的项目。一个数据库中能够包含多个数据表(Table),不一样的数据表用来存储不一样用途的数据。举例来讲,能够新建一个chat数据库用于存储和某一社交网站相关的数据,里面有usermessage两个表,分别用来存储用户基本信息、用户之间的聊天记录。须要注意的是,数据库名和数据表名最好都使用英文名称。java

数据表和Excel中的表格很相似,既有行也有列,即咱们以前说起的二维表结构。以user表为例,每一行记录了一名用户的基本信息,每一列即用户信息的一个字段,例如姓名、性别、职业等。mysql

MySQL涉及的操做包括新建或删除数据库,以及在一个已有的数据库中新建、清空或删除数据表。除此以外,主要就是在一个已有的数据表中对数据进行CURD操做,即CreateUpdateReadDelete,分别对应插入数据、更新数据、读取数据、删除数据。接下来咱们将了解,如何使用命令行、Web工具、本地软件、Python代码四种方法,来操做MySQL数据库。web

命令行

能够在命令行中输入如下命令,按回车后再输入MySQL数据库的密码,便可进入MySQL提供的交互命令行,相似Python的交互编程环境,每敲一行MySQL语句,按回车便可执行。这种方法仅适用于单独安装MySQL数据库,不适用于MAMP或WAMP,并且对代码能力要求较高,故不推荐使用。sql

mysql -u root -p复制代码

Web工具

Web工具是指在MySQL内核之上,基于Web开发出的图形化操做界面。只要在网站上点一点,便可完成对MySQL的各种操做。其中最为经常使用的一种即phpMyAdmin,基于PHP开发,简单、轻量、好用,在MAMP或WAMP中也会自带phpMyAdmin。数据库

在MAMP的欢迎页面上能够找到使用phpMyAdmin管理MySQL的连接,点击后将看到如下界面,左侧中所显示的是当前已存在的数据库,右侧中则显示了菜单栏和对应的内容。编程

首先让咱们来尝试下如何新建数据库。默认状况下会存在三个数据库,information_schemamysqlperformance_schema,这三个数据库是MySQL自带的,不要去动它们。点击左侧中的New,或者右侧菜单栏中的Databases,均可以在右侧中看到当前已存在数据库的一些基本信息,以及进行数据库新建操做。服务器

输入新建数据库的名称,推荐使用全英文。这里咱们输入douban,由于须要将以前爬取的豆瓣电影数据存入数据库中。选择Collationutf8_general_ci,而后点击Create便可。less

新建好数据库后,因为数据库为空,会自动跳到新建数据表的页面。给数据表取个英文名,这里输入movie,而后选择表的列数,默认为4,点击Go进入下一步。即便数据表最终不是4列也不要紧,多的列会自动忽略,列数不够一样能够继续加,因此不用担忧。

接下来须要配置每一列的详细内容,包括Name、Type、Length/Values、Default、Collation、Attributes、Null、Index、A_I、Comments。咱们首先填写第一个字段,每一个数据表都须要一个主键即id,不一样的行具备惟一不一样的id,用于进行彼此区分。

  • Name:字段的名称,纯英文,让咱们输入id
  • Type:字段的变量类型,id应当是正整数,因此使用默认的INT便可;
  • Length/Values:字段的长度,不填的话会使用默认值,即INT类型的默认长度;
  • Default:插入数据时若是不提供值,字段的默认值,这里能够先无论;
  • Collation:不填的话则使用数据库的Collation,不然覆盖,这里能够先无论;
  • Attributes:字段的属性,这里能够先无论;
  • Null:字段是否默认为空值,默认不勾选;
  • Index:字段使用何种索引,这里选择PRIMARY,即主键,若是有弹窗则点击Go便可;
  • A_I:是否自增,Auto Increasement,即在插入数据时若是不提供值,会自动增长,第一条记录为1,第二条记录为2,以此类推。这里须要勾上,由于咱们但愿id是自增的,从而不一样记录使用不一样的id;
  • Comments:字段的备注信息,能够留空无论。

接下来再填一下电影的标题字段,Name输入title,Type选为VARCHAR,Length/Values输入255,由于255个字符对于标题而言足够了,其余选项不用管。Type的可选值包括数值类Numeric、日期时间类Date and time、文本类String、空间类Spatial四大类,以上所使用的VARCHAR是一种长度可变的字符串,使用时须要设置最大长度。若是须要存储更长的文本,能够考虑TEXTMEDIUMTEXTLONGTEXT等。

同理,继续填写电影的连接字段,填入urlVARCHAR255;对于电影的简介字段,因为电影简介可能会很长,因此Name输入summary,Type选择TEXT;至于电影的评分字段,因为评分能够是小数,因此Name输入score,Type选择Numeric类中的FLOAT。若是须要继续增长字段,输入须要增长的列数并点击Go,而后根据字段特征完善Name、Type和Length/Values便可。

字段信息所有填写完毕后,点击右下方的Save便可完成数据表的新建,左侧中会选中刚才新建的数据库和数据表,右侧中会出现新的菜单栏。点击Browse能够查看数据表内的数据记录,点击Structure能够查看数据表的结构,即各项字段的配置内容,点击SQL能够在当前数据表上执行SQL命令,点击Insert能够向当前数据表中插入数据记录,点击ExportImport分别能够导出和导入数据表,点击Operations能够进一步执行清空数据表和删除数据表等操做。

在上图所示的Structure标签页中,能够查看数据表的结构,即各项字段的详细配置,并对某个字段执行修改Change、删除Drop等操做。除此以外,还能够向数据表中添加若干列,以及查看数据表的空间存储状况。

若是在左侧点击某一数据库,则右侧的菜单栏相应地会变成数据库级别的操做,如查看数据库的结构,即各个数据表的基本信息,在当前数据库上执行SQL命令,导出和导入数据库,执行删除数据库等操做。

细心的话能够发现,每次在phpMyAdmin上执行相关操做以后,右侧菜单栏下都会出现相应的SQL命令,说明phpMyAdmin都是将咱们的点击操做转换成了相应的SQL命令,而后交与MySQL执行。

让咱们尝试下向movie表中插入数据。在左侧中点击douban数据库中的movie表,选择右侧菜单栏中的Insert,依次在title、url、summary、score的Value中填写对应的值,id留空。若是须要同时插入两条数据,则取消勾选ignore并填写第二条数据的对应值。若是须要同时插入更多数据,则在底部的Continue insertion with后选择相应的行数,并依次填写相关数据。数据所有填写完毕后,点击页面下方的Go,便可进行数据插入操做,在菜单栏下也能够看到对应INSERT命令。以后再点击Browse,便可查看刚插入的数据。

总而言之,phpMyAdmin是一款简单轻量好用的Web工具,它提供的功能虽然有限,但都是管理MySQL所需的最为核心的功能,所以更容易上手,不会由于功能太多反而致使眼花缭乱。

本地软件

相对于phpMyAdmin等Web工具,本地数据管理软件链接更稳定、功能更强大,例如Navicat Premium,Mac OS版本的软件界面以下图所示。

Navicat支持MySQL、Oracle、PostgreSQL、SQLite、SQL Server、MariaDB等多种数据库,在数据库和数据表之上还有数据链接(Connection)这一律念,由于Navicat能够记录并链接多个主机上的数据库,而phpMyAdmin做为一种Web工具仅能链接本地数据库。

让咱们来尝试新建一个链接。点击左上角的Connection,选择MySQL,在弹出的对话框中依次填入链接名称、主机地址、端口、用户名、密码等信息,其中基于MAMP安装的MySQL主机地址即为localhost,点击OK便可新建一个链接。固然,新建链接时还能够涉及到更多配置内容,这里就不展开讲了。

新建链接后,在Navicat软件界面的左侧便可看到当前已存在的所有链接,双击链接名称便可查看链接下存在的数据库,双击数据库名称便可创建数据链接,并查看数据库下存在的数据表。在链接名、数据库名、数据表名上右键,都会出现一系列可执行的操做,例如在数据库名和数据表名的右键菜单里,都有Execute SQL FileDump SQL File两项,分别对应数据库级别和数据表级别的导入和导出操做。

总的来讲,Navicat功能更强大,使用门槛也更高,毕竟可点击的按钮、可配置的选项、可执行的操做都远远更多。我我的的习惯是,使用phpMyAdmin完成新建数据库、新建数据表、定义表字段等操做,由于phpMyAdmin简单轻量,但又足以完成这些任务;使用Python代码对数据表进行CURD操做,由于项目中涉及的数据记录可能很是多,因此用Python代码处理天然是最高效和灵活的选择;当须要导入导出大量数据,或者导入导出须要对涉及字段进行灵活配置时,则使用Navicat完成复杂的导入导出任务。

因此,我首先在本机上编程并将数据库和数据表整理好,在本地Web环境上实现Web项目和数据库的交互,而后将数据库导出并导入到云端服务器上的MySQL,最后将Web项目也部署到服务器上,便可完成一次数据项目的开发。

至于如何使用Python来操纵MySQL数据库,将在下一节中进行讲解。

视频连接:MySQL使用方法

若是以为文章不错,不妨点一下左下方的喜欢~

相关文章
相关标签/搜索