mysql8安装基础操作(一)

一、下载mysql8.0

1.查看系统glibc版本

这里可以看到glibc版本为2.17,所以下载mysql8.0的版本时候尽量和glibc版本对应

[root@node2 ~]# rpm -qa |grep -w glibc
glibc-2.17-222.el7.x86_64
glibc-devel-2.17-222.el7.x86_64
glibc-common-2.17-222.el7.x86_64
glibc-headers-2.17-222.el7.x86_64

2.下载包

官网地址

https://downloads.mysql.com/archives/community/

如下图:

在这里插入图片描述

具体下载地址如下:

wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.36-linux-glibc2.17-x86_64.tar.xz

3.安装

[root@node2 ~]# tar xf mysql-8.0.36-linux-glibc2.17-x86_64.tar.xz 
[root@node2 ~]# mv mysql-8.0.36-linux-glibc2.17-x86_64 /usr/local/mysql8创建数据目录
[root@node2 ~]# mkdir -p /data/mysql/data
[root@node2 ~]# mkdir -p /data/mysql/tmp创建用户、修改文件权限
[root@node2 ~]# useradd mysql
[root@node2 ~]# chown -R mysql:mysql /usr/local/mysql8
[root@node2 ~]# chown -R mysql:mysql /data/mysql

4.配置my.cnf

这里是最简单的配置,能够启动即可

vim /etc/my.cnf
[client]
port = 3306
socket = /data/mysql/tmp/mysql.sock[mysql]
no-auto-rehash[mysqld]
user    = mysql
port    = 3306
basedir = /usr/local/mysql8
datadir = /data/mysql/data
socket  = /data/mysql/tmp/mysql.sock
mysqlx_socket = /data/mysql/tmp/mysqlx.sock
pid-file = /data/mysql/tmp/mysql.pid
character-set-server = utf8mb4
skip_name_resolve = 1

5.初始化数据库

cd /usr/local/mysql8/bin/
./mysqld --initialize-insecure  --user=mysql --basedir=/usr/local/mysql8/ --datadir=/data/mysql/data/

6.启动数据库

cp /usr/local/mysql8/support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
/etc/init.d/mysqld start重启命令如下
service mysqld restart

7.开机启动

# 这样操作能成功,是因为启动脚本中有chkconfig的配置
chkconfig --add mysqld

二、database基本操作

1.mysql中的注释

在mysql中注释使用 #

2.查看所有数据库

mysql> show databases;

3.切换数据库

mysql> use sys;
Database changed

4.查看所有表

mysql> show tables;

5.创建数据库

mysql> create database mydb;
Query OK, 1 row affected (0.01 sec)

6.删除数据库

mysql> drop database mydb;
Query OK, 0 rows affected (0.01 sec)

三、表的基本操作

1.数据类型

只写一些常见的数据类型

数据类型大小用途
int4 bytes(4个字节)普通大小整数
bigint8 bytes(8个字节)大整数
char0-255 bytes定长字符串
varchar0-65535 bytes变长字符串
dateYY-MM-DD日期
datetimeYY-MM-DD HH:MM:SS日期和时间
timestamp时间戳

2.创建表

语法格式:
其中[] 中的内容可以写,也可以不写。
但是要注意:varchar类型的宽度必须指定

create table 表名(字段名1 类型[(宽度)] [约束条件] [comment '字段说明'],字段名2 类型[(宽度)] [约束条件] [comment '字段说明'],字段名3 类型[(宽度)] [约束条件] [comment '字段说明'],
)[表的一些设置参数]

例子:

mysql> create table student(id int,name varchar(20),age int,gender varchar(20),birthday date);

3.表结构相关操作

3.1 查看表的创建语句

mysql> show create table student;

3.2 查看表结构

mysql> desc student;

3.3 删除表

mysql> drop table student;
Query OK, 0 rows affected (0.01 sec)

3.4 添加字段

语法:

alter table 表名 add 列名 类型(长度) [约束];

例子:为student表添加about字段

mysql> alter table student add about varchar(20);

3.5 修改字段名

语法

alter table 表名 change 旧列名 新列名 类型(长度) [约束];

实例: 将about字段名改为news

alter table student change about news varchar(20);

3.6 删除列

语法:

alter table 表名 drop 列名;

例子:删除news字段

mysql> 
mysql> alter table student drop news;

3.7 修改表名

语法:

rename table 原表名 to 新表名;

例子: 将student表改为stu;

mysql> rename table student to stu;

4.insert语句

4.1 语法

语法1:根据字段名插入数据

insert into 表(字段名1,字段名2,字段名3......) values(值1,值2,值3......);

语法2:向所有列插入数据

insert into 表 values(值1,值2,值3......);

4.2 插入实例

全部插入为空值

insert into student values();

插入具体值

mysql> insert into student values(1,'zhangsan',20,'boy','2020-01-01');

5.update语句

语法:

