MySQL数据库基础

目录

MySQL安装

数据库的操作

1、显示当前的数据库

2、创建数据库

3、使用数据库

4、删除数据库

小小结

常用数据类型

数值类型

字符串类型

日期类型

数据表的操作

1、查看当前数据库中有哪些表

2、创建表

3、查看表的详细情况

4、删除表


MySQL安装

安装视频链接

数据库的操作

SQL中不区分大小写

1、显示当前的数据库

注意事项:

1)show和databases之间至少要有一个空格

2)databases是复数形式(有多个数据库),不要忘了加 s

3)每个输入的sql最后要以 ; 结尾(英文分号

这里就显示出,当前的数据库服务器上,都有哪些数据库(此处的数据库是数据集合)

这四个是系统自带的,至少会有这四个数据库

2、创建数据库

形如这样的提示,就表示成功

注意事项:

创建数据库的时候,数据库的名字,不能和SQL中的"关键字"重复

创建数据库的名字,也不能和已有的数据库名字重复

不过,也有办法,让关键字成为数据库名,那就是在创建数据库的时候给数据库名,加上"反引号"(在键盘的左上角)。有的时候确实真需要,比如创建一个数据库表示订单order,巧了,order也是sql中的关键字,如果确实需要,就可以通过这种做法达成目标。

创建数据库的时候还需要指定数据库的"字符集"( charset**),**这个往往是咱们在开发中的很关键的环节。一个中文汉字,占几个字节?只要你回答2或者3,只要有具体数字,一定都是错误的。取决于当前的字符集的,使用不同的字符集,对应的字节数是不同的。ascii,计算机本质上是存储二进制的数据(010101),就需要约定好,使用不同的数字表示不同的字符,对于英文来说,asci足够了。对于其他的语言文字(比如中文)按照上述思路,进一步延伸.一个字节表示不下,可以多引入几个字节。本质上还是有一个表,使用不同的数字,对应到不同的汉字.(其他的语言文字,日文,韩文,葡萄牙文,西班牙文,阿拉伯文...)对于中文来说,常用汉字,也就4k个.算上生僻字,也就6w左右。对于计算机来说,维护一个6w大小的表,非常ez~~像上述用来表示中文的表,不只有一个不同的组织提出的不同的编码方案(有不同的表格)。同一个汉字,在不同的编码方案中,对应的数字是不一样的。
随着时间的发展,大部分的编码方案就消亡了。最终留下来的,表示中文的编码方案,主要就是2个了。
(1)GBK

主要是在咱们中国大陆使用(港澳台一般不用这个),港澳台用繁体字。GBK只能表示简体字~~

windows简体中文版,默认的编码方式就是GBK

此时一个汉字就是使用2个字节表示,之前使用VS编写代码,此时打印出的一个汉字的长度就是2个字节

放到10年,20年前,GBK用的很多~
(2)UTF-8 (也可以写作UTF8或吾utf8或者utf-8)

属于变长编码,表示不同的符号,可能用1-4个字节来表示~~

对于中文汉字来说,一般是3个字节表示。

UTF8是当前世界上最流行的编码方式。不仅仅能表示中文,也能表示世界上任何一种语言文字

如果不能正确指定字符集后续想保存中文,就可能会出问题,比如mysql5,默认的字符集是"拉丁文",此时如果尝试插入中文数据,就会插入失败~(mysql8的话,默认的就是utf8,不手动指定也可以)

后续写创建数据库操作,都建议大家统一把字符集给指定一下

mysql上的utf8,其实不是"完全体"是个"残本"。有些标准的utf8字符,在mysql的utf8上可能是不支持的。比如,现在emoji表情。

mysql提供了一个方案utf8mb4 ,在mysql上表示完全体utf8。utf8mb4 是mysql自己创造的,

脱离mysql之外,别的程序,都不认识这个字符集,都只是认识utf8~~

++说明:MySQL的utf8编码不是真正的utf8,没有包含某些复杂的中文字符。MySQL真正的utf8是使用utf8mb4,建议大家都使用utf8mb4。++


[IF NOT EXISTS]

在创建数据库的时候指定一个简单的条件,如果不存在,就创建;如果存在,就啥都不做~~

此处虽然有警告,但是仍然是"成功"不算报错。

如果只是通过命令行,一条一条的输入sql,此时if not exists就没啥用处~~

啥时候有用呢?以后在工作中可能也会让数据库,批量执行一组sql(比如把若干sql写到一个文件中)批量执行过程中,任何一个sql出错,都会使后续的sql无法继续执行(强制终止了)

3、使用数据库

类似于"文件夹"感觉

注意数据库组织数据的规则:

一个数据库服务器上有很多的"数据库"

一个数据库中,又有很多"数据表

一个数据表,有很多"数据行"

一个数据行,又有很多"数据列"

因此就需要先选中某个数据库,接下来针对数据表/数据行等操作,就是针对这个被选中的数据库展开的

见到上述提示,说明切换成功~~

4、删除数据库

删除数据库,是一个非常危险的操作!大家未来在实际工作中,一定要慎重!慎重!
数据库一旦被删除,就恢复不了了。公司中的数据库数据,都是真金白银~~
++要怎样做,才能避免删库呢?++
1.控制权限.
不是每个人都能操作,只有少数人才能操作。
比如,限制普通的开发,只能够对数据库进行"读操作",不能"修改",尤其是删库这样的操作
如果你确实要删库,需要从相关的人员进行申请,由人家来进行操作,没有权限的话,即使你执行删除语句,也不会真正删除(报错)
2.要对数据库进行及时的备份

数据库中的数据,拷贝出来,存储到别的地方

数据备份,一二三原则.

一份数据,至少需要保存到两个机器上,至少有三个副本(拷贝出三份)

但是对于数据库,具体的备份策略,根据实际的项目场景,具体问题具体分析

不同的场景,对于数据量多少,对于数据可靠性的要求...

3.确实需要进行"删库"危险操作,最好拉上一个人,和你一起进行操作

你操作,他在旁边给你看着(僚机)

小小结

常用数据类型

数值类型

字符串类型

日期类型

数据表的操作

需要操作数据库中的表时,需要先使用该数据库

1、查看当前数据库中有哪些表

数据库中进行一些查询操作,就会得到一系列的结果数据,就把这些结果,称为"结果集"

2、创建表

在关系型数据库中,一个表有哪些列,每个列叫啥名字是啥类型,都是要提前确定好的.

后续往表里存储的数据,都要严格遵守上述类型的要求.

3、查看表的详细情况

查看表的结构(有哪些列,每个列是啥情况),不能查看表里的内容

4、删除表

相关推荐
DanceDonkey1 小时前
基于wait/notify方法 实现生产/消费者模型
java·数据库·中间件
宇宙李1 小时前
微服务中熔断和降级的区别,具体使用场景有哪些?
java·数据库·微服务
等一场春雨1 小时前
MySQL 主从同步中间件
数据库·mysql·中间件
cheese-liang2 小时前
Markdown中甘特图的使用
数据库·甘特图
人总该做点什么3 小时前
【数据库】四、数据库管理与维护
数据库·sql
慢慢成长的码农3 小时前
Kotlin 常量定义
开发语言·数据库·kotlin
过过过呀Glik5 小时前
在 Ubuntu 上对 Nginx 进行源码编译的详细指南
数据库·nginx·ubuntu
众拾达人5 小时前
基于 JavaEE 的影视创作论坛
前端·数据库·java-ee