mysql(mariadb)的安装与使用,mysql相关命令,mysql数据类型

安装

可以选择mariadb,即mysql的一个分支版本(free)

查看环境当中是否拥有mysql/mariadb
rpm -qa | greo mariadb
rpm -qa | grep mysql

在这里插入图片描述

其中mariadb-devel为开发工具包

安装指令,以下这两项是必须安装的
yum install -y mariadb
yum install -y mariadb-server

启动

service mariadb restart 重启
service mariadb start 启动
service mariadb stop 停止

查看

ps aux | grep mysqld

在这里插入图片描述

mariadb启动之后的服务器进程名字叫做mysqld
第一个很明显就是刚才的grep进程
而后边发现存在两个mysqld,一个为mysqld,一个是mysqld_safe
	mysqld:mysql服务端程序
	mysqld_safe:mysql服务端的守护进程
	从中可以得到以下信息:
	①启动mariadb的时候,并不是直接启动了mysqld这个服务端程序,而是先启动了mysqld_safe程序,随后由mysqld_safe这个程序将mysqld拉起
	②当mysqld程序异常崩溃或终止时,会被mysqld_safe快速重新启动
异常场景:
	启动报错:
		一般情况下都是/var/lib底下的mysql文件夹的内容和启动的服务端程序不匹配导致的
		解决方案:
		将mysql文件夹重命名掉,再启动

连接mysql服务端

Navicat

可视化的数据库连接软件

直接连接服务端

在这里插入图片描述

数据库的分层

连接层

1、建立连接
2、校验用户名和密码
3、校验客户端的ip地址

服务层

1、sql语句语法语义的检测
2、优化sql
3、执行sql

存储引擎

决定数据如何进行存储,如何进行获取,如何进行插入
执行sql

磁盘

存储数据

命令使用

查看数据库

show databases;

一般会有几个默认的数据库,一个mysqld服务端可以管理多个数据库
在这里插入图片描述

同时可以进入到/var/lib路径下的mysql文件夹中,可以看到数据库都是以文件夹的形式存在的

在这里插入图片描述

在文件夹下的内容是和数据表强相关的内容

在这里插入图片描述

切换数据库及查看数据库中的数据表

use mysql; 切换到名为mysql数据库
show tables; 查看数据库中的数据表

在这里插入图片描述

创建数据库

create database [数据库名称];

在这里插入图片描述

创建数据库表

create table [表名称](表字段1名称 表字段1类型, 表字段2名称 表字段2类型, ...);

在这里插入图片描述

查看表结构

desc [表名称];
可以查看表中每一列的具体信息,但是并不会查看表中的具体数据

在这里插入图片描述

show create table [表名称];

在这里插入图片描述

show create table [表名称]\G

在这里插入图片描述

ENGINE为存储引擎,决定了数据如何进行存储,一般选择InnoDB,因为支持事务
	InnoDB:在数据库文件夹下,
		.opt文件存储数据库的属性信息
		.frm文件存储数据库的表结构,但不保存表当中的数据
		数据库中的数据在ibdata1文件当中进行存储
CHARSET为字符集,决定数据库保存数据时采用什么字符集,即决定数据库能保存什么样的数据,一般选择 -utf8

插入数据

insert into [] values(依次给每列数据,用“,”分隔);  全列插入(单行)

在这里插入图片描述
在这里插入图片描述

由于字符集是latin1的原因,显示出来的是??
insert into [数据表名] values(需要插入的一行数据一),(需要插入的一行数据二),...;	多行插入

在这里插入图片描述

多行插入也是全列插入
insert into [表名](1,2,3, ...) values (数据1, 数据2, 数据3, ...);	在指定列进行插入

在这里插入图片描述

增加一列

alter table [表名] add [列名] [数据类型];

在这里插入图片描述

或是指定位置插入列

在这里插入图片描述

修改列数据类型

alter table [表名] modify [列名] [想要更改为的数据类型];

在这里插入图片描述

删除列

alter table [表名] drop [列名];

在这里插入图片描述

注意:如果删除了一列,那么这一列中的数据也被干掉了

修改表名字

alter table [表名] rename [to](可以要也可以不要) [新名字];

在这里插入图片描述

删除表

drop table [表名];
一切和删除有关的都要慎用!!

更改字符集

可以在创建数据库时添加语句来更改数据库的字符集
create database [数据库名称] charset=utf8;

在这里插入图片描述

这样一来这个数据库中的所有数据都是utf8了

在这里插入图片描述

