💐 🌸 🌷 🍀 🌹 🌻 🌺 🍁 🍃 🍂 🌿 🍄🍝 🍛 🍤
📃个人主页 :阿然成长日记 👈点击可跳转
📆 个人专栏: 🔹数据结构与算法🔹C语言进阶
🚩 不能则学,不知则问,耻于问人,决无长进
🍭 🍯 🍎 🍏 🍊 🍋 🍒 🍇 🍉 🍓 🍑 🍈 🍌 🍐 🍍
前言:
哈喽,大家好💓,在上一篇博客中,大致讲解了数据库的相关知识,它的作用、定义、分类等等。从本篇博客开始,将详细讲解关系型数据库MySQL的操作与使用,以及SQL语句的讲解。
✉️一、何为安装MySQL
🔷所谓的安装MySQL就是给主机安装数据库管理系统DBMS(database manage system),这个管理程序可以管理多个数据库
。
🔷一个数据库中可以存放多张表,来保存数据
二、什么是字符集⛎
1.字符集分类
字符集是一套符合和编码,校验规则(collation)是在字符集内用于比较字符的一套规则,即字符集的排序规则。MySQL可以使用对种字符集和检验规则来组织字符。
字符集名称 | 占用字节数 |
---|---|
ASCII | 1 |
gbk | 1 ~ 2 |
utf8 | 1 ~ 3 |
utf8mb4 | 1 ~ 4 |
ASCII字符集
:只收录了128个字符,包括空格,标点符号,数字,大小写字母和一些不可见字符,不能表示中文。采用一个字节表示。
gbk字符集
:收录了汉字(6763个)以及拉丁字母、希腊字母、日文、俄文等字符,同时这种字符集又兼容ASCII字符集。当字符再ASCII字符集表示范围内的话就采用一个字节表示,否则采用两个字节表示。
utf8字符集
:在MySQL中utf8字符集是经过MySQL设计者阉割过后的字符集(为了尽可能省空间),该字符集最大使用3个字节来表示一个字符,不可以存储表情或某些非常特殊的字符,在数据库字符集、表字符集、列字符集等选型的时候需要注意了。
utf8mb4字符集
:MySQL一般建议使用utf8mb4字符集,该字符集最大使用4个字节来表示一个字符,可以存储表情或某些非常特殊的字符。
补充:
每个国家之间的编码不同,也存在着一些跨平台的问题,制定了一些国际通用的编码,最常用的就是UTF8,UTF8对世界上所有的语言文字做了编码
注意:
我们主要学习的MySQL目前支持多字符集,并且,支持在不同的字符集之间转换(便于移植和支持多语言)。
2.字符集的校对规则:
以字符集名称开头,以_ci
(不区分大小写)_cs
(区分大小写)或_bin
(二进制文件)结尾。
例如:
Utf8_bin:区分大小写 、
utf8_general_cs区分大小写
Utf8_general_ci 不区分大小写,将字符串每个字符串用二进制数据编译存储.
🔉三、数据库的创建
1.格式:
语句:create dabase 数据库名称
默认utf8\utf8_general_c
2.实例:
例1:创建一个使用utf8字符集,并且带校对规则的数据库
create database
lhr_db02 character set
utf8 collate
utf8_bin
说明:
character set
:指定字符集;
collate
:指定校对规则;
3.❗️注意:
在创建数据库时或是表,为了起名,使用英文‘’
'‘’
'(在左上角)反引号可以用来规避关键字。
4.📺显示所有数据库:
1️⃣显示数据库:
show databases
注意+s
2️⃣显示数据可创建语句:show create database 数据库名称
四、数据库的删除
1.格式:
删除数据库指令:DROP DATABASE 数据库名称
2.例子:
删除数据库lhr_db02。 看下图已经没有了。
❌注意:慎重使用
五、数据类型
Mysql数据类型(列类型):
数值类型:
1.整形:
🔸tinyint[1个字节]
🔸 smallint[2个字节]
🔸Mediumint [3个字节]
🔸int[4个字节]
🔸bigint[8个字节]
2.小数类型:
🔸 float[单精度4个字节]
🔸double[双精度8个字节]
🔸 decimal[M,D] (M是位数总和(最大65|默认10),D是小数点后的位数(最大30|默认00)
分signed和unsigned;默认是有符号的
3. 文本类型(字符串类型):
🔸char[0-255]:
固定
长度,最长255字符
🔸 varchar[0-65535(2^16-1) ]==🔸Text[0-0-65535(2^16-1)]:可变
字符串长度,最大65532字节【因为需要1-3个字节表示用于记录varchar里面存放大小,所以65535-3=65532】utf8编码最大是65532/3=21844,jbk编码是两个字节表示一个字符【因为utf8编码是三个字节表示一个字符】❗️注意:varchar(
m
),这里的表示是m个字符
,不是字节
,具体一个字符占用几个字节要看使用的是什么编码
,注意varchar是一个可变字符串,具体放几个字符,就占用几个位(具体一个一个字符占用几个)查询速度:char>varchar;定长用char,例如:手机号,身份证号 Longtext[0-2^32-1]
4.二进制数据类型:
🔹blob[0-2^16-1]:bit(m),m的范围是1-64,代表几个比特位 longblob[0-2^32-1],
5.时间类型:
🔹date[年月日]
🔹 time[时分秒]
🔹datetime[年月日时分秒]
🔹timestamp[时间戳]