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,不然默认值不生效。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Tomcat与网络9】提高Tomcat启动速度的八大措施

本文我们来看一下如何对Tomcat进行调优,我们对于Tomcat的调优主要集中在三个方面:提高启动速度、提高系统稳定性和提高并发能力,后两者很多时候是相辅相成的,我们放在一起看。 Tomcat现在一般都嵌入在SpringBoot里,因…

基于ecal的foxglove studio可视化工具的使用

ecal通讯在自动驾驶和机器人中的应用越来越多,在调试测试过程中,可以使用ecal monitor,ecal recoder和ecal player等工具,对ecal 消息进行监测录制回播。但是,有时候需要对消息进行可视化查看,比如雷达点云信息,相机图像等,可以使用foxglove studio可视化工具。 Foxg…

高性能跨平台网络通信框架 HP-Socket v6.0.1

项目主页 : http://www.oschina.net/p/hp-socket开发文档 : https://www.docin.com/p-4592706661.html下载地址 : https://github.com/ldcsaa/HP-SocketQQ Group: 44636872, 663903943 v6.0.1 更新 一、主要更新 优化Linux通信组件多路复用处理架构,避免“惊群”问…

Android 高德地图切换图层

一、默认样式 Android 地图 SDK 提供了几种预置的地图图层&#xff0c;包括卫星图、白昼地图&#xff08;即最常见的黄白色地图&#xff09;、夜景地图、导航地图、路况图层。 findViewById<TextView>(R.id.normal).setOnClickListener {updateSelectedStatus(TYPE_NORMA…

基于SpringBoot+Vue实现的物流快递仓库管理系统

基于SpringBootVue实现的物流快递仓库管理系统 文章目录 基于SpringBootVue实现的物流快递仓库管理系统系统介绍技术选型成果展示账号地址及其他说明源码获取 系统介绍 系统演示 关注视频号【全栈小白】&#xff0c;观看演示视频 基于SpringBootVue实现的物流快递仓库管理系…

【PyQt】02-基本UI

文章目录 前言一、首先了解什么是GUI&#xff1f;二、初学程序1.界面展示代码运行结果 2.控件2.1按钮展示代码运行结果 2.2 纯文本和输入框代码运行结果 3、重新设置大小 -resize4、移动窗口-move()5、设置界面在电脑中央5.1 代码运行结果 6、设置窗口图标代码运行结果 7、布局…

上岸秘籍来啦!TOGAF认证考试全攻略

上岸秘籍来啦&#xff01;手把手教你如何顺利通过TOGAF认证考试&#xff01; &#x1f31f;考试内容 TOGAF 9.2认证分为两个级别&#xff1a; ✅ TOGAF基础级&#xff1a;掌握标准术语、结构和基本概念&#xff0c;理解企业架构和核心标准。 ✅ TOGAF鉴定级&#xff1a;深入分析…

Skywalking trace UI页面中字段信息详解,包括端点、跨度类型和Peer

刚上手Skywalking的同学可能对 trace UI 页面信息中的字段信息不是很了解&#xff0c;在这里就给大家一一讲解&#xff0c;重点关注端点、跨度类型和Peer 服务 :服务的名称 实例&#xff1a;服务对应的实例 端点&#xff1a;端点(Endpoint) 对于特定服务所接收的请求路径, 如…

2024技术发展洞察与趋势学习总结

2023技术发展洞察 2024技术发展趋势

算法--数论

这里写目录标题 质数&#xff08;素数&#xff09;定义判断是否为质数暴力写法&#xff0c;试除法基本思想具体写法 优化基本思想&#xff08;时间复杂度根号n&#xff09;具体写法 分解质因数分析题意暴力写法基本思想具体代码 优化基本思想&#xff08;时间复杂度小于等于根号…

【GEE】基于GEE可视化和下载Landsat8 L2A数据(镶嵌、裁剪)

之前发过一篇使用GEE下载Landsat8的文章&#xff0c;然后有很多小伙伴私信我各种问题&#xff0c;如L1C、L2数据代码怎么修改&#xff0c;如何镶嵌&#xff0c;如何去云、 如何裁剪等一系列问题。正好快过年了&#xff0c;手头的事也没有多少了&#xff0c;所以这两天整理了一下…

解决PS图片打印不清楚(锐化)

解决PS图片打印不清楚&#xff08;锐化&#xff09; 操作如下&#xff1a;

Antd中使用Select框 在点出弹出下拉列表后 鼠标移到外面滚动会导致下拉框位置偏移

今天使用Select框的时候 由于页面可以滚动 出现了 在点出弹出下拉列表后 鼠标移到外面滚动会导致下拉框位置偏移的bug 如图 上下滚动外部页面会导致下拉框偏移 解决方案&#xff1a; Antd 官方文档 文档中Select框有一个元素 getPopupContainer 并且有一行小字提示 注意…

使用goland IDE编写go windows ui

最近突发奇想&#xff0c;想实现一款工作节奏的提示安排小闹钟。那首先解决的就是UI。本人擅长go语言。那go在windows ui的探索肯定有人做过了吧。一查还真有&#xff0c;通过知乎&#xff0c;csdn等查到目前支持最好的就是walk库了。那走起试试。 一、拷贝go代码 将官网例子…

miniReact<一>

一、工程化配置 1.1 目录结构 1.1.1 Multi-repo VS Mono-repo Multi-repo 每个库有自己独立的仓库&#xff0c;逻辑清晰&#xff0c;协同管理复杂 Mono-repo 很方便管理不同独立的库的生命周期&#xff0c;会有更高的操作复杂度 项目有很多包&#xff0c;同时管理多个不同的…

Java技术栈 —— Spring MVC 与 Spring Boot

参考文章或视频链接[1] Spring vs. Spring Boot vs. Spring MVC[2] Key Differences Between Spring vs Spring Boot vs Spring MVC

如何给图片压缩大小?3种方法任你选择!

如何给图片压缩大小&#xff1f;在日常生活中&#xff0c;将图片压缩可以带来很多便利。首先&#xff0c;对于需要在网络上分享或传输的图片&#xff0c;压缩可以大大减少文件大小&#xff0c;加快上传和下载速度。其次&#xff0c;还可以帮助他们节省空间&#xff0c;存放更多…

Flex布局,几行代码就可以实现瀑布流布局,代码简单,定制化强。

原理很简单&#xff0c;计算图片的宽高&#xff0c;再计算每列的使用高度&#xff0c;然后再将当前图片放置在列高最小的一列。其实这种方式使用什么方式布局都无所谓&#xff0c;我使用的是flexd布局。Flex的使用在这里就不讲解了&#xff0c;网上的教程一大堆。这里讲解使用V…

数据治理到底是什么?为什么要做数据治理?

数据治理的两个目标&#xff1a;一个是提质量&#xff0c;一个是控安全。通过业务流程优化&#xff0c;规范数据从产生、处理、使用到销毁的整个生命周期&#xff0c;使得数据在各阶段、各流程环节安全可控&#xff0c;合规使用。 数据治理治的是“数据”吗&#xff1f; 数据是…

springboot与springcloud之间的版本对应关系

https://start.spring.io/actuator/info 当然&#xff0c;你可以直接在&#xff1a; https://spring.io/projects/spring-cloud 上看文档查询&#xff0c; 不过&#xff0c;最后应该是调到这里的&#xff1a; https://github.com/spring-cloud/spring-cloud-release/wiki/Suppo…