可以看到字符集改变了,添加数据试试

在这里插入图片描述

或使用
alter database [数据库名称] charset=[字符集];
修改数据库字符集
alter table [数据表名称] charset=[字符集];
修改数据表字符集

在这里插入图片描述

设置是否区分大小写

不区分大小写

create database [数据库名称] collate utf8_general_ci;

区分大小写

create database [数据库名称] collate utf8_bin;

数据库删除

drop database [数据库名称];

备份

mysqldump -P3306 -u -root -p 密码(没有则不写) -B [数据库名] > [目标路径目标文件名].sql
如果只想备份其中的一张表
mysqldump -P3306 -u -root -p [数据库名] [表名1] [表名2] > [目标路径目标文件名].sql
如果想同时备份多个数据库
mysqldump -P3306 -u -root -p -B [数据库名1] [数据库名2] ... > [目标路径目标文件名].sql

恢复

mysql > source [目标目录目标文件].sql;

查看链接情况

show processlist
或者更直接一点
netstat -anp | grep 3306

SQL语句分类

DDL数据定义语句

用来维护存储数据的结构
	create,drop,aler,...

DML数据操纵语句

用来对数据进行操作
	insert,delete, update,...
其中单独分了一个DQL,数据查询语句,代表语句:select

DCL数据控制语句

负责权限管理与事务
	grant,revoke,commit,...

存储引擎

MyISAM

在数据目中有三个不同的文件,分别是:
	.frm	表结构
	.MYD	表数据
	.MYI	表索引

在这里插入图片描述
在这里插入图片描述

InnoDB

在数据库文件夹下,
	.opt文件存储数据库的属性信息
	.frm文件存储数据库的表结构,但不保存表当中的数据
	数据库中的数据在ibdata1文件当中进行存储

表结构

在这里插入图片描述

Field:字段名字
Type:字段类型
Null:是否允许为空
Key:索引类型
Default:默认值
Extra:扩充

数据类型分类(大小写不敏感)

数值类型

①BIT(M):位类型。M指定位数,默认值为1,范围1-64

②TINYINT [UNSIGNED]:带符号的范围为[-128, 127],无符号范围为[0, 255],默认有符号
如果给的数据超过能表示的上限便会产生截断现象

③BOOL:使用 0 和 1 表示真和假

④SMALLINT [UNSIGNED]:带符号为[-2的15次方, 2的15次方-1],无符号为[0,2的16次方-1]

⑤INT [UNSIGNED]:带符号为[-2的31次方, 2的31次方-1],无符号为[0,2的32次方-1]

⑥BIGINT [UNSIGNED]:带符号为[-2的31次方, 2的31次方-1],无符号为[0,2的64次方-1]

⑦FLOAT [(M, D)] [UNSIGNED]:M指定显示长度,D指定小数位数,占用4字节
超过D设置的长度后超出部分会自动进行四舍五入处理

⑧DOUBLE [(M, D)] [UNSIGNED]:表示比float精度更大的小数,占用空间8字节

⑨DECIMAL [(M, D)] [UNSIGNED]:M指定显示长度,D指定小数位数

文本、二进制类型

①CHAR(size):固定长度字符串,最大255,注意单位是字符,不是字节
所占用的字节数量和字符集强相关,不管用与不用都是占用那么大的空间

②VARCHAR(SIZE):可变长度字符串,最大长度65535字节
在varchar中会在尾部用1-3个字节来描述所使用的字符长度,所以在utf8字符集下最大能有(65535-3)/3 = 21844字符
与char不同的是varchar在使用时是根据已使用的空间来计算大小的

③BLOB:二进制数据

④TEXT:大文本,不支持全文索引,不支持默认值

时间日期

DATE/DATETIME/TIMESTAMP:日期类型(yyyy-mm-dd)(yyyy-mm-dd hh:mm:ss),而timestamp为自动填入当前时间

在这里插入图片描述
在这里插入图片描述

String类型

①ENUM类型:ENUM是一个字符串对象,其值来自表创建时在列规定中显示枚举的一个列值
即列举出可能出现的情况,为单选

②SET类型:SET是一个字符串对象,可以有零或多个值,其值来自表创建时规定的允许的一列值,指定包括多个set成员的set列值时各
成员之间用逗号间隔开,这样set成员本身不能包含逗号
多选

在这里插入图片描述
在这里插入图片描述

查询

find_in_set(想要查询的字符串,数据表名);
若存在返回下标,不存在返回0
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值