MySQL(数据库)

1.数据库?

数据库是管理数据(增删改查CRUD)的软件

MySQL(开源&免费) 是一个数据库软件 (客户端-服务器)结构的软件

客户端服务器通过网络进行通信

客户端(Client):主动发起请求的一方,客户端给服务器发起的数据称为请求(request)

服务器(Server):被动接受请求的一方,服务器给客户端返回的数据称为响应(response)

2.mysql安装

安装mysql服务器和客户端

mysql服务器:真正存储数据的部分 (开始菜单 搜索服务 找到MySql),数据存储在硬盘中

服务器7*24小时运行,(每时每刻)

客户端:

1)官方客户端(自带命令行客户端)

workbench官方提供的图形化的客户端

2)第三方客户端 例:DataGrip

客户端链接成功:

3.相关数据库操作

1)创建数据库

create database 数据库名;

数据库是唯一的,不能创建两个名字一样的数据库

create database if not exists java241120;

此时不会因为数据库同名报错,发现数据库已经存在是不会继续创建数据库的

创建数据库的时候可以手动指定字符集 charset(字符集名字),mysql默认的字符集是拉丁文,不支持中文,(GBK,UTF8支持中文的编码)

不同的字符集,不同的编码方式,汉字占的字节数不同,使用utf8编码汉字通常是3个字节;

使用默认字符集gbk编码,汉字占2个字节

character set charset_name;

2)查看数据表

列出当前的mysql服务器上一共有哪些数据库

show databases;

3)选中数据库

use 数据库名;

针对哪个数据库里的表进行增删改查操作;

4)删除数据库

drop database 数据库名;

删除了database中所有的表,和表里所有的数据;

4.相关数据表的操作(前提:选中数据库)

1)创建表

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

如果表名/列名和关键字一样,要用反引号``来把表名/列名引起来

2)查看该数据库中的所有表

show tables;查看当前选中数据库的所有表;

3)查看指定表的结构

desc 表名;

describe描述;field字段;int(11) 11表示显示的宽度,显示int类型的时候最多占11个字符的宽度;Null YES 允许这一列为空值;Key 约束;Default 默认值;Extra 额外信息;

4)删除表

drop table 表名;

删除表及表中的数据;

5)常见数据类型

|---------------|-----------|-------------------------------|
| 数据类型 | 大小 | 说明 |
| TINYINT | 1字节 | |
| SMALLINT | 2字节 | |
| INT | 4字节 | |
| BIGINT | 8字节 | |
| FLOAT(M.D) | 4字节 | 单精度,M指定长度,D指定小数位数,会发生精度丢失 |
| DOUBLE(M,D) | 8字节 | |
| DECIMAL(M,D) | M/D最大值+2 | 双精度,M指定长度,D指定小数位数,精确数值 |
| VARCHAR(SIZE) | 0-65535字节 | 可变长度字符串,SIZE表示该类型里最多存储几个字符 |
| TEXT | 0-65535字节 | 长文本数据 |
| BLOB | 0-65535字节 | 二进制形式的长文本数据(音乐,图片,视频,属于二进制数据) |
| MEDIUMTEXT | | 中等长度文本数据 |
| DATETIME | 8字节 | 时间日期 |
| TIMESTAMP | 4字节 | 时间戳 |

计算机使用时间戳表示数据:以1970年1月1日0时0分0秒作为基准,计算当前时刻和基准时刻的 秒数/毫秒数/微秒数 之差

decimal,精度高,运算速度慢,效率低,计算准

相关推荐
卷心菜是俺2 分钟前
JVM和数据库面试知识点
jvm·数据库·面试
lfw20192 分钟前
Dapper
数据库
山山而川粤40 分钟前
时间管理系统|Java|SSM|JSP|
java·开发语言·后端·学习·mysql
牵牛老人43 分钟前
Qt调用adb对嵌入式设备的配置文件进行修改,写入多行内容
数据库·qt·adb
A_aspectJ1 小时前
Oracle 数据库中经典函数的用法举例(一)
数据库·oracle
你有抖音吗1 小时前
请说下你对 MYSQL 架构的了解?
mysql·架构
今天不coding1 小时前
MySQL三大日志-Redo Log
数据库·mysql·日志·redo log·mysql日志
流穿1 小时前
ELK系列-(六)Redis也能作为消息队列?(下)
数据库·redis·ubuntu·elk·docker·容器
geovindu1 小时前
Connecting to Oracle 11g Database in Python
数据库·python·oracle
老王笔记1 小时前
MySQL复制问题和解决
数据库·mysql