这是全栈数据工程师养成攻略系列教程的第十一期:11 数据库 MySQL使用方法。javascript
咱们已经掌握了如何用MAMP或WAMP在我的电脑上搭建Web环境,其中包含了用于存储数据的关系型数据库MySQL,如今就让咱们来了解下如何使用MySQL。php
MySQL中能够存在多个数据库(Database),每一个数据库对应一个相对独立的项目。一个数据库中能够包含多个数据表(Table),不一样的数据表用来存储不一样用途的数据。举例来讲,能够新建一个chat
数据库用于存储和某一社交网站相关的数据,里面有user
和message
两个表,分别用来存储用户基本信息、用户之间的聊天记录。须要注意的是,数据库名和数据表名最好都使用英文名称。java
数据表和Excel中的表格很相似,既有行也有列,即咱们以前说起的二维表结构。以user
表为例,每一行记录了一名用户的基本信息,每一列即用户信息的一个字段,例如姓名、性别、职业等。mysql
MySQL涉及的操做包括新建或删除数据库,以及在一个已有的数据库中新建、清空或删除数据表。除此以外,主要就是在一个已有的数据表中对数据进行CURD操做,即Create
、Update
、Read
、Delete
,分别对应插入数据、更新数据、读取数据、删除数据。接下来咱们将了解,如何使用命令行、Web工具、本地软件、Python代码四种方法,来操做MySQL数据库。web
能够在命令行中输入如下命令,按回车后再输入MySQL数据库的密码,便可进入MySQL提供的交互命令行,相似Python的交互编程环境,每敲一行MySQL语句,按回车便可执行。这种方法仅适用于单独安装MySQL数据库,不适用于MAMP或WAMP,并且对代码能力要求较高,故不推荐使用。sql
mysql -u root -p复制代码
Web工具是指在MySQL内核之上,基于Web开发出的图形化操做界面。只要在网站上点一点,便可完成对MySQL的各种操做。其中最为经常使用的一种即phpMyAdmin,基于PHP开发,简单、轻量、好用,在MAMP或WAMP中也会自带phpMyAdmin。数据库
在MAMP的欢迎页面上能够找到使用phpMyAdmin管理MySQL的连接,点击后将看到如下界面,左侧中所显示的是当前已存在的数据库,右侧中则显示了菜单栏和对应的内容。编程
首先让咱们来尝试下如何新建数据库。默认状况下会存在三个数据库,information_schema
、mysql
和performance_schema
,这三个数据库是MySQL自带的,不要去动它们。点击左侧中的New
,或者右侧菜单栏中的Databases
,均可以在右侧中看到当前已存在数据库的一些基本信息,以及进行数据库新建操做。服务器
输入新建数据库的名称,推荐使用全英文。这里咱们输入douban
,由于须要将以前爬取的豆瓣电影数据存入数据库中。选择Collation
为utf8_general_ci
,而后点击Create
便可。less
新建好数据库后,因为数据库为空,会自动跳到新建数据表的页面。给数据表取个英文名,这里输入movie
,而后选择表的列数,默认为4,点击Go
进入下一步。即便数据表最终不是4列也不要紧,多的列会自动忽略,列数不够一样能够继续加,因此不用担忧。
接下来须要配置每一列的详细内容,包括Name、Type、Length/Values、Default、Collation、Attributes、Null、Index、A_I、Comments。咱们首先填写第一个字段,每一个数据表都须要一个主键即id,不一样的行具备惟一不一样的id,用于进行彼此区分。
id
;INT
便可;INT
类型的默认长度;PRIMARY
,即主键,若是有弹窗则点击Go
便可;接下来再填一下电影的标题字段,Name输入title
,Type选为VARCHAR
,Length/Values输入255
,由于255个字符对于标题而言足够了,其余选项不用管。Type的可选值包括数值类Numeric、日期时间类Date and time、文本类String、空间类Spatial四大类,以上所使用的VARCHAR
是一种长度可变的字符串,使用时须要设置最大长度。若是须要存储更长的文本,能够考虑TEXT
、MEDIUMTEXT
、LONGTEXT
等。
同理,继续填写电影的连接字段,填入url
、VARCHAR
和255
;对于电影的简介字段,因为电影简介可能会很长,因此Name输入summary
,Type选择TEXT
;至于电影的评分字段,因为评分能够是小数,因此Name输入score
,Type选择Numeric类中的FLOAT
。若是须要继续增长字段,输入须要增长的列数并点击Go
,而后根据字段特征完善Name、Type和Length/Values便可。
字段信息所有填写完毕后,点击右下方的Save
便可完成数据表的新建,左侧中会选中刚才新建的数据库和数据表,右侧中会出现新的菜单栏。点击Browse
能够查看数据表内的数据记录,点击Structure
能够查看数据表的结构,即各项字段的配置内容,点击SQL
能够在当前数据表上执行SQL命令,点击Insert
能够向当前数据表中插入数据记录,点击Export
和Import
分别能够导出和导入数据表,点击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 File
和Dump SQL File
两项,分别对应数据库级别和数据表级别的导入和导出操做。
总的来讲,Navicat功能更强大,使用门槛也更高,毕竟可点击的按钮、可配置的选项、可执行的操做都远远更多。我我的的习惯是,使用phpMyAdmin完成新建数据库、新建数据表、定义表字段等操做,由于phpMyAdmin简单轻量,但又足以完成这些任务;使用Python代码对数据表进行CURD操做,由于项目中涉及的数据记录可能很是多,因此用Python代码处理天然是最高效和灵活的选择;当须要导入导出大量数据,或者导入导出须要对涉及字段进行灵活配置时,则使用Navicat完成复杂的导入导出任务。
因此,我首先在本机上编程并将数据库和数据表整理好,在本地Web环境上实现Web项目和数据库的交互,而后将数据库导出并导入到云端服务器上的MySQL,最后将Web项目也部署到服务器上,便可完成一次数据项目的开发。
至于如何使用Python来操纵MySQL数据库,将在下一节中进行讲解。
视频连接:MySQL使用方法