本章主要学习MySQL的数据类型与表操作,并且会有MySQL相关的计算机知识
MySQL客户端与服务器直接是进行网络通信的,当网络通顺时,可以通过客户端访问其他主机上的服务器,但是当网络不通顺时,我们虽然不能访问其他主机上的服务器,但是我们可以访问自己主机的服务器.
reason:
操作系统在内部做了特殊处理,通过网卡与操作系统虚拟出来一个特殊的网卡->“环回网卡”.
drop database 数据库名;
删除数据库操作,十分危险,当然在日常学习的过程中,删除自己电脑上的数据库无伤大雅,最严重的后果也就重装一下电脑.
但是在实际工作中,我们可能会接触到四种环境:
办公环境:也就是公司为你分配的笔记本电脑,日常的工作中都是使用这个电脑来完成的
开发环境:一般是比较大型的主机(例如:20核128G内存这种电脑),因为有的代码开发十分吃配置
测试环境:给测试员工对程序进行测试所使用的环境
生产环境:即程序部署在的服务器,供软件的用户所访问.
以上四种环境中,如果只是在前三种进行删库操作的话,最坏的结果就是影响团队的进度以及团队的成员需要加班重新编写数据,但是如果在生产环境中不小心进行了删库操作,那就会导致用户的数据缺失,造成实际性的损失.
因此谨慎进行删库操作,无论是学习还是工作
如何避免出现删库操作导致的损失?
权限: 为不同等级的程序员设置对数据库的访问权限,避免出现误删库的行为.
备份:对每次操作的数据都提前进行备份,这样即使出现了误删库的操作,也能及时补救
恢复:在没有备份的前提下,还可以进行恢复.MySQL的数据是存储在硬盘中的,当我们进行删库操作时,操作系统会将数据存储的所在 硬盘分盘 标记为无效硬盘,等待其他数据的覆盖,只需要在还没有其他数据覆盖的时候,交给硬盘产商进行数据恢复,一般是可以找回大部分的,但是如果没有及时发现,导致该无效硬盘的数据被覆盖,那就数据永久丢失了.
切记不要在生产环境上进行删库操作
分为整数类型与浮点数类型
bit[(M)]
M为指定位数,默认为1
用于表示二进制数,M的范围为1-64,表示的大小为0到2^M-1.
tinyint
大小为1个字节,对应java类型byte
smallint
大小为2个字节,对应java类型short
int
大小为4个字节,对应java类型int
bigint
大小为8个字节,对应java类型long
float(M,D)
M表示最大有效数字,D表示小数点后几位.会发生精度丢失(IEEE规范)
大小为4个字节,对应java类型float
double(M,D)
M表示最大有效数字,D表示小数点后几位.会发生精度丢失(IEEE规范)
大小为8个字节,对应java类型double
decimal(M,D) , numeric(M,D)
M表示最大有效数字,D表示小数点后几位,精度准确
虽然这个数据类型可以做到精度准确,但是也会带来计算时消耗的时间多,存储空间更大的问题.
大小为 M/D+2,对应java类型:BigDecimal
回顾:
一个字节表示的整数: -128到127 0到255
两个字节表示的整数:-32768到32767 0到65535
四个字节表示的整数:-21亿到21亿 0到42亿九千万
MySQL无字符类型,只有字符串类型
varchar(size) 可变长字符串
size的取值为 0-50. (最多存储50个字符)
大小为0-65535个字节
text 长文本数据
大小为0-65535个字节
mediumtext 中等长文本数据
大小为0-16777215
blob 二进制形式的长文本数据
大小为0-65535个字节
datetime
大小为8个字节
范围从1000到9999年,不会进行时区的检索与转换
timestamp
大小为4个字节
范围从1970到2038年,自动检索当前时区并进行转换
int
bigint
double
decimal
varchar
datetime
create table 表名(列名 类型,列名 类型,.....);
要想创建表,需要有一个数据库并选中,在数据库内创建表.
例如创建一个学生表需要的操作:
create table student(id int,name varchar(20));
可以用comment增加字段说明.
create table student(
id int comment '学生编号',
name varchar(20) comment '学生姓名'
);
注意:
不能创建两个表名相同的表,会报错.
当我们需要使用关键字作为表的名称时,我们需要对表名用反引号括起来.
show tables;
desc 表名;
drop table 表名;
删表操作依然十分危险,比删表的危险只多不少,
在实际开发过程中,如果删库,程序会第一时间报错,但是删表就不一定了,这可能会导致程序数据计算混乱,导致出现重大损失甚至重大安全事故,
因此实际开发中删表操作谨慎使用
本章主要介绍了SQL的数据类型与MySQL的表操作,对于删库删表操作要慎重使用.