资讯专栏INFORMATION COLUMN

MySQL必知必会(1):了解Mysql

陈伟 / 1089人阅读

摘要:比如用户表,第一行表示张三第二行表示李四,每一行都包含所有的列也就是字段。也是一种数据库管理系统。但是,活跃的社区都给出了解决办法,也在逐步成长。

本文主要介绍Mysql最基础知识:Mysql基本概念。

1.1 数据库基础 1.1.1 简介

数据库,从字面意思来理解就是一个用来装数据的容器。每天我们都在和数据库打交道,比如你每天打开APP浏览新闻,浏览微博,这些都是间接的使用数据库。

用专业术语来描述一下数据库概念:一个以某种有组织的方式存储的数据集合。你可以把他理解为一个电脑上的文件夹,里面有序的存着你的东西。

再说一个容易混淆的概念。Mysqloracle这些并不叫数据库,他们应该叫数据库管理系统DBMS(你大学课堂上经常要背的概念)。他们是帮助你去管理数据库,这点不能混淆了。

现在企业中常用的数据库有下面这些

关系型数据库:MysqlOracle

非关系型数据库NoSqlMongodb

内存型数据库,键值对数据库: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 简介

下面来简介一下操作数据库的语言SQLSQL被称为结构化查询语言,是一种专门为和数据库通信的语言。

和其他语言,比如PHPJava一样,都是程序语言。

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管理工具,功能十分简单,使用十分方便

workbenchMysql官方提供的管理工具,功能强大,但是相比于navicatphpmyadmin有点儿复杂。有免费版本。

上面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 ERRORSSHOW WARNINGS显示服务器错误或者警告消息

星空幻颖,严颖

个人主页:segmentfault

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/22243.html

相关文章

  • MySQL必知必会:组合查询(Union)

    摘要:本文参考必知必会工作实践融合组合查询定义在大多数开发中,使用一条查询就会返回一个结果集。在查询结果集中帮我们自动去除了重复的行重复的行是李四,把两条李四合并了。注意由于在多表组合查询时候,可能表字段并不相同。 本篇文章主要介绍使用Union操作符将多个SELECT查询组合成一个结果集。本文参考《Mysql必知必会》+工作实践融合 组合查询 定义 在大多数开发中,使用一条SELECT查询...

    用户83 评论0 收藏0
  • MySQL必知必会(6):常用文本字符串处理函数

    摘要:编程语言中经常使用函数来处理一些字符串,数字或者其他内容。所以如果需要移植要慎重使用函数。该函数有两个参数,第一个参数为字符串,第二个参数为字符串长度。还有另外两个相似函数去除字符串左侧空格去除字符串右侧空格字符串截取函数。 编程语言中经常使用函数来处理一些字符串,数字或者其他内容。MySQL也是一样,可以使用函数来快速达到一系列的目的。 在上一篇文章《计算字段的使用》中,我们提前使用...

    xuxueli 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<