前言:本篇博客介绍MySQL数据库基础,学习MySQL之前要先安装好MySQL,如果还没有安装的小伙伴可以点这里看一下这篇博客,里面有详细的安装教程。
【MySQL】MySQL安装与配置
那我们废话不多说,直接进入主体!
首先我们在安装好数据库之后, 可以直接点击MySQL的命令窗口,也可以从cmd
窗口进入,这里我们在cmd
中进入,然后输入命令mysql -u root ip+密码
进入mysql
(下图马赛克部分为密码)
注意:当我们通过
"SQL"
来操作数据库的时候,此处我们说的数据库是在一个MySQL
服务器上,所管理的是一个独立的数据集合。
也就是这三个表分别管理的学生信息,教职工信息,宿舍信息,这三组数据,从逻辑上关联是非常小的,也就是相互独立的。
接下来就正式进入我们的语句了。
首先我们在进入到MySQL中,先需要做到就是查询,看看服务器上都有哪些数据库,所以这里的第一个命令就是查询数据库:show databases;
在这里我们输入show databases;
之后显示的是这些数据库,这些是系统自带的数据库,然后我们也可以自己创建数据库,后面会有相关命令,这里要注意的是:
;
结尾。SQL
不区分大小写,个人习惯大小写都行。既然上面只有系统自带的数据库,那么我们就要自己创建自己的数据库,创建数据库的命令就是:create database 数据库名;
这样子就创建好啦,我们再次查询一下有什么数据库的时候,就可以看见我们新建的数据库了:
然后我们这里也有要注意的点:
数据库的名字,可以随便取,但是前提是不能是
SQL
中的关键字,如果真的需要用到,就要用反引号括起来。(反引号键在键盘Tab上面,Esc下面)
而对于每一次执行语句后后面有一段:Query OK, 1 row affected (0.01 sec)
,其实意思就是操作成功!用时0.01s。这里的0.01s大家是不是觉得很快,实际上在计算机里面并不算是很快的,这里补充一个知识点:
计算机常用操作的时间大约是:
访问操作 | 时间 |
---|---|
访问网络 | s - ms |
访问磁盘 | ms - us |
访问内存 | us - ns |
操作cpu | ps |
Tip:国际单位制词头经常与秒结合以做更细微的划分,例如
ms
(毫秒,千分之一秒)、μs
(微秒,百万分之一秒)和ns
(纳秒,十亿分之一秒)。
选中数据库的命令是use 数据库名,比如说:use world;
选中哪一个数据库并没有明确的提示,我们也可以多执行几次,多执行几次use 也是没有副作用的。
关于选中数据库也没啥好说的,就很简单的一个操作。
删除数据库的命令是drop database 数据库名,比如:drop database world;
。注意!删库是非常危险的操作,一旦执行成功之后,此时数据大概率就恢复不了的,也就是凉凉了。在公司中切记要小心这种操作,“从删库,到跑路,再入狱”。
注意:删库是把里面的所有数据也删了。
同时,我们在写命令的时候有可能太长,或者需要分段好看一点,这个时候我们只要还没有打分号,回车就是换行继续写命令,比如下面的操作:
创建的库,一般存储在数据库安装目录里面,我们也可以通过查找得到,还是打开我们的服务,找到MySQL,右击属性,找到这个可执行文件的路径
然后找到这个路径复制,复制路径打开就可以找到一个data的文件夹,里面放的就是我们创建好的数据库啦。
类似于excel,数据库中也是很多的数据表。在一个数据库中,可以有很多的数据表,每个数据表有很多行,每一行称为一条"记录",每一行又有很多列,每一列称为是一个"字段",像MySQL这样的数据库,就要求每一行这里的每一列都是一样的。然后为了描述数据表中的列的信息,创建数据表的时候需要指定的"表头",也就是数据类型啦,所以这里要介绍的是数据库的数据类型。
分为整型和浮点型:
数据类型 | 大小 | 说明 | 对应java类型 |
---|---|---|---|
BIT[ (M) ] | M指定位数,默认为1 | 二进制数,M范围从1到64,存储数值范围从0到2^M-1 | 常用Boolean对应BIT,此时默认是1位,即只能存0和1 |
TINYINT | 1字节 | Byte | |
SMALLINT | 2字节 | Short | |
INT | 4字节 | Integer | |
BIGINT | 8字节 | 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和DECIMAL一样 | BigDecimal |
这里我们也展开说说:
这几个就是整形的一些范围不同的几个类型,具体大家应该也了解过,如果还没有了解过这些类型的取值范围,以及一些细节的同学,可以先看一下这篇博客:⭐变量与数据类型详解
然后是下面的浮点型float和double,这里比Java中多了两个参数,就是这里面的M和D,M指定长度,D指定小数位数。与此同时,我们这里有一个更好的表示小数的类型:decimal,decimal能够精确的表示小数。
为什么说是更好的呢?因为平时提到的float和double都是基于
IEEE 754
标准的,基于这套规则最大的问题就是对有些数字,不能精确的表示一个小数,比如在钱的方面,17.0000000002万亿,存储可能是17.0,并且float/double不能直接用==来比较,而要做差判断是否小于预期的误差范围。
这里讲一下decimal的例子:decimal(3,1)就表示这个数据类型是小数的,而且有效位数是三位,小数点后面一位。
数据类型 | 大小 | 说明 | 对应java类型 |
---|---|---|---|
VARCHAR (SIZE) | 0-65,535字节 | 可变长度字符串 | String |
TEXT | 0-65,535字节 | 长文本数据 | String |
MEDIUMTEXT | 0-16 777 215字节 | 中等长度文本数据 | String |
BLOB | 0-65,535字节 | 二进制形式的长文本数据 | byte[ ] |
对于字符串类型,我们基本上都用varchar,后面有一个size变量,根据实际情况来指定要占用多少空间,可以为我们节省空间,或者是是增大空间利用率。
比如:varchar(50)
就是申请50个字符。
在数据库中,也就是我们平时的数据中,都会涉及到日期,那么用什么类型来表示日期呢,有人说有字符串类型,当然是可以了,但是我们如果一不小心写错了日期,或者格式不对,也不知道错了。所以就有了下面的这些日期类型。
数据类型 | 大小 | 说明 | 对应java类型 |
---|---|---|---|
DATETIME | 8字节 | 范围从1000到9999年,不会进行时区的检索及转换。 | java.util.Date、java.sql.Timestamp |
TIMESTAMP | 4字节 | 范围从1970到2038年,自动检索当前时区并进行转换 | java.util.Date、java.sql.Timestamp |
大家是否学过TIMESTAMP的概念,也就苏时间戳。时间戳的概念就是:以1970年1月1日0时0分0秒作为基准时刻,来计算当前时刻和基准时刻的秒数/毫秒之差,到2038年,4个字节的TIMESTAMP就不够用了,类似于这样的问题,计算机一直存在。如千年虫,以前计算机表示年份只有2位,90年还行,91,92…到了00年,完蛋,所以电脑都sb了。
那么对于日期,我们用的就是datetime,比如:date datetime
,这里只是作为展示,后面就会把这些数据类型都集合起来一起使用了。
对于数据库中创建表的操作,命令是create table 表名(列名 类型,列名 类型),比如create table books(id int,name varchar(50));
,注意:在创建表之前,要先选择数据库,也就是use 数据库。
这里的创建表中,我们可以拥有多个列,只需要后面再加上列名+类型就可以了,在指定列的时候,列名在前,类型在后。对于大部分编程语言,都是先类型后变量名,也有的语言定义变量是变量名在前,类型在后(Python,Go),这里还需要注意的一个点是,创建的表只是限制了列,行数不限,多少都行。
查找表的命令是:show tables;
当我们创建完之后,或者使用完其他表之后,忘记了有哪些表或者忘记表名怎么办,这时候就用到我们的查找表,show tables;
会展示这个数据库里面所有的数据表。
上面是查找表,也就是可以看见这个里面有什么表,但看不见表具体是啥样的,如果我们想看一些表里面的结构,就可以使用另一条命令:desc 表名;
这里面就可以查看到,books里面有的列名,数据类型,还有其他信息,大概意思就是:
删除表这个操作也是很危险的!命令为 drop table 数据表名。比如drop table books;
,这个操作也要谨慎执行,删了也有可能恢复不了的!
注释就是在后面写一段话表明这个代码的意思,但并不会执行。这里我们注释可以用几种方法来进行表示:
第一种:#annotate
,就是在井号后面跟的内容都不作为命令执行,只是一行注释文字,下面是正常运行结果:
第二种:-- annotate
,这里也是在–后面的就是注释,注意,这里的–后面有一个空格,然后再到注释,下面是运行结果展示:
这就是注释。
在cmd中,ctrl+c
是中断当前输出,也就是当你敲错了很多命令,或者不想执行这条命令的时候,直接ctrl+c就会跳转到查新输入命令的下一行:
对于输入不了中文,是因为MySQL
中的编码方式默认是拉丁文,需要修改的小伙伴可以看一下这篇文章,详细的说明了如何修改配置来让MySQL可以输入中文。⭐修改MySQL中的编码方式
这就是本篇MySQL数据库基础的全部内容啦,接下来就会进入到MySQL的增删改查了。欢迎关注。一起学习,共同努力!
还有一件事: