本篇会加入个人的所谓鱼式疯言
❤️❤️❤️鱼式疯言
:❤️❤️❤️此疯言非彼疯言
而是理解过并总结出来通俗易懂的大白话,
小编会尽可能的在每个概念后插入鱼式疯言
,帮助大家理解的.
🤭🤭🤭可能说的不是那么严谨
.但小编初心是能让更多人能接受我们这个概念
!!!
在上一篇中,我们先如何学习数据库的 方法论
展开了激励的讨论, 而从本篇文章开始。小编将带着小伙伴们一起上满满的干货 ,本篇文章的目标主要是掌握对于 数据库
这个 逻辑集合 的 理解和基本的使用的重点详解 💖 💖 💖 💖
数据库的基本操作
常用的数据类型
表的操作
在讲解数据库之前,小编在这里得解释一个概念
就是我们之前谈到的像 MySQL, Oracle 这样的 数据库 ,本质上来说他们都是一种 软件
而我们今天的谈及的 数据库
,本质上是在数据库软件上 组织数据 的一种 “数据集合”
而我们要操作这些数据库,就需要用到我们 MySQL
中的 SQL
语句 , 来进行对 数据库
,数据库的表
, 数据库的各种组成的属性 进行操作。
show databases;
就像这样,我们的 SQL 语句, 是每执行完 一条语句
,就会出现 一个对应结果
这和我们的 学过的 C语言 , Java这样的编程语言
,画风是完全不相同的,他们是需要多条语句联合去搭配,才能实现我们的功能,但我们的 SQL
却不用
show 就是我们 查看当前数据库 的关键标志,
- 在我们
SQL
中,是 不区分大小写的 , 如果小伙伴们有这样
SHOW DATABASES ;
这样子也是可以的, 但小编是习惯来会用小写
SQL
的来 书写和讲解
- 还有一点要注意的是,我们的
SQL
每一个关键字(单词) 之间用空格隔开
,当我们 输完一个SQL 语句时, 必须用 英文的分号 结束
补充
- 像我们学过的
C语言
和Java
这样的编程语言一样,;
一般为一条语句的结束标志
- 这里还要注意咯,我们的
database
后面是要带上s
的
create database [if not exists] 数据库名 charset utf8;
首先创建
数据库
用到的第一个 关键性的关键字 就是我们的create + database
来创建
然后 [] 是 默认可写可不写的, 如果没写,当该 数据库存在 时,就会
报错
, 如果 写了就不会
最后那个
charset
就是 指定特定字符集 的关键字, 那么什么是字符集呢 ? ? ?
字符集 本质上就是一种编码方案, 是用来识别不同语言文字(中文,英文,韩文,日文…) 一种特点的规则 。
我们需要指定 utf8 这样的字符集 来识别我们可能要用到的中文等… 多种表示的语言文字
像上面这样就是我们创建数据库的基本操作
而还有一些细枝末节的,是有些复杂,不常用, 几乎在面试不会出现的,小编在这里就不介绍了,感兴趣的小伙伴可以自己去了解哦
这里创建数据库名不能和 关键字重复,例如
就会报错
小细节说明:
- 这是创建数据库成功的提示信息。其中 1 row affected 代表的含义就是
1行收影响
,
() 中代表的就是我们 执行了多少秒 的含义
- 这里小编最想要讲解的就是我们的
set
这个含义并不是平常理解的 设置,还是“集合”
的含义.
就像我们 Java的数据结构 的,也有
HashSet
和TreeSet
这两个类,同时也代表 集合 的含义
而我们的集合有两大特性:
1) 无序
2) 唯一
use 数据库名;
使用数据库的标志关键字就是我们的 use
当我们使用数据库后, 就可以对当前使用的数据库进行相对应的
数据表
操作(下篇文章重点讲解)
关于数据表,我们是这样梳理的
数据库: 数据表: 数据列: 数据行: 一个个数据
所以我们才称为 MySQL 是一种
关系型数据库
- 必须是在已有的数据库下使用该 数据库
否则就会提示这样的报错消息,代表数据库不存在。
drop database [if exists] 数据库名 ;
drop + database
是 删除数据库 的标志关键字
- [] 是默认可写可不写的,当数据库不存在式,如果 删除该数据库就会报错 ,加上就不会 。
数据库的删除
是一种 危险操作 ,当小伙伴用drop database
语句时 , 一定要慎重再慎重 哦,
可以设想下,如果我们删除的是 银行的数据库 ,那后果可是 不堪设想 的 。
我们 学过的 C语言
和 Java
都用各自的 数据类型
,而我们的 MySQL
同样也不会落后, 今天小编将带着小伙伴们讲解常用的 数据类型 .
对于整型来说,我们一般使用
int
类型即可,如果 数据很大,换成bigint
也无妨
小编在这里重点想说明的是 double(M,D)
和 decimal(M,D)
的区别
首先: M 代表
长度
,D代表小数点
后的位数
举个栗子: 34.76 ==> M = 4 , D = 2 。
但是
decimal
是相对于double
更加精确的 浮点数 数据类型, 但是运行速度相对 更慢点 。
这里小编要说点小细节:
我们几乎都很少用 无符号整型
这样的 数据类型 ,所以小编在这里就没有说明了 ! ! !
重点说明:
varchar(SIZE) 和 char(SIZE) 的区别 :
varchar 和 char 的区别:
size 单位指的是: 字符
varchar
中的size
代表是 最大长度,是实际长度 <= size ,就是说可以 变长变短 的一种字符串类型
。
char
中的size
中的代表 实际长度 , 也就是说 实际长度 = size , 无论存储的 小于size
还是 等于 size 。(大于size是不允许的)
举个栗子 :
如果存储的是字符串 ‘1234’ :
varchar(20) —> 实际存储的是 4个字符 的大小
char(20) —> 实际存储的是 20 个字符 的大小
对于 日期的数据类型 ,小编推荐是使用最常用
datetime
就能解决日期类型。
这时小爱同学就有问题了,
我们学习了这些常用的数据类型有什么用呢 ?
主要是为了我们 数据表的结构 的创建而服务的,下面让小编细细道来 💖 💖 💖 💖
在说进行数据表操作之前, 有件很重要的前提必须和小伙伴们说下 🤔 🤔 🤔 🤔
前面我们提及过,由于我们的 数据表
是在 不同数据库 下的,所以当我们要操作某个表时,就必须使用对应数据库。
所以我们第一条 SQL 语句
,就表现先用 use 数据库名 ;
先 ·指定数据库 ,才能使用我们的 数据表
show tables ;
和我们查看当前数据库一样,只要把我们的 之前查看 数据库 的 databases
改成 tables 即可 !!!
虽然这里只是把 databases
改成 tables
, 但我们一定是在前面 要用 use 数据库名;
来指定当前 数据库
否则就会看到如下这样
desc 表名 ;
关于表结构的说明 :
这里说的 字段 本质上就是我们表中的
列
(其他的属性,小编在后面会 一 一 讲解哦)
查看表结构的 标识关键字 就是我们的
desc
, 后面只需要接当前数据库的表名
即可。
只有在当前数据库下已有的表才能用
classes
, 而当前指定的 数据库不存在的表 ,用desc
就会报错
create table 表名 (列名1 数据类型1 [comment 注释], 列名2 数据类型2 [comment 注释] ..... );
建表的标识关键字就是
create table
后面跟上表名
和()
进行建表操作 。
我们要注意的时,
每一个字段(列)
的数据类型是 不太一样 的,我们要根据 实际的场景 来选定合适的数据类型
建表的每一个
字段(列)
之间是用,
来隔开的, 当处于最后一个字段时, 我们就不需要用,
直接用) ;
即可创建语句
当我们指定
特定的列
的时候,一定要 指定特点的长度 ,比如varchar(SIZE)
中size
的 长度不可以太小,decimal(M,D)
中 ,M
和D
的长度也不可以太小 。
[]
内是注释 (可写可不写),当我们需要给一些注释,用来后续的程序员来读我们的字段时,可以加上哦 💥 💥💥 💥
drop table [if exists ] 表名 ;
删除表 的标识关键字
drop table
后面 加上对应 表名 即可 。
[] 是可加可不加的,像我们
数据库删除表
一样 , 如果该表不存在,加上这个不会报错
删除表操作也是 非常危险 的操作,小伙伴一定要 三思而后行 哦 。
重要的比如
银行的数据表
是绝对 不能乱删 的哦 。
在本篇文章中,主要学习了
show databases;
create database [if not exists] 数据库名 ;
use 数据库名;
drop database [if exists] 数据库名 ;
int , bigint
char(size) 和 varchar(size)
double(M,D) 和 decimal (M,D)
datetime
show tables;
desc 表名;
create table 表名 (列名1 数据类型1 [comment 注释], 列名2 数据类型2 [comment 注释] ..... );
drop table [if exists ] 表名 ;
如果觉得小编写的还不错的咱可支持 三连 下 (定有回访哦) , 不妥当的咱请评论区 指正
希望我的文章能给各位宝子们带来哪怕一点点的收获就是 小编创作 的最大 动力 💖 💖 💖