【MySQL系列】第一节.MySQL数据库基础

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、数据库的介绍
  •       1.1什么是数据库
  •       1.2数据库的分类
  • 二、数据库的结构
  •       2.1数据库的客户端和服务器
  •       2.2数据库的服务器是如何组织数据的?
  •       2.3MySQL服务器把数据存储在硬盘上
  • 三、数据库的操作
  •       3.1创建当前数据库
  •       3.2显示当前数据库
  •       3.3使用数据库
  •       3.4删除数据库
  • 四、数据库的常用数据类型
  •       4.1数值类型
  •       4.2字符串类型
  •       4.3日期类型
  • 五、表的操作
  •       5.1创建表
  •       5.2查看有哪些表
  •       5.3查看表的结构
  •       5.4删除表
  •  总结


前言

今天我们进入到MySQL的学习当中,MySQL是我们Java学习以及成为一名优秀的程序员所必须具备的技能,所以必须要学好这一门课程。

主要学习内容:

1.数据库基础操作.(以SQL语句为核心)SQL是一门编程语言,但是用起来还比较简单

2.数据库的底层原理.(不做过多介绍,主要是围绕常见面试题)

3.3.数据库编程.(使用Java代码来操作数据库)

接下来就让我们一起走进MySQL的基础吧!!!!!


提示:以下是本篇文章正文内容,下面案例可供参考

一、数据库的介绍

1.1什么是数据库

