MySQL数据库基础

数据库概念

数据库是一个软件(是一类软件):这一类软件功能就是"管理数据".实现数据库软件的内部,会广泛的使用到各种数据结构.
数据库管理的数据一般保存在硬盘上.也有少数数据库,是把数据存在内存中的(Redis,Tair…)
MySQL就是一个具体的数据库软件.MySQL这个数据库,是一个"客户端-服务器"结构的程序.
主动发起请求的一方,称为客户端.
被动接受请求的一方,称为服务器.

客户端给服务器发送的数据,称为“请求".
服务器给客户端返回的数据,称为"响应"
通过SQL来操作"数据库”,此处的数据库指的是一个MySQL服务器上,所管理的一个独立的数据集合.
一个独立的分组(数据集合)就称为是一个数据库.一个MySQL服务器上可以管理多个数据库.

内存和外存的区别

1.内存的存储空间较小(8G,16G),外存的存储空间较大(512G,1T).
2.内存的访问速度快,外存的访问速度慢.(大概要差3-4个数量级).
3.内存成本高,外存成本低.
4.内存中的数据,断电后消失.外存中的数据,断电后还在.

一、数据库基本操作

1.1 显示当前的数据库

show databases;

在这里插入图片描述

1.2 创建数据库

create database 数据库名字;

在这里插入图片描述

数据库的名字,可以随便起,但是不能是SQL中的关键字.(如果实在要使用关键字,可以使用``引起来(esc下面,1前面的那个键)).

  • 如果系统没有db_test2的数据库,则创建一个名叫db_test2的数据库,如果有则不创建:
create database if not exists db_test2;

在这里插入图片描述

create database if not exists db_test2 character set utf8mb4;

character set:指定数据库采用的字符集.

utf8mb4:这里是数字和汉字的对应关系,表格是存在多个版本的.常用的主要是两个版本:1.GBK , 2.UTF-8
这是当前最主要使用的汉字编码方式.

1.3 使用数据库

use 数据库名;

在这里插入图片描述

1.4 删除数据库

数据库删除以后,内部看不到对应的数据库,里边的表和数据全部被删除.

drop database [if exists] 数据库名;

在这里插入图片描述

二、常用数据类型

MySQL, Oracle, SQL Server都是按照表格来组织.称为"关系型数据库"
Redis,HBase, MongoDB不要求按照表格方式组织(类似于文档/键值对)称为“非关系型数据库".
一个数据库中,可以有很多个数据表.
每个数据表有很多行.每一行称为是一条"记录",每一行又有很多列,每一列称为是一个“字段".
MySQL这样的数据库,就要求每一行这里的列都是一致的.(第一行是三列,第二行也是三列-….每一行都是三列.第一行的第一列是一个整数,第二行的第一列也是一个整数……第一行的第二列是一个字符串,第二行的第二列也是一个字符串…)

为了描述这个数据表中的列的信息,在创建数据表的时候,就需要指定"表头"(表头就是一个表格第一行的那个描述信息).

2.1 数据类型

分为整型和浮点型:

数据类型大小说明对应java类型
bit[(m)]m指定位数,默认为1二进制数,M范围从1到64,存储数值范围从0到2^M-1常用Boolean对应BIT,此时默认是1位,即只能存0和1
tinyint1字节Byte
smallint2字节Short
int4字节Integer
bigint8字节Long
float(M,D)4字节单精度,M指定长度,D指定小数位数。会发生精度丢失Float
double(M,D)8字节Double
decimal(M,D)M/D最大值+2双精度,M指定长度,D表示小数点位数。精确数值BigDecimal
numeric(M,D)M/D最大值+2双精度,M指定长度,D表示小数点位数。精确数值BigDecimal

2.2 字符串类型

数据类型大小说明对应java类型
varchar(size)0-65535字节可变长度字符String
text0-65535字节长文本数据String
mediumtext0-16777215字节中等长度文本数据String
blob0-65535字节二进制形式的长文本数据Byte[]

varchar可以根据实际需要,来指定要占用多少空间(SIZE的单位是字符)一个字符可能是由多个字节构成的.
BLOB用于表示二进制的数据.mp3文件, jpg文件,.class…都属于二进制文本件.txt,java,.c都属于文本文件.

2.3 日期类型

数据类型大小说明对应java类型
datetime8字节范围从1000到9999年,不会进行时区的检索及转换.java.util.Date. java.sql.Timestamp
timestamp4字节范围从1970到2038年,自动检索当前时区并进行转换。java.util.Date. java.sql.Timestamp

三、表的操作

需要操作数据库中的表时,需要先使用该数据库:
在这里插入图片描述

3.1 创建表

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

示例:
在这里插入图片描述
创建表的时候,可以使用comment来给某个列后面加上注释.
在这里插入图片描述

在代码中表示"”一般有两种方式:
1.使用Decimal/BigDecimal
⒉使用int(单位是分即可)这是一个常见的手段~(运算效率要比 Decimal高很多)

3.2 查看表

show tables;

示例:
在这里插入图片描述

3.3 查看表的结构

desc 表名;

在这里插入图片描述

3.4 删除表

drop table [if exists] 表名;

示例:
在这里插入图片描述


以上.
  • 24
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 20
    评论
评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值