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

 作者简介:大家好,我是未央;

博客首页:未央.303

系列专栏:Mysql系列

每日一句:人的一生,可以有所作为的时机只有一次,那就是现在!!!

前言

一、数据库的介绍

1.1 什么是数据库

1.2 数据库的分类

二、数据库的结构

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

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

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

三、数据库的操作

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.数据库编程.(使用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客户端和MySQL服务器,可以在同一个主机上,也可以在不同的主机上

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

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

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

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

 ps:

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

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

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


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

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

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

举例说明:

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

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

 数据表:

​​

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

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

ps:

数据库 整体的一个结构:

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

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


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

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

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中创建了的数据库;

 注意:

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


3.3 使用数据库

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

语法格式:

use  数据库名;

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

ps:

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

类似于 RTS游戏

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


3.4 删除数据库

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

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

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

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

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

语法格式:

drop database 数据库名;

例如:

删除刚创建的数据库mysql1;

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

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

注意:

删除数据库操作十分危险

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

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

数据库的常用数据类型

介绍:

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

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

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

4.1 数值类型

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

 ps:

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

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

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

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


4.2 字符串类型

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.要想创建表,就需要先有一个数据库,并且选中数据库!!!!!! 

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

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

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

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

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

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

 


5.2 查看有哪些表

语法格式:

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

show  tables;

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


 5.3 查看表的结构

语法格式:

desc 表名;

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

 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表;

注意:

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

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

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

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

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

就会第一时间发现问题

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

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

总结

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

  • 20
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 12
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值