Mysql 8.0 学习笔记(从安装配置到知识学习)

前言

本篇文章基于腾讯云CentOS 7.5环境。记录了Mysql 8.0从安装配置到知识点学习。
文末附资源链接。

一、Mysql数据库 安装及配置

1.Mysql简介

MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),使用最常用的数据库管理语言–结构化查询语言(SQL)进行数据库管理。

MySQL是开放源代码的,因此任何人都可以在General Public License的许可下下载并根据个性化的需要对其进行修改。

MySQL因为其速度、可靠性和适应性而备受关注。大多数人都认为在不需要事务化处理的情况下,MySQL是管理内容最好的选择。

2.Mysql安装

2.1 下载并添加存储库
yum localinstall https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm

在这里插入图片描述

2.2 安装MySQL 8.0包

与其他使用yum的软件包一样安装MySQL:

yum install mysql-community-server

安装过程中,会询问是否导入MySQL GPG密钥,输入y即可。
在这里插入图片描述
安装完成。

3.启动MySQL

3.1 启动MySQL服务并设置自启动
systemctl enable mysqld    #设置开机启动
systemctl start mysqld	   #启动Mysql
3.1 检查MySQL服务状态
systemctl status mysqld

在这里插入图片描述
Active: active (running)。运行中。

4. Mysql 安全

当第一次启动MySQL服务器时,为MySQL根用户生成一个临时密码。 您可以通过运行以下命令找到密码:

grep 'temporary password' /var/log/mysqld.log

在这里插入图片描述
首先记下生成的临时密码,
运行mysql_secure_installation命令来提高MySQL安装的安全性:

mysql_secure_installation

输入临时密码后,系统会要求您为root用户设置新密码。密码必须至少包含8个字符并且至少包含一个大写字母,一个小写字母,一个数字和一个特殊字符。
在这里插入图片描述
该脚本还会要求您删除匿名用户,限制root用户对本地计算机的访问权限并删除测试数据库。 你应该对所有问题回答“y”

5.从命令行连接到MySQL

以root用户类型登录到MySQL服务器

mysql -u root -p

系统将提示您输入在运行mysql_secure_installation脚本时以前设置的root密码

一旦你输入密码,你将会看到如下所示的mysql shell
在这里插入图片描述

二、Mysql 数据库操作

备注:Mysql命令不区分大小写。

1.创建一个新的MySQL数据库

创建一个数据库mysqldata_name,实例中数据库name为database1

CREATE DATABASE mysqldata_name;

在这里插入图片描述
如果您尝试创建一个已经存在的数据库,您将看到以下错误消息:

ERROR 1007 (HY000): Can't create database 'database1'; database exists

2.使用SHOW语句找出在服务器上当前存在什么数据库:

SHOW DATABASES;

在这里插入图片描述

3.选择你所创建的数据库

USE MYSQLDATA;

在这里插入图片描述

按回车键出现Database changed 时说明操作成功!

4.创建一个数据库表

CREATE TABLE MYTABLE (name VARCHAR(20), sex CHAR(1));

在这里插入图片描述

5.查看现在的数据库中存在什么表

SHOW TABLES;

在这里插入图片描述

6.显示表的结构

DESCRIBE MYTABLE;

在这里插入图片描述

7.往表中加入记录

insert into MYTABLE values ("hyq","M");

在这里插入图片描述

8.查看所有数据

select * from my_student;

在这里插入图片描述

9.删除表

drop TABLE MYTABLE;

在这里插入图片描述

10.清空表

delete from MYTABLE;

在这里插入图片描述

11.更新表中数据

update MYTABLE set sex="f" where name='hyq';

在这里插入图片描述

三、Mysql数据类型

1.整数类型

MySQL主要提供的整数类型有tinyint、smallint、mediumint、int、bigint,其属性字段可以添加auto_increment自增约束条件。

下图中列出了MySQL中的数值类型:
在这里插入图片描述
有的情况下定义整型的写法是 int(N) ,这种写法只需要记住两点:

1)无论N等于多少,int永远占4个字节。

2)N表示的是显示宽度,不足的用0补足,超过的无视长度而直接显示整个数字,但这要整型设置了unsigned zerofill才有效。

2.浮点类型

浮点类型有两种,分别是单精度浮点数(float)和双精度浮点数(double),数值类型如下:
在这里插入图片描述
定义浮点类型可以用(M,D)来表示,其中M称为精度,表示总共的位数,D称为标度,表示小数的位数。

3.定点类型

因为浮点型的float、double存在精度丢失问题,即写入数据库的数据未必是插入数据库的数据,而decimal无论写入数据中的数据是多少,都不会存在精度丢失问题,这就是引入decimal类型的原因,decimal类型常见于银行系统、互联网金融系统等对小数点后的数字比较敏感的系统中。

