本文主要介绍Mysql最基础知识:Mysql基本概念。
1.1 数据库基础
1.1.1 简介
数据库,从字面意思来理解就是一个用来装数据的容器。每天我们都在和数据库打交道,比如你每天打开APP浏览新闻,浏览微博,这些都是间接的使用数据库。
用专业术语来描述一下数据库概念:一个以某种有组织的方式存储的数据集合。你可以把他理解为一个电脑上的文件夹,里面有序的存着你的东西。
再说一个容易混淆的概念。Mysql
、oracle
这些并不叫数据库,他们应该叫数据库管理系统DBMS
(你大学课堂上经常要背的概念)。他们是帮助你去管理数据库,这点不能混淆了。
现在企业中常用的数据库有下面这些
关系型数据库:
Mysql
、Oracle
非关系型数据库
NoSql
:Mongodb
内存型数据库,键值对数据库:
Redis
其他还有一些,开发常用数据库集合
1.1.2 表
数据库相当于一个文件夹,表就是文件夹内的一个文件,这个文件有点儿像excel
表格文件。当你需要管理一些数据的时候,你要先创建一个excel
文件,然后在里面录入一些数据。数据库的表也是这个意思。
一般来说,在数据库中,一个表内存储的内容大体相似。比如,所有的用户信息存储在一张表。当你再需要存储用户的购买商品信息时候,就需要重新创建一张表,而不是将他们全部堆在一个表中。
每个表都会有自己的名字,和电脑上的文件一样。同一个文件夹内不能有相同的两个文件,同一个数据库内也不能有两个同名的数据表。
在实际开发中你可能会看到如下的表名。
他们具有相同的前缀wp_
,这是为了同一个库中存放不同用途的表而设定的。比如我做个博客,表明都用wp_
开头;我在做个商城,我用shop_
开头,这样互不冲突。
1.1.3 列
先看一个数据表内的结构
表是一个一个的表格组成的,竖直方向一列就是被称为列,也叫字段。一个列存储的内容大体相同,比如你做excel
表格时候,第一列都是姓名,第二列都是年龄一样。
为了便于管理分析数据,在创建字段的时候尽量的需要细化。比如用户有个地址叫:XX省XX市XX区,这个时候不能只创建一个地址字段,而是应该把省市区拆分开创建3个字段。之后数据分析,来自XX省的用户就方便多了。
1.1.4 行
列表示竖着的,行就表示为横着的。比如用户表,第一行表示张三、第二行表示李四,每一行都包含所有的列(也就是字段)。
通常我们把第一行的张三和第二行的李四成为记录。每次多一个用户信息,就会说增加了一条记录。所以,行也被成为记录。
1.1.5 数据类型
数据库为了加快检索速度增加了很多规则,其中给数据定义类型就是其中一条。数据表中的每个字段在创建的时候都需要给定一个类型,比如用来存储数字的就定义为数字类型。储存昵称的就可以使用字符串类型。
这样做既可以优化性能,也可以限定一些输入。比如在用户年龄里面你就不能输入汉字,这样后期处理也特别方便。
1.1.6 主键
数据表中可以存储几条数据,也可以存储几千万条数据。如果我们需要寻找一条数据,少量数据还有办法。但是数据量特别大的时候,我们想要找到一条数据可不是一件容易的事情。所以,在创建字段时候,我们还需要给每一行加一个可以唯一标识该行数据的标识符,也叫主键。比如第一行数据叫1,第二行数据叫2,以此类推。如果我需要找到第123456行记录,只需要找主键为123456就可以了,极大地提高了搜索效率。
关于主键有几个好的建议:
每个行都必须有一个主键,哪怕不需要。方便以后业务拓展管理。
任意两行不能有重复的主键
不能更新主键的值
一条记录被删除之后,不能重复使用它的主键。
1.2 什么是SQL
简介
下面来简介一下操作数据库的语言SQL
。SQL
被称为结构化查询语言,是一种专门为和数据库通信的语言。
和其他语言,比如PHP
,Java
一样,都是程序语言。
SELECT user_name FROM br_user;
我们写了一条很简单的SQL
语句。即使你没有学过也可以大体上理解他的意思,因为他的语句非常的直白。
除了这些,他还有下面的这些优点:
SQL
不是特别为哪一个数据库开发的语言,是一种通用语言,几乎所有的数据库都支持。SQL
特别简单,他的语句基本上和英语结构一致。所以,懂点儿英语就可以直接看懂。故也被成为最应该是高级语言的语言。SQL
虽然语法很简单,但是功能却非常强大。可以检索出非常复杂的数据。
1.3 了解Mysql
1.3.1 简介
数据库在使用中的查询、查找和删除等等操作都是由数据库管理软件来执行。也俗称DBMS
(数据库管理系统)。Mysql
也是一种数据库管理系统。
Mysql
优点:
免费开源,节约成本
性能优异,
Mysql
执行速度十分快操作简单,学习成本十分低。网络上面有大量的社区和文档。
应用广泛,有很多大公司都在使用
Mysql
数据库,比如facebook
、百度、淘宝等等。
当然,Mysql
也有一些缺点,他没有完全支持其他DBMS
提供的功能。但是,活跃的社区都给出了解决办法,Mysql
也在逐步成长。
1.3.2 安装
windows
安装
去Mysql
官网下载Mysql
安装包,下一步下一步安装即可
Linux
下安装
我们只举一个例子,ubuntu
。直接使用自带包管理工具。
sudo apt-get install mysql-server
在安装过程中,mysql
等均会提示设置root
密码。(别随便添,要记住哟!)
1.3.3 常用管理工具简介
phpmyadmin
:著名的web
版本Mysql
管理工具,最适合本地管理Mysql
navicat
:商业版本的Mysql
管理工具,功能十分简单,使用十分方便
workbench
:Mysql
官方提供的管理工具,功能强大,但是相比于navicat
和phpmyadmin
有点儿复杂。有免费版本。
上面3个是常用的,查看更多
1.4 Mysql
使用
1.4.1 连接数据库
Mysql与其他数据库一样,在使用之前都需要登录DBMS
。所以之前你需要提供一些信息来确保登录:
主机名。远程主机可以是IP或者域名;如果
Mysql
安装在本地,可以使用localhost
端口号。一般默认使用
3306
用户名。
密码。这里的密码就是之前安装时候需要你填写的,可能为空
有了这些信息就可以实施登陆操作。如果你使用上面提到的客户端软件登录就十分简单,直接输入即可登录。
如果你使用Mysql
自带的命令行工具登录,则使用如下命令
mysql -u root -p
-u
表示选择登陆的用户名, -p
表示登陆的用户密码,上面命令输入之后回车,会提示输入密码,此时输入密码就可以登录到mysql
。
注意:linux
下面的大部分输入密码操作界面没有任何提示信息,也不会出现***
。所以不要认为键盘坏了啥也输入不了。
1.4.2 选择数据库
当你连接到Mysql
之后,第一步就需要选择数据库,之后才可以进行相应操作。比如建表。
use bidianer;
使用上面的语句选择bidianer
数据库
如果在命令行中,你会看到database changed
提示。
提示:其实mysql
在执行use my_database;
时候并不会返回任何结果。此处的database changed
提示是Mysql
命令行工具操作成功之后给出的提示,而不是数据库给出的提示。
在客户端工具中选择数据库就简单多了,直接双击。
1.4.3 Mysql
数据库和表
刚刚安装完,会发现数据库中已经存在了几张表。这些表是Mysql
内部表,用来存储自身的数据库、表、用户还有权限等等信息。
这些表一般不能直接访问,但是可以使用Mysql
提供的一些命令来获取信息。
比如我们要获取所有数据库信息:
SHOW DATABASES;
我们得到如下结果(我自己的数据库,你们可能不一样)
可以看到我上面命令用大写,但是图中我用小写。所以Mysql
对大小写不敏感。
看最后一行,有具体的行数量和执行的时间。
如果你选择了一个数据库,可以使用下面的命令查看数据库所包含的所有表
USE bidianer;
SHOW TABLES;
在Mysql
命令行输入命令需要在结尾处打上分号。否则Mysql
会跳转到下一行等待继续输入。
SHOW
命令还可以显示一个表的字段信息
show columns from br_attachment;
上图中我们看到第一行att_id
最后有个auto_increment
。这个叫自增长ID
上面我们提到主键不能重复。所以最好的办法就是用数字往上面累加,第一行为id
为1,第二行为2,依次类推。
auto_increment
就是Mysql
提供的一个功能,他会自动为每条记录分配一个ID,并且依次累加。
上面是个插曲,现在我们再说下SHOW
命令还能干啥
SHOW STATUS
,用于显示Mysql服务器运行状态信息SHOW CREATE DATABASE
用来显示创建特定数据库SHOW CREATE TABLE
用来显示创建特定表SHOW GRANTS
显示用户的权限信息SHOW ERRORS
和SHOW WARNINGS
显示服务器错误或者警告消息
星空幻颖,严颖
个人主页:segmentfault