每日分享:
外向是生活所需,孤独是自我享受。
目录
一、MySQL数据库
1. MySQL数据库的介绍
MySQL是一个关系型数据库管理系统,是最流行的关系型数据库管理系统中的一个
MySQL的特点:
- MySQL是开源的,不需要支付额外的费用
- MySQL支持大型的数据库,可以处理拥有上千万条记录的大型数据库
- MySQL使用标准的SQL数据语言形式
- MySQL可以安装在不同的操作系统,并且提供多种编程语言的操作接口,c、c++、python、Java、Ruby等等
2. MySQL数据库的安装
- MySQL数据库服务端软件的安装
- MySQL数据库客户端软件的安装
在下载之前一般需要使用命令:sudo apt-get update (来更新镜像源,以保证可以下载到最新版)
MySQL数据库服务端软件的安装:
ubuntu中打开终端,输入以下命令:
sudo apt-get install mysql-server
它还会弹出页面让你设置mysql的密码,输入密码按回车即可
如何显示MySQL服务端安装包信息(成功显示证明安装成功):
apt-cache show mysql-server
查看MySQL服务:
ps -aux | grep mysql
说明:
- ps 查看当前系统中的进程
- -a 表示所有用户
- -u 表示显示用户名
- -x 表示显示所有执行程序
查看MySQL服务状态:
sudo service mysql status
running表示运行状态,最后一行按q退出
停止MySQL服务:
sudo service mysql stop
启动MySQL服务:
sudo service mysql start
重启MySQL服务:
sudo service mysql restart
MySQL配置文件的介绍:
配置文件的路径为:/etc/mysql/mysql.conf.d/mysqld.cnf
查看MySQL配置文件:
主要配置信息说明:
port 表示端口号,默认为3306
bind-address 表示服务器绑定的ip,默认为127.0.0.1(本机)
datadir 表示数据库保存路径,默认为/var/lib/mysql
log_error 表示错误日志,默认为/var/log/mysql/error.log
MySQL数据库客户端软件的安装:
客户端通过socket方式与服务端程序通信
常用的MySQL数据库客户端软件:
- 图形化界面客户端Navicat
- 命令行客户端mysql
Navicat的使用说明:
到官网下载https://www.navicat.com.cn/download/navicat-for-mysql
在这里我下的是第一个:
之后先切换到文件下载的路径,之后执行命令:
chmod +x navicat16-mysql-cs.AppImage
./navicat16-mysql-cs.AppImage
之后会提示注册,点试用即可:(那么试用天数到期之后该怎么办呢,我在网上看到的都是删除某一个文件,但是我没有找到那个文件,有一种简单的方法,把时间改为试用到期之前,你会发现它又可以使用了)
启动之后是这样的:
如何连接服务端:
这是连接之后的界面:
命令行客户端mysql的安装:
在ubuntu中打开终端,输入命令:
sudo apt-get install mysql-client
显示MySQL客户端信息:
MySQL命令的使用帮助:
mysql --help
MySQL客户端的使用:
MySQL客户端连接MySQL服务端命令
mysql -uroot -p
说明:
- -u:表示MySQL服务端的用户名
- -p:表示MySQL服务端的密码
- quit或者exit或者Ctrl+d表示退出
二、数据类型和约束
数据库中的数据保存在数据表中,在表中为了更加准确的存储数据,保证数据的正确有效,可以在创建表的时候,为表添加一些强制性的验证,比如:数据类型和约束
1. 数据类型
数据类型是指在创建表的时候为表中字段指定数据类型,只有数据符合类型要求才能存储起来,使用数据类型的原则是:够用就行,尽量使用取值范围小的,而不用大的,这样可以更多的节省存储空间
常用数据类型如下:
- 整数:int,bit
- 小数:decimal
- 字符串:varchar,char
- 日期时间:date,time,datetime
- 枚举类型:enum
数据类型说明:
- decimal表示浮点数,如decimal(5, 2)表示共存5位数,小数占2位
- char表示固定长度的字符串,如char(3),如果填充‘ab’时,会补一个空格‘ab ’,3表示字符数
- varchar表示可变长度的字符串,如varchar(3),填充‘ab’时就会存储‘ab’,3表示字符数
- 对于图片、音频、视频等文件,不存储在数据库中,而是上传到某个服务器上,然后再表中存储这个文件的保存路径
- 字符串text表示存储大文本,当字符大于4000时推荐使用
2. 数据约束
约束是指数据在数据类型限定的基础上额外增加的要求
常见的约束:
- 主键 primary key:物理上存储的顺序,MySQL建议所有表的主键字段都叫id,类型为int unsigned
- 非空 not null:此字段不允许填写空值
- 唯一 unique:此字段的值不允许重复
- 默认 default:当不填写字段对应的值会使用默认值,填写时以填写为准
- 外键 foreign key:对关系字段进行约束,当为关系字段填写值时,会到关联的表中查询此值是否存在,如果存在则填写成功,如果不存在则填写失败并抛出异常
3. 数据类型附录表
1. 整数类型
类型 | 字节大小 | 有符号范围(Signed) | 无符号范围(Unsigned) |
---|---|---|---|
TINYINT | 1 | -128 ~ 127 | 0 ~ 255 |
SMALLINT | 2 | -32768 ~ 32767 | 0 ~ 65535 |
MEDIUMINT | 3 | -8388608 ~ 8388607 | 0 ~ 16777215 |
INT/INTEGER | 4 | -2147483648 ~ 2147483647 | 0 ~ 4294967295 |
BIGINT | 8 | -9223372036854775808 ~ 9223372036854775807 | 0 ~ 18446744073709551615 |
2. 字符串
类型 | 说明 | 使用场景 |
---|---|---|
CHAR | 固定长度,小型数据 | 身份证号、手机号、电话、密码 |
VARCHAR | 可变长度,小型数据 | 姓名、地址、品牌、型号 |
TEXT | 可变长度,字符个数大于4000 | 存储小型文章或者新闻 |
LONGTEXT | 可变长度,极大型文本数据 | 存储极大型文本数据 |
3. 时间类型
类型 | 字节大小 | 示例 |
---|---|---|
DATE | 4 | ‘2022-01-01’ |
TIME | 3 | ‘12:29:58’ |
DATATIME | 8 | ‘2022-01-01 12:29:58’ |
YEAR | 1 | ‘2018’ |
TIMESTAMP | 4 | '1970-01-01 00:00:01' UTC ~ '2038-01-01 00:00:01' UTC |