decimal(M,D)的规则和float、double相同,但区别在float、double在不指定M、D时默认按照实际精度来处理,而decimal在不指定M、D时默认为decimal(10,0)。

4.日期和时间类型

MySQL支持五种形式的日期类型:date、time、year、datetime、timestamp,用一张表格总结一下这五种日期类型:
在这里插入图片描述
MySQL的时间类型中datetime与timestamp两种类型的区别:

1)datetime占8个字节,timestamp占4个字节。

2)由于大小的区别,datetime与timestamp能存储的时间范围也不同。

3)datetime默认值为空,当插入的值为null时,该列的值就是null;timestamp默认值不为空,当插入的值为null的时候,mysql会取当前时间。

4)datetime存储的时间与时区无关,timestamp存储的时间及显示的时间都依赖于当前时区。

在实际工作中,一张表往往会有两个默认字段,一个记录创建时间而另一个记录最新一次的更新时间,这种时候可以使用timestamp类型来实现。

5。字符串类型

字符串类型用来存储字符串数据,还可以存储图片和声音的二进制数据。字符串可以区分或者不区分大小写的串比较,还可以进行正则表达式的匹配查找。

MySQL中的字符串类型有char、varchar、tinytext、text、mediumtext、longtext、enum、set等。

下表中列出了MySQL中的字符串数据类型,括号中的M表示可以为其指定长度:
在这里插入图片描述

6.char类型

char(M)是固定长度字符串,存储时在右侧填充空格以达到指定的长度,查询时会删除尾部的空格。

7.varchar类型

varchar(M)是可变长度的字符串,存储的是字符串的实际内容。

8.text类型

text也是可变长度的字符串,保存非二进制字符串,如文章内容、评论等。text类型有4种:tinytext、text、mediumtext和longtext。

9.enum类型

enum是一个字符串对象,值为表创建时设定的枚举值,最多可以有65535个元素。语法格式如下:

字段名 enum('值1', '值1', …, '值n')

字段名是将要定义的字段,值n指枚举列表中第n个值。

enum类型的字段在取值时,能在指定的枚举列表中获取,而且一次只能取一个,如果创建的成员中有空格,尾部的空格将自动被删除。

enum值依照列索引顺序排列,并且空字符串排在非空字符串前,null值排在其他所有枚举值前。

enum列总有一个默认值。如果将enum列声明为null,null值则为该列的一个有效值,并且默认值为null。如果enum列被声明为not null,其默认值为允许的值列表的第1个元素。

10.set类型

set是一个字符串的对象,值为表创建时规定的一列值,最多可以有64个成员。语法格式如下:

字段名 set('值1', '值2', …, '值n')

与enum类型相同,set值在内部用整数表示,列表中每个值都有一个索引编号。当创建表时,尾部空格将自动删除。

与enum类型不同的是,enum类型的字段只能从定义的列值中选择一个值插入,而set类型的列可从定义的列值中选择多个字符的联合。

如果插入set字段中的列值有重复,则mysql自动删除重复的值。并且插入set字段的值的顺序并不重要,mysql会在存入数据库时,按照定义的顺序显示。如果插入了不正确的值,默认情况下,mysql将忽视这些值,给出警告。

11.二进制字符串类型

MySQL中的二进制字符串有BIT、BINARY、VARBINARY、TINYBLOB、BLOB、MEDIUMBLOB和LONGBLOB。

下表中列出了MySQL中的二进制数据类型,括号中的M表示可以为其指定长度:
在这里插入图片描述

12.bit类型

位字段类型。M表示每个值的位数,范围为1~64。如果M被省略,默认值为1。如果为bit(M)列分配的值的长度小于M位,在值的左边用0填充。

bit数据类型用来保存位字段值,例如以二进制的形式保存数据13,13的二进制形式为1101,在这里需要位数至少为4位的bit类型,即可以定义列类型为bit(4)。大于二进制 1111 的数据是不能插入 bit(4) 类型的字段中的。

默认情况下,MySQL不可以插入超出该列允许范围的值,因而插入数据时要确保插入的值在指定的范围内。

13.其他类型

binary类型
binary类型的长度是固定的,指定长度后,不足最大长度的,将在它们右边填充“\0”补齐,以达到指定长度。

varbinary类型
varbinary类型的长度是可变的,指定好长度之后,长度可以在0到最大值之间,实际占用的空间为字符串的实际长度加1。

blob类型
blob是一个二进制的对象,用来存储可变数量的数据。blob类型分为4种:tinyblob、blob、mediumblob和longblob,它们可容纳值的最大长度不同。

四、Mysql学习

(一)Mysql语法大全(一)

(二)Mysql语法大全(二)

(三)MySQL 8.0参考手册

发布了5 篇原创文章 · 获赞 61 · 访问量 5063

猜你喜欢

转载自blog.csdn.net/qq_40265974/article/details/104018148