定义:数据库,就是一类软件专门负责管理数据(增删改查,后面内容会讲到

数据结构和数据库他俩有啥关系?

 数据结构,是一个"抽象的学科"

 数据库,是一类"具体的软件"

实现数据库的时候,背后也要应用到很多的数据结构~

1.2数据库的分类

分类:

1.MySQL(课堂上使用的)

MySQL数据库就是本专栏介绍的内容~~

开源、免费~~

现在已经被Oracle收购了~~

2.Oracle数据库

Oracle数据库 是世界上最强的数据库~~

但是,它是收费的,而且收费还是挺贵的~~

厂商也叫做Oracle~~

现在也是由Oracle来负责维护Java~~

3.SQL Server数据库

SQL Server数据库,由 微软(搞Windows,office的公司) 研发的数据库~~

4.SQLite数据库

SQLite数据库,是世界上"装机量"最大的数据库~~

即使有很多人没有听说过~~

其实,各种安卓上机器自带的内置数据库就是SQLite数据库~~

主要的特点就是 小巧轻量~~

其他数据库 一不小心 就达到 以G为单位,而它仅仅不到几百K~~

ps:

虽然 有这么多的数据库~~

但是 不管哪一个数据库~~

其实最核心的东西~~

都是 SQL(编程语言)~~

掌握了SQL,未来无论去使用哪个数据库,都可以快速的上手~~

虽然 不同的数据库,支持的SQL语法都略有差异~~

但是,90%以上的都是相同的~~

二、数据库的结构

2.1数据库的客户端和服务器

MySQL是一个"客户端-服务器"结构的程序

定义;

客户端:主动的一方就是客户端

服务器:被动的一方就是服务器

两者间的关系:

一个服务器同─时刻可能要给多个客户端提供服务

因为服务器不确定客户端啥时候来,服务器往往要长时间运行,甚至7*24小时运行

客户端给服务器发送的数据,称为"请求"(来一份蛋炒饭)

服务器给客户端返回的数据,称为"响应"(端上来一碗蛋炒饭)

客户端:

【MySQL系列】第一节.MySQL数据库基础_第1张图片

 服务器:

【MySQL系列】第一节.MySQL数据库基础_第2张图片

换句话说,安装了MySQL,就是 既安装了客户端(黑框框),也安装了服务器

关系图示;

【MySQL系列】第一节.MySQL数据库基础_第3张图片

MySQL客户端和MySQL服务器,可以在同一个主机上,也可以在不同的主机上~~

实际工作中,更常见的是 客户端和服务器 在不同主机上~~

在当前的学习阶段,就直接安装在一个主机上了~~

虽然是同一个主机,但是仍然是通过网络进行通信的~~

对于MySQL来说,存储和管理数据,都是由 MySQL服务器 来负责的~~

 ps:

当然,如果把客户端和服务器都部署在一个主机上了,但是电脑没有联网。这个时候客户端依然能访问服务器

如果插上网线,连接wifi,网络是通畅的,此时电脑可以通过网络访问其他的主机

如果电脑没有插网线,连不上网,那么此时电脑只是访问不了别的主机,但是自己还是能访问自己的

2.2数据库的服务器是如何组织数据的?

一个MySQL服务器上面可以包含多个"数据库",

此处的"数据库"其实是"数据集合",这里面就放了 一些有关联关系的数据

举例说明:

可以理解成,一栋楼 里面有好几家餐厅,餐厅之间并不影响~~

餐厅里面的菜品 就类似于 数据库里面存的数据表~~

 数据表:

【MySQL系列】第一节.MySQL数据库基础_第4张图片【MySQL系列】第一节.MySQL数据库基础_第5张图片

 

 每一个表里有很多行,每一行称为"一条记录"; 

每一行里有很多列,每一列表示不同的含义,每一列称为一个"字段"(field)

ps:

数据库 整体的一个结构:

数据库—>数据表—>行—>列

MySQL也好,Oracle也罢,只要是关系型数据库,都是按照上述的结构来组织数据的~~

2.3MySQL服务器把数据存储在硬盘上

重点:内存和外存(硬盘)区别!!

1.内存存储空间相对较小,硬盘存储空间较大

2.CPU读取内存速度快,读取硬盘速度慢.(一般会差3-4个数量级)

(硬盘也有机械硬盘和SSD,SSD 会比机械硬盘读写速度快很多,但是仍然比内存要慢上很多)

3.内存比硬盘贵!!!(如果你想要一个大内存,也可以,只要充钱!!)

4.内存上的数据,断电后丢失.硬盘的数据,断电后不丢失!持久化

三、数据库的操作

3.1创建当前数据库

语法格式;

create database 数据库名;

例如:创建一个名为mysql1的数据库;

注意:

1.create,database都是MySQL中的关键字,单词间有空格

2.关键字不区分大小写

3.分号不要遗忘,是英文分号!编程里面基本没有中文符号

ps:

当然,有的时候也会有创建错误,或者啥啥错误的情况,不要慌,下面也会有错误的提示~~

大部分的错误提示 都是非常清楚的,已经告诉过哪里有问题了~~

3.2显示当前数据库

语法格式;

show  databases;

例如:显示MySQL中创建了的数据库;

【MySQL系列】第一节.MySQL数据库基础_第6张图片

 注意:

databases是复数形式,不要搞错了;(此处显示数据库有多个,所以是复数)

3.3使用数据库

想要 针对某一个数据库进行具体的操作,如 各种增删改查 数据库,就需要先选中数据库:

语法格式;

use  数据库名;

例如:选中刚刚创建的数据库mysql1;

 

ps:

在对某一个数据库 进行操作时,必须得要选中这个数据库~~

类似于 RTS游戏~~

需要先选中某个单位,再释放技能~~ 

3.4删除数据库

数据库删除非常危险!!!

数据库删除非常危险!!!

数据库删除非常危险!!!

数据库删除非常危险!!!

重要事情说几遍!!!!!

语法格式;

drop database 数据库名;

例如:删除刚创建的数据库mysql1;

此时再查看剩余的数据库:

【MySQL系列】第一节.MySQL数据库基础_第7张图片

现在就只有系统自带的数据库了

注意:

删除数据库操作十分危险

删库其实是把库里的数据都删除了

千万不要在公司的服务器上删除数据库,尤其是不要在生产环境上进行删除

四、数据库的常用数据类型

介绍:

MySQL是一据个"关系型数据库",典型特点就是 通过表的形式来组织数据

即 每一行,其列数都是一样的;每一列,其数据类型都是相同的

数据类型一方面 一方面能够使我们对数据进行处理,一方面也能够对数据进行校验和检查

4.1数值类型

数值类型 包含了 整型和浮点型:

【MySQL系列】第一节.MySQL数据库基础_第8张图片

 ps:

decimal就出现了相比于float和double,decimal相当于通过字符串的方式来表示浮点数,

优势是可以更加精确的表示浮点数、精确计算

但是劣势就是 计算时消耗的时间更多,存储空间也更多

除非是特别需要,才考虑使用decimal

4.2字符串类型

【MySQL系列】第一节.MySQL数据库基础_第9张图片

ps:

varchar(50),这个字段最多存50个字符,也可能是更短的

这个是动态的,根据存入的数据长度来自适应空间

注意:

字符,不是字节!!!

一个字节,就固定是8bit~~

一个字符,就不一定了(取决于具体的字符编码)

前三个数据类型存的文本数据;最后一个blob储存的是二进制数据;

4.3日期类型

 

ps:

timestamp翻译过来就是 时间戳

时间戳:以 1970 年 1 月 1 日 0 时 0 分 0 秒 作为基准时刻,计算当前时刻和基准时刻的秒数之差

计算机中表示时间 都是用时间戳来表示的

timestamp的范围是从1970年到2038年,那么到了2038年以后,很多程序估计要失效了

所以为了防患于未然,一般都用datetime

注意:

虽然 有这么多的数据类型,但是并不是每一个都是需要记住的:

所需要记住的类型有:

int      bigint      double      decimal      varchar      datetime

五、表的操作

5.1创建表

语法格式:

create table 表名(列名 类型,列名 类型......)

例子:在student数据库中创建一个学生表classmates有id和name;

注意:

1.要想创建表,就需要先有一个数据库,并且选中数据库!!!!!! 

【MySQL系列】第一节.MySQL数据库基础_第10张图片

 

2.创建表的时候,必须要明确表结构,

即 有哪些列,每个列是啥类型,叫啥名字

3.同一个数据库中,不能有两个表 名字相同,否则会出错

 

4.创建表的时候,表名或列名,不能和SQL的关键字冲突

但是,如果非要拿关键字作为表名,也不是不可以

可以使用 反引号` 来引起来

 

 

 

5.2查看有哪些表

语法格式:

在选中数据库的前提下,可以使用:

show  tables;

例如;查看在student数据库的表。

【MySQL系列】第一节.MySQL数据库基础_第11张图片

 5.3查看表的结构

语法格式:

desc 表名;

例如:查看表classmates的结构;通过这个命令行,可以查看这个表里面的列和类型

【MySQL系列】第一节.MySQL数据库基础_第12张图片

 ps:

1.fleld 列数,表示这张表有 id 和 name 两列

2.int(11)的意思不是说占11个比特位,int就是固定4个字节,32个比特位;11表示的是打印数字的时候,显示数据的宽度最大是11位数;11只影响在客户端中的显示,不影响数据的存储和计算

3.varchar(20)表示 约束存储的时候最多存20个字符

4.NULL表示 这一列是否可以为空(YES,允许为空;NO,不允许为空)

5.Default指的是 默认值

6.desc是descible的缩写;

5.4删除表

语法格式:

drop   table  表名;

例子;删除创建了的classmates表;

【MySQL系列】第一节.MySQL数据库基础_第13张图片

注意:

删表的操作十分危险,后果还要严重!!! 

删表的操作十分危险,后果还要严重!!! 

删表的操作十分危险,后果还要严重!!! 

表面上来看,一个库里包含很多表;删库,就会把所有的表都带走

但是,如果真的删库了,程序在运行的时候 只要涉及到数据库操作,100%报错

就会第一时间发现问题

但是,如果是删表(如100个表,删除1个表),程序也不一定是第一时间报错

虽然程序可能跑起来,但是最终跑的结果肯定是错的

总结:

今天我们学习有关MySQL的基础内容,对MySQL有了初步的认识,能够进行一些简单的MySQL的操作,这是一门很重要的技能,希望在接下来的学习中大家能够好好学习。也希望能得到各位兄弟的关注与支持,让我们一起加油!!!!!

z

你可能感兴趣的:(MySQL系列,mysql)