MySQL从青铜到王者第一篇:数据库的认识和数据库的操作与数据库表的部分操作

Posted 森明帮大于黑虎帮

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL从青铜到王者第一篇:数据库的认识和数据库的操作与数据库表的部分操作相关的知识,希望对你有一定的参考价值。

系列文章目录



前言


一、什么是数据库

  • 存储数据用文件就可以了,为什么还要弄个数据库?文件保存数据有以下几个缺点:
  • 文件的安全性问题。
  • 文件不利于数据查询和管理。
  • 文件不利于存储海量数据。
  • 文件在程序中控制不方便。
  • 数据库存储介质:
  • 磁盘。
  • 内存。

为了解决上述问题,专家们设计出更加利于管理数据的东西——数据库,它能更有效的管理数据。数据库的水平是衡量一个程序员水平的重要指标。

二、主流数据库

  • SQL Sever: 微软的产品,.Net程序员的最爱,中大型项目。
  • Oracle: 甲骨文产品,适合大型项目,复杂的业务逻辑,并发一般来说不如mysql
  • MySQL:世界上最受欢迎的数据库,属于甲骨文,并发性好,不适合做复杂的业务。主要用在电商,SNS,论坛。对简单的SQL处理效果好。
  • PostgreSQL :加州大学伯克利分校计算机系开发的关系型数据库,不管是私用,商用,还是学术研究使用,可以免费使用,修改和分发。
  • SQLite: 是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。
  • H2: 是一个用Java开发的嵌入式数据库,它本身只是一个类库,可以直接嵌入到应用项目中。

三、安装MySQL环境

1.查看当前环境是否安装了mariadb

mariadb是mysql的一个分支版本(free)免费版本。

在root用户下通过 rpm -qa | grep mariadb 命令查看:

2.安装mariadb:

yum install -y mariadb
yum install -y mariadb-server
yum install -y mariadb-devel

3.启动mariadb:

service mariadb start 启动

service mariadb restart 重启
service mariadb stop 停止

4.mysql5.7是付费版本

5.mysql5.7和mariadb用来管理若干数据库的软件


  • mariadb启动之后的服务器进程名叫做mysqld
  • 启动mysql的时候,是启动mysqld_safe这个守护进程,由该守护进程将mysqld服务端启动起来的
  • mysqld_safe:mysql服务端的守护进程
  • mysqld:mysql服务端程序
  • 当mysql程序异常崩溃(终止)之后,是由mysqld_safe进程快速重新启mysqld服务端进程

6.异常场景:

启动报错:一般情况下,都是/var/lib下的mysql文件夹的内容和启动的服务端程序不匹配

解决方案:将mysql文件夹重命名,再重启

四、连接MySQL服务端


(1)navicat(可视化的数据库连接软件)
(2)mysql(客户端)
 ① 客户端mysql和服务端mysqld的关系如下图所示:

② 服务端mysqld连接层

Ⅰ. 建立连接

  • 客户端和服务端在同一台机器,本地域套接字(AF_UNIX),一台机器当中的两个进程间通信
  • 客户端和服务端不在一台机器,TCP协议

Ⅱ. 校验用户名和密码(强校验)
Ⅲ. 校验客户端的IP地址

  • 一个mysqld服务端可以管理多个数据库
  • 数据库在Linux操作系统当中是一个独立的文件夹,文件夹下的内容是和数据表强相关的内容

③ 常见的mysql服务端分层关系


五、数据库的操作

1.连接数据库服务器的命令

mysql -u [用户名] -p [密码];

2.查看数据库

show databases;

3.进入到具体的数据库

use [数据库名];

4.查看数据库下都有哪些数据表

show tables;

5.创建数据库

create database [数据库名];

6.删除数据库(慎用)

drop database [数据库名];

六、数据库表的操作

1.创建数据库表


create table [表名称](表字段1名称 表字段1类型,表字段2名称 表字段2类型,…);

  • CHARACTER SET: 指定数据库采用的字符集
  • COLLATE: 指定数据库字符集的校验规则(只会影响是否对大小写敏感)
    修改字符集:create database [数据库名] charset=utf8;

    collate:只会影响是否对大小写敏感
    校验规则:
      _ci:对大小写不敏感 eg:create database test1 collate utf8_general_ci;
       _bin:对大小写敏感eg:create database test2 collate utf8_bin;

2.查看表结构命令

desc [表名称] —>查看表结构(表妹一列的具体信息 eg:字段名称,字段类型,属性等)

3.查看创建表的命令

show create table [表名称];

show create table [表名称]\\G;

字符集:决定数据库保存数据的时候采用什么字符集(决定数据库能够存储什么样的数据 eg:英文、中文…)---->一般选择utf8,latin1 采用一个字节表示字符
存储引擎:决定了数据如何进行存储(一般在公司中存储引擎选InnoDB,因为支持事务)
InnoDB存储引擎:

myISAM存储引擎:
   ①users.frm:表结构
   ②users.MYD:表数据
   ③users.MYI:表索引


数据库中的数据是在ibdata1当中进行存储的

4.删除数据库表命令(慎用)

drop table[数据库表名称]

5.全列插入

insert into [表名] valuse(col1caluse,col2valuse,…);

6.多行插入

insert into [表名称] values(1,‘’),(2,‘’);

7.全列查询

select * from table


总结

以上就是今天要讲的内容,本文详细介绍了在云服务器上mariadb的使用和后续数据库表、数据库的操作,数据库提供了大量的方法供我们使用,非常的便捷,我们务必掌握。希望大家多多支持!另外如果上述有任何问题,请懂哥指教,不过没关系,主要是自己能坚持,更希望有一起学习的同学可以帮我指正,但是如果可以请温柔一点跟我讲,爱与和平是永远的主题,爱各位了。加油啊!

以上是关于MySQL从青铜到王者第一篇:数据库的认识和数据库的操作与数据库表的部分操作的主要内容,如果未能解决你的问题,请参考以下文章

Numpy从青铜到王者第一篇

中间件从青铜到王者第一篇: memcache初相识

中间件从青铜到王者第一篇: memcache初相识

Scrapy从青铜到王者第一篇:Scrapy理解

从青铜到王者的路线,mysql视图怎么写

Linux从青铜到王者第二十一篇:Linux网络基础第三篇之数据链路层