从零开始学MySQL(三)
经过上两节的洗礼,我们能够连接上服务器,并成功地进入与mysql交互的会话中了。那么现在就可以发起SQL语句,让服务器来执行它了!这听起来很酷吧?接下来,我们先从MySQL的体系以及组成方面谈起,在学习点语法方面的知识。
题外话:建议小伙伴们不要跳过这节。因为在学习语法前呢,明确MySQL的这些相关术语是大有裨益的,这将能起到自然过渡的作用(毕竟,从无到有总是一个循序渐进的过程)。
本文概览:
(一)MySQL的体系结构术语
(二)MySQL数据库的定位和基础知识
(一)MySQL的体系结构术语
① 当我们在使用MySQL时,会用到“至少”两个程序
这是因为,MySQL采用的是“客户端/服务器”体系结构(这里隐式指出,从客户端连接到服务器的首要条件是网络)。还记得我们前面使用什么命令来安装mysql的吗?在那时就已经埋下伏笔了:
sudo apt-get install -y mysql-server mysql-client
在这其中,有一个程序为MySQL服务器,另外一个程序为MySQL客户端。这里介绍一下它们的用途。
① MySQL服务器(mysql-server):我们通常称它为mysqld。mysqld运行在存放数据库文件的那台machine上;它主要负责监听网络上的客户端请求,根据这些请求去访问数据库文件里面的内容,然后再将获取的内容提供给客户端。 ② MySQL客户端(mysql-client):我们通常称它为mysql。mysql可以运行在服务器上,也可以是任意一台将连接参数设为该服务器IP的machine;它主要负责连接到服务器,并向服务器发起查询,以获取查询结果。
在这里需要明确一点,即mysql想要从数据库中拿到什么信息,需要让mysqld去和数据库沟通,而不是越俎代庖。其实从本质上讲,数据库其实是本地文件,而mysqld和mysql是程序,mysqld是负责从本地文件中读取或存入数据而已。
② 别有用途的其他客户端程序
犀利的小伙伴大都应该注意到了,前面用了“至少”一词。下面就简述这两个主要用于管理的客户端程序——mysqldump和mysqladmin。
① mysqldump:主要用来把表的内容导出到文件里。为什么要导出?备份需要或有意将查询结果另存于他处。 ② mysqladmin:主要用来检查数据库服务器的工作状态,以及执行一些数据库管理相关的任务,如通知服务器管关闭。
(二)MySQL数据库的定位和基础知识
在创建数据库和表之前,先了解一下有关数据库的一些术语十分必要。提及数据库,我们就要来确定一下MySQL的立场了。当前的数据库有几大分类,主要分为关系型数据库(RDBMS)和非关系型数据库(NoSQL)。
① 定位
MySQL被划分为RDBMS,字面中的含义即代表了它的用途。这里将它拆分为三部分,即RDBMS → R、DB、MS来解读一下。
① DB(DataBase):说白了,“数据库”等同于我们现实中的“仓库”,但它不是用来囤货的,而是用来 “屯数据屯信息” 的。 ② MS(Management System):什么是管理?无非就是对记录进行“检索、插入、修改、删除”。因此,管理系统是建立在mysql的一个上层应用。通过它,我们可以对多个数据库做到心中有数。 ③ R(Relational):一字道出MySQL数据库的性质。什么是关系?关系是通过将两个以上的表中的共同元素,将这些表 的信息紧密联系起来,形成一个更大的整体(表)。这样子就将散落在各处的数据规整为一个更大的集合,有点解决了“信息孤岛”的意味。虽然说在设计数据库时,这些“信息孤岛”是我们有意为之的,其目的是为了方便日后提高的一些操作性能。
② 基础知识
有人的地方就有江湖,有“库”的地方就有“表”。这里有一条潜在的关系链:数据库(database)>表(table)>列(column)。其中 > 符号表示包含之意。
① 数据库:存储分类数据的仓库。为什么说分类呢?因为数据库中的表都是基于某一个应用的。 ② 表:数据库里的数据集。什么是数据集,基于某个特定目的而搜寻的数据集合。 ③ 列:数据集中某方面单一信息。数据集(表)是先由一个或多个列构成的,只有存储了数据的时候才有行这一说法。每个行均包含了表中所有列的信息,因此又可称为一个“记录”。
从上面可了解到,数据库和表属于容器层面的,列属于细节层面的。但在使用MySQL的时候,我们更多的则是对记录进行处理,比如检索、修改等等。
到此,这一节就结束了。下节我们开始学习语法相关知识!再会。
从零开始学MySQL(三)的更多相关文章
- 从零开始学安全(三十五)●mysql 盲注手工自定义python脚本
import requests import string #mysql 手动注入 通用脚本 适用盲注 可以跟具自己的需求更改 def home(): url="url" list ...
- 从零开始学MySQL(二)
鉴于上节篇幅以安装为主,因此对于调用mysql所需要使用的“命令”只是略微提及.随之而来就会带给读者诸多不解了,因为你会思考,这串长长的字符到底有什么特殊的含义呢?聪明的你可能早就抱着好奇心去“摆渡” ...
- 从零开始学MySQL(四)
上节连接:https://www.cnblogs.com/RajXie/p/10880809.html 上节说到,在创建表的同时,需要给出列的定义.列的定义可展开如下: 列名 列的数据类型 列的一些其 ...
- 从零开始学MySQL(一)
如果您浏览过许多IT类的招聘职位,那么掌握数据库技能的重要性便不言自明了.因JAVA常常与MySQL所挂钩,因此兴起了写博客记载学习的念头,盼与君共勉.然,在进行MySQL语法的学习之前,我们无不面临 ...
- 从零开始学安全(三十三)●Ununtu16 LMAP 环境搭建
sudo apt-get update # 获取最新资源包 sudo apt-get upgrade # 本机软件全部更新 sudo apt-get dist-upgrade # 本机系统软件更新 安 ...
- 从零开始学安全(三十一)●kali 输入 msfconsole 启动报错
解决方法: 实际上是因为没安装就开启了msf,用下面三个命令就解决了 sudo apt-get updatesudo apt-get install metasploit-frameworkmsfco ...
- 从零开始学安全(三十)●使用sqlmap对网站一步步渗透
常规注入步骤第一步注入点-u "url" 判断是否是注入点 有就判断用户的权限第二步获取数据库 所有的 -u "url" --dbs第三步 查看应用程序所有数据 ...
- 从零开始学安全(三)●黑客常用的windows端口
端口可选1-65536 1-1024 预保留端口 留给windows系统服务的 下面是常见的端口对应的服务 1 TCP Port Service Multiplexer 传输控制协议端口服务多路开关选 ...
- 从零开始学JavaScript三(变量)
一.变量 ECMAscript变量是松散型变量,所谓松散型变量,就是变量名称可以保存任何类型的数据,每个变量仅仅是一个用于保存值的占位符. 定义变量时要使用var操作符 如: var message; ...
随机推荐
- perfecto使用
总配置 application.properties env.resources=src/main/resources/common #配置resource文件所在目录,如.loc定位文件 resou ...
- python出现AttributeError: module ‘xxx’ has no attribute ‘xxx’错误时,两个解决办法
运行python程序时,也许会出现这样的错误:AttributeError: module ‘xxx’ has no attribute ‘xxx’: 解决该错误有两种方法 1.手动安装该模块 2.检 ...
- idea 编译 netty 源码
git clone netty 源码,运行 example 报错 全量 mvn compile -DskipTests=true 后,依然报错 手动在 netty-buffer 模块中添加对应的依赖 ...
- web开发(九) 使用javamail进行发送邮件,(使用QQ,163,新浪邮箱服务器)
在网上看见一篇不错的文章,写的详细. 以下内容引用那篇博文.转载于<http://www.cnblogs.com/whgk/p/6506027.html>,在此仅供学习参考之用. 一.发送 ...
- Selenium 2自动化测试实战2(数组与字典)
一.数组与字典 1.数组 数组用方括号([])表示,里面的每一项用逗号(,)隔开 Prthon允许在数组里面任意地放置数字或字符串.需要注意的是,数组下标是从0开始的,所以,lists[0]会输出数组 ...
- Bresenham’s algorithm( 布兰森汉姆算法)画直线
Bresenham直线算法是用来描绘由两点所决定的直线的算法,它会算出一条线段在 n 维光栅上最接近的点.这个算法只会用到较为快速的整数加法.减法和位元移位,常用于绘制电脑画面中的直线.是计算机图形学 ...
- docker容器和宿主机之间复制文件
https://blog.csdn.net/u012416928/article/details/55049063 https://blog.csdn.net/u011596455/article/d ...
- 关于java中设计原则总结(7)
开闭原则: 对于类,模块函数等扩展要开放,对于修改要关闭. 依赖倒置: 接口或抽象是高层,要面向高层编程,不应该面向实现类(实现类是低层)去变成. 单一职责: 对一个类,或者一个功能,只用负责一个职责 ...
- IDEA github 上传项目, 拉取, 删除
1.IDEA登录github账号 settings -> Version Controller -> GitHub 用户名密码登录 或token登录都可以 2.VCS -> impo ...
- mac下mysql重置密码及使用用户和密码登陆
回车后 登录管理员权限 sudo su回车后输入以下命令来禁止mysql验证功能 ./mysqld_safe --skip-grant-tables &回车后mysql会自动重启(偏好设置中m ...