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,精度高,运算速度慢,效率低,计算准