修改所有的列
update 表名 set 字段名=值,字段名=值,......;修改满足条件的列
update 表名 set 字段名=值,字段名=值 where 条件;

实例:

update  student set age=21 where name='zhangsan';

6.delete语句

语法:

删除表内所有内容
delete from;删除表内指定的内容
delete from 表 whete 条件;

6.1 实例:

delete from student;delete from student where name='zhangsan';

6.2 删除值为NULL的行

delete from student where id is NULL;

四、mysql约束

1.概念

约束的概念是出现在创建表的时候,会给字段创建对应的约束条件。约束的作用就是 “限制表中数据” 的条件

2.分类

条件语法
主键约束primary key(比较重要)
自增长约束auto_increment(比较重要)
非空约束not null
唯一性约束unique
默认约束default
零填充约束zerofill
外键约束foreign key

3.主键约束

3.1 概念

主键约束相当于 唯一约束 + 非空约束的组合。主键约束不允许重复,不允许出现空值
每个表最多只允许一个主键
当创建主键约束时,系统默认会在所在的列和列组合上建立对应的唯一索引
主键主要是为了标识一行的数据的唯一性

3.2 添加单列主键

在创建表的时候添加主键

 create table teacher(# 这里给id字段设置了主键id int primary key,name char);

3.3 添加多列主键

多列主键 也叫做(联合主键)
语法:

create table(字段1 类型 约束条件,......primary key(字段1,字段2))

3.4 alter 添加主键

如果表创建完毕了忘记了添加了主键,然后需要用alter添加

语法:

alter table 表名 add primary key(字段名);

例子:

alter table teacher add primary key(id);

3.5 删除主键

alter table  表名 drop primary key;

4.自增长约束

当主键定义为自增长后,这个主键的值就不需要用户输入数据了,而由数据库系统根据定义自动赋值
一张表只能有一列使用自增长约束
自增长字段的类型必须是整数类型
自增长的最大值受该字段数据类型的最大值限制,如果达到上线,会自动失效.
语法:在字段后边加上auto_increment

create table(字段1 类型 auto_increment,字段2 类型 约束条件,
)

例子:
一般主键约束和自增长一起出现。

create table teacher(id int primary key auto_increment,name varchar(20)
);

插入数据

insert into teacher values(NULL,'zhangsan');
insert into teacher values(NULL,'lisi');
insert into teacher values(NULL,'wangwu');

结果如下:

mysql> select * from teacher;
+----+----------+
| id | name     |
+----+----------+
|  1 | zhangsan |
|  2 | lisi     |
|  3 | wangwu   |
+----+----------+

5.非空约束

create table teacher(id int, name char not null
);
#插入数据报错
mysql> insert into teacher values(1,NULL);
ERROR 1048 (23000): Column 'name' cannot be null

5.1 现有字段添加not null

alter tablemodify 字段 类型 not null;

6.唯一约束

语法:创建表时添加

create table teacher(id int, name char unique
);

创建完后的表

alter table teacher add unique(id);

7.默认约束

默认约束是用来指定某列的默认值
语法:

create table teacher(name varchar(20),age int default 20
);
insert into teacher (name) values('zhangsan');mysql> select * from teacher;
+----------+------+
| name     | age  |
+----------+------+
| zhangsan |   20 |
+----------+------+

注意:这里不能插入NULL,不然默认值不生效。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/652725.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

.NET高级面试指南专题三【线程和进程】

在C#中,线程(Thread)和进程(Process)是多任务编程中的重要概念,它们用于实现并发执行和多任务处理。 进程(Process): 定义: 进程是正在运行的程序的实例&…

C#,数据检索算法之插值搜索(Interpolation Search)的源代码

数据检索算法是指从数据集合(数组、表、哈希表等)中检索指定的数据项。 数据检索算法是所有算法的基础算法之一。 本文提供插值搜索(Interpolation Search)的源代码。 1 文本格式 using System; namespace Legalsoft.Truffer.…

CSS color探索

CSS 颜色探索 在 CSS 的世界里,颜色为网页元素赋予了丰富的视觉效果。通过预定义的颜色名称、RGB、HEX、HSL,以及支持透明度的 RGBA 和 HSLA,我们可以创造出各种吸引人的设计。接下来,我们将通过示例代码来深入了解这些颜色应用。…

kafka-顺序消息实现

kafka-顺序消息实现 场景 在购物付款的时候,订单会有不同的订单状态,对应不同的状态事件,比如:待支付,支付成功,支付失败等等,我们会将这些消息推送给消息队列 ,后续的服务会根据订…

CSS基础细节学习

目录 一.CSS--网页的美容师 二.语法规范及选择器的介绍 一.CSS--网页的美容师 CSS是层叠样式表( Cascading Style Sheets )的简称,有时我们也会称之为CSS样式表或级联样式表。 CSS是也是一种标记语言,CSS主要用于设置HTML页面中的文本内容(字体、大小…

log4j2 java api 入门介绍

概述 Log4j 2 API 提供了应用程序应该编码的接口,并提供了实现者创建日志实现所需的适配器组件。 虽然 Log4j 2 在 API 和实现之间被分解,但这样做的主要目的不是允许多个实现,尽管这当然是可能的,而是明确定义在“正常”应用程…

应急响应-内存分析

在应急响应过程中,除了上述几个通用的排查项,有时也需要对应响应服务器进行内存的提权,从而分析其中的隐藏进程。 内存的获取 内存的获取方法有如下几种: 基于用户模式程序的内存获取;基于内核模式程序的内存获取&a…

常用MQ产品的对比

常用MQ产品的对比 本文整理了常用MQ之间的对比,旨在帮助大家在实际项目中选择MQ产品。 消息队列对比参照表 注: 对照表来自:消息队列对比参照表 ,对比维度比较全面,结果个人比较认同,强烈建议参考。 Rock…

Docker安装RcoketMQ

1、Docker安装RcoketMQ-4.9.4 在同级文件夹创建目录config,并在里面创建文件broker.conf,文件内容如下: brokerClusterNameDefaultCluster brokerNamebroker-a brokerId0 deleteWhen04 fileReservedTime48 brokerRoleASYNC_MASTER flushDis…

Python网络爬虫实战——实验5:Python爬虫之selenium动态数据采集实战

【实验内容】 本实验主要介绍和使用selenium库在js动态加载网页中数据采集的作用。 【实验目的】 1、理解动态加载网页的概念 2、学习Selenium库基本使用 3、掌握动态加载数据采集流程 【实验步骤】 步骤1理解动态加载网页 步骤2学习使用Selenium库 步骤3 采集河北政府采购…

Python初学者学习记录——python基础综合案例:数据可视化——地图可视化

一、基础地图使用 1、基础地图演示 2、基础地图演示——视觉映射器 from pyecharts.charts import Map from pyecharts.options import VisualMapOpts# 准备地图对象 map Map() # 准备数据 data [("北京市", 99),("上海市", 199),("湖南省", 2…

1 月 28日算法练习-前缀和

小郑的蓝桥平衡串 思路:把 L 看成 1,Q 看成 -1,利用前缀和来得到输入串的前缀子串中LQ 的和,利用前缀和差的性质得到子串,通过枚举看它是否平衡。 将L看做1,Q看做-1,只有当某个区间…

如何快速上手一个vue框架

安装nvm 下载nvm-setup.zip: https://github.com/coreybutler/nvm-windows/releases 解压安装nvm: 创建两个文件夹,一个是nvm的安装位置,另一个是node.js的下载位置。不需要配置环境变量和修改setting文件了 检查nvm是否安装成功…

不常见知识点汇总

目录 1.关于输入流(cin)1.1 cin.fail()1.2 cin.clear()1.3 cin.ignore() 随时补充!!! 1.关于输入流(cin) 问题描述: int input 0; cin >> input; while (cin.fail()) {cin.…

Linux 增加 SWAP 空间

一、需求 通过阿里云启动项目时,使用Vuepress build编译静态页面时内存需要800MB,导致内存不够,因此考虑使用swap方式,置换一些内存资源存放swap磁盘。 [rootxxx myblog]# npm run docs:dev> myblog1.0.0 docs:dev > vuep…

全角色服务、全场景支撑、全业务应用的新一代智慧教室

新一代智慧教室以“数智化助力高质量人才培养”为核心目标,以AI赋能的智能硬件为基础构建多形态智慧教学环境,以中台为支撑实现数据、设备、系统、业务的互联互通、开放共享,以平台全面覆盖教学应用,采集、汇聚、挖掘、分析课前课…

【解决】IntelliJ IDEA 重命名 Shift + F6 失效

IntelliJ IDEA 重命名 Shift F6 失效 问题解决 问题 Idea 重命名 Shift F6 ,一直没反应 解决 调查发现原因是微软新版的输入法冲突了。需要设置【使用以前版本的微软拼音输入法】解决兼容性。 设置 -> 时间和语言 -> 区域 -> 语言选项 -> 键盘选项…

公众号迁移公证书模板在哪里下载?

公众号迁移有什么作用?只能变更主体吗?公众号迁移的作用可不止变更主体这一个哦,它还可以把个人公众号变成企业公众号,或者把服务号变成订阅号,甚至还能开通留言功能。不过要注意,现在订阅号已经不能变成服…

软考计算题注意事项总结

1、沟通渠道中,N涉及多少人?是有所增加还是增至多少人? 2、在EMV中,关注的是成本还是收益?若是考虑成本和时间,则选择较小的方案;若是关注收益,则选择较大的方案。 3、在PERT中&am…

什么是数据库设计?基本步骤有哪些?

数据库设计结构图 实线代表输入,虚线代表输出,每个节点的输出作为下一个节点的输入。 基本步骤 1.需求分析阶段 数据需求分析是在项目确定之后,用户和设计人员对数据库应用系统所要涉及的内容(数据)和功能&#xff0…