当前位置:   article > 正文

mysql8安装基础操作(一)_mysql安装教程8.0.36

mysql安装教程8.0.36

一、下载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
  • 1
  • 2
  • 3
  • 4
  • 5

2.下载包

官网地址

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

如下图:

在这里插入图片描述

具体下载地址如下:

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

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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

5.初始化数据库

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

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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

7.开机启动

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

二、database基本操作

1.mysql中的注释

在mysql中注释使用 #

2.查看所有数据库

mysql> show databases;
  • 1

3.切换数据库

mysql> use sys;
Database changed
  • 1
  • 2

4.查看所有表

mysql> show tables;
  • 1

5.创建数据库

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

6.删除数据库

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

三、表的基本操作

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 '字段说明'],
)[表的一些设置参数]
  • 1
  • 2
  • 3
  • 4
  • 5

例子:

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

3.表结构相关操作

3.1 查看表的创建语句

mysql> show create table student;
  • 1

3.2 查看表结构

mysql> desc student;
  • 1

3.3 删除表

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

3.4 添加字段

语法:

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

例子:为student表添加about字段

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

3.5 修改字段名

语法

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

实例: 将about字段名改为news

alter table student change about news varchar(20);
  • 1

3.6 删除列

语法:

alter table 表名 drop 列名;
  • 1

例子:删除news字段

mysql> 
mysql> alter table student drop news;
  • 1
  • 2

3.7 修改表名

语法:

rename table 原表名 to 新表名;
  • 1

例子: 将student表改为stu;

mysql> rename table student to stu;
  • 1

4.insert语句

4.1 语法

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

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

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

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

4.2 插入实例

全部插入为空值

insert into student values();
  • 1

插入具体值

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

5.update语句

语法:

修改所有的列
update 表名 set 字段名=值,字段名=值,......;


修改满足条件的列
update 表名 set 字段名=值,字段名=值 where 条件;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

实例:

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

6.delete语句

语法:

删除表内所有内容
delete from;

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

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

6.1 实例:

delete from student;

delete from student where name='zhangsan';
  • 1
  • 2
  • 3

6.2 删除值为NULL的行

delete from student where id is NULL;
  • 1

四、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
 );
  • 1
  • 2
  • 3
  • 4
  • 5

3.3 添加多列主键

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

create table(
	字段1 类型 约束条件,
	......
	primary key(字段1,字段2)
	
)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

3.4 alter 添加主键

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

语法:

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

例子:

alter table teacher add primary key(id);
  • 1

3.5 删除主键

alter table  表名 drop primary key;
  • 1

4.自增长约束

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

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

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

create table teacher(
	id int primary key auto_increment,
	name varchar(20)
);
  • 1
  • 2
  • 3
  • 4

插入数据

insert into teacher values(NULL,'zhangsan');
insert into teacher values(NULL,'lisi');
insert into teacher values(NULL,'wangwu');
  • 1
  • 2
  • 3

结果如下:

mysql> select * from teacher;
+----+----------+
| id | name     |
+----+----------+
|  1 | zhangsan |
|  2 | lisi     |
|  3 | wangwu   |
+----+----------+
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

5.非空约束

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

5.1 现有字段添加not null

alter tablemodify 字段 类型 not null;
  • 1

6.唯一约束

语法:创建表时添加

create table teacher(
	id int, 
	name char unique
);
  • 1
  • 2
  • 3
  • 4

创建完后的表

alter table teacher add unique(id);
  • 1

7.默认约束

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

create table teacher(
	name varchar(20),
	age int default 20
);
  • 1
  • 2
  • 3
  • 4
insert into teacher (name) values('zhangsan');

mysql> select * from teacher;
+----------+------+
| name     | age  |
+----------+------+
| zhangsan |   20 |
+----------+------+
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/291892
推荐阅读
相关标签
  

闽ICP备14008679号