热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

表——完整约束性规则(键)

一介绍约束条件与数据类型的宽度一样,都是可选参数作用:用于保证数据的完整性和一致性主要分为:primarykey(PK)标识该字段为该表的
一 介绍

约束条件与数据类型的宽度一样,都是可选参数

作用:用于保证数据的完整性和一致性
主要分为:

primary key (PK) 标识该字段为该表的主键,可以唯一的标识记录
foreign key (FK) 标识该字段为该表的外键
not null 标识该字段不能为空
unique key (UK) 标识该字段的值是唯一的
auto_increment 标识该字段的值自动增长(整数类型,而且为主键)
default 为该字段设置默认值unsigned 无符号
zerofill 使用0填充

说明:

1. 是否允许为空,默认NULL,可设置NOT NULL,字段不允许为空,必须赋值2. 字段是否有默认值,缺省的默认值是NULL,如果插入记录时不给字段赋值,此字段使用默认值sex enum('male','female') not null default 'male' #设置了不能为空,为空时默认使用male

age int unsigned NOT NULL default
20 必须为正值(无符号) 不允许为空 默认是203. 是否是key
主键 primary key
外键 foreign key
索引 (index,unique...)

 

二 not null与default

是否可空,null表示空,非字符串
not null - 不可空
null - 可空


默认值,创建列时可以指定默认值,当插入数据时如果未主动设置,则自动添加默认值
create table tb1(
id int not null defalut 2,
num int not null
)

==================not null====================
mysql
> create table t1(id int); #id字段默认可以插入空
mysql> desc t1;
+-------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
+-------+---------+------+-----+---------+-------+
mysql
> insert into t1 values(); #可以插入空
mysql> create table t2(id int not null); #设置字段id不为空
mysql> desc t2;
+-------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| id | int(11) | NO | | NULL | |
+-------+---------+------+-----+---------+-------+
mysql
> insert into t2 values(); #不能插入空
ERROR 1364 (HY000): Field 'id' doesn't have a default value==================default====================
#设置id字段有默认值后,则无论id字段是null还是not null,都可以插入空,插入空默认填入default指定的默认值
mysql> create table t3(id int default 1);
mysql
> alter table t3 modify id int not null default 1;==================综合练习====================
mysql
> create table student(-> name varchar(20) not null,-> age int(3) unsigned not null default 18,-> sex enum('male','female') default 'male',-> hobby set('play','study','read','music') default 'play,music'-> );
mysql
> desc student;
+-------+------------------------------------+------+-----+------------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+------------------------------------+------+-----+------------+-------+
| name | varchar(20) | NO | | NULL | |
| age | int(3) unsigned | NO | | 18 | |
| sex | enum('male','female') | YES | | male | |
| hobby | set('play','study','read','music') | YES | | play,music | |
+-------+------------------------------------+------+-----+------------+-------+
mysql
> insert into student(name) values('egon');
mysql
> select * from student;
+------+-----+------+------------+
| name | age | sex | hobby |
+------+-----+------+------------+
| egon | 18 | male | play,music |
+------+-----+------+------------+

验证

 

三 unique

============设置唯一约束 UNIQUE===============
方法一:
create table department1(
id int,
name varchar(
20) unique,
comment varchar(
100)
);方法二:
create table department2(
id int,
name varchar(
20),
comment varchar(
100),
constraint uk_name unique(name)
# 给UNIQUE KEY设置名字:uk,不设置系统也会给它命一个命称
);mysql> insert into department1 values(1,'IT','技术');
Query OK,
1 row affected (0.00 sec)mysql> insert into department1 values(1,'IT','技术');
ERROR
1062 (23000): Duplicate entry 'IT' for key 'name' #因为设置了唯一,但是赋值时重复了

unique设置方法

mysql> create table t1(id int not null unique);
Query OK, 0 rows affected (
0.02 sec)mysql> desc t1;
+-------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| id | int(11) | NO | PRI | NULL | |
+-------+---------+------+-----+---------+-------+
1 row in set (0.00 sec)

not null+unique的化学反应=primary key

create table service(
id int primary key auto_increment,
name varchar(
20),
host varchar(
15) not null,
port int
not null,
unique(host,port)
#联合唯一 host和port都相同时才报错
);mysql> insert into service values-> (1,'nginx','192.168.0.10',80),-> (2,'haproxy','192.168.0.20',80),-> (3,'mysql','192.168.0.30',3306)-> ;
Query OK,
3 rows affected (0.01 sec)
Records:
3 Duplicates: 0 Warnings: 0mysql> insert into service(name,host,port) values('nginx','192.168.0.10',80);
ERROR
1062 (23000): Duplicate entry '192.168.0.10-80' for key 'host'

联合唯一

 

四 primary key

primary key字段的值不为空且唯一

一个表中可以:

单列做主键
多列做主键(复合主键) ,有多列唯一的效果

但一个表内只能有一个主键primary key

 

============单列做主键===============
#方法一:not null+unique
create table department1(
id int
not null unique, #主键
name varchar(20) not null unique,
comment varchar(
100)
);mysql
> desc department1;
+---------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+--------------+------+-----+---------+-------+
| id | int(11) | NO | PRI | NULL | |
| name | varchar(20) | NO | UNI | NULL | |
| comment | varchar(100) | YES | | NULL | |
+---------+--------------+------+-----+---------+-------+
rows
in set (0.01 sec)#方法二:在某一个字段后用primary key
create table department2(
id int primary key,
#主键
name varchar(20),
comment varchar(
100)
);mysql
> desc department2;
+---------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+--------------+------+-----+---------+-------+
| id | int(11) | NO | PRI | NULL | |
| name | varchar(20) | YES | | NULL | |
| comment | varchar(100) | YES | | NULL | |
+---------+--------------+------+-----+---------+-------+
rows
in set (0.00 sec)#方法三:在所有字段后单独定义primary key
create table department3(
id int,
name varchar(
20),
comment varchar(
100),
constraint pk_name primary key(id);
#创建主键并为其命名pk_name

mysql
> desc department3;
+---------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+--------------+------+-----+---------+-------+
| id | int(11) | NO | PRI | NULL | |
| name | varchar(20) | YES | | NULL | |
| comment | varchar(100) | YES | | NULL | |
+---------+--------------+------+-----+---------+-------+
rows
in set (0.01 sec)

单列主键

==================多列做主键================
create table service(
ip varchar(
15),
port char(
5),
service_name varchar(
10) not null,
primary key(ip,port)
);mysql
> desc service;
+--------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------------+-------------+------+-----+---------+-------+
| ip | varchar(15) | NO | PRI | NULL | |
| port | char(5) | NO | PRI | NULL | |
| service_name | varchar(10) | NO | | NULL | |
+--------------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)mysql> insert into service values-> ('172.16.45.10','3306','mysqld'),-> ('172.16.45.11','3306','mariadb')-> ;
Query OK,
2 rows affected (0.00 sec)
Records:
2 Duplicates: 0 Warnings: 0mysql> insert into service values ('172.16.45.10','3306','nginx'); #重复了,报错
ERROR 1062 (23000): Duplicate entry '172.16.45.10-3306' for key 'PRIMARY'

多列主键

 

 

五 auto_increment

约束字段为自动增长,被约束的字段必须同时被key约束

#不指定id,则自动增长
create table student(
id int primary key auto_increment,
name varchar(
20),
sex enum(
'male','female') default 'male'
);mysql
> desc student;
+-------+-----------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+-----------------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(20) | YES | | NULL | |
| sex | enum('male','female') | YES | | male | |
+-------+-----------------------+------+-----+---------+----------------+
mysql
> insert into student(name) values-> ('egon'),-> ('alex')-> ;mysql> select * from student;
+----+------+------+
| id | name | sex |
+----+------+------+
| 1 | egon | male |
| 2 | alex | male |
+----+------+------+#也可以指定id
mysql> insert into student values(4,'asb','female');
Query OK,
1 row affected (0.00 sec)mysql> insert into student values(7,'wsb','female');
Query OK,
1 row affected (0.00 sec)mysql> select * from student;
+----+------+--------+
| id | name | sex |
+----+------+--------+
| 1 | egon | male |
| 2 | alex | male |
| 4 | asb | female |
| 7 | wsb | female |
+----+------+--------+#对于自增的字段,在用delete删除后,再插入值,该字段仍按照删除前的位置继续增长
mysql> delete from student;
Query OK,
4 rows affected (0.00 sec)mysql> select * from student;
Empty set (
0.00 sec)mysql> insert into student(name) values('ysb');
mysql
> select * from student;
+----+------+------+
| id | name | sex |
+----+------+------+
| 8 | ysb | male |
+----+------+------+#应该用truncate清空表,比起delete一条一条地删除记录,truncate是直接清空表,在删除大表时用它
mysql> truncate student;
Query OK, 0 rows affected (
0.01 sec)mysql> insert into student(name) values('egon');
Query OK,
1 row affected (0.01 sec)mysql> select * from student;
+----+------+------+
| id | name | sex |
+----+------+------+
| 1 | egon | male |
+----+------+------+
1 row in set (0.00 sec)

View Code

#在创建完表后,修改自增字段的起始值
mysql> create table student(-> id int primary key auto_increment,-> name varchar(20),-> sex enum('male','female') default 'male'-> );mysql> alter table student auto_increment=3;mysql> show create table student;
.......
ENGINE
=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mysql> insert into student(name) values('egon');
Query OK,
1 row affected (0.01 sec)mysql> select * from student;
+----+------+------+
| id | name | sex |
+----+------+------+
| 3 | egon | male |
+----+------+------+
row
in set (0.00 sec)mysql> show create table student;
.......
ENGINE
=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8#也可以创建表时指定auto_increment的初始值,注意初始值的设置为表选项,应该放到括号外
create table student(
id int primary key auto_increment,
name varchar(
20),
sex enum(
'male','female') default 'male'
)auto_increment
=3;#设置步长
sqlserver:自增步长基于表级别create table t1(id int。。。)engine=innodb,auto_increment=2 步长=2 default charset=utf8mysql自增的步长:show session variables like 'auto_inc%';#基于会话级别set session auth_increment_increment=2 #修改会话级别的步长#基于全局级别的set global auth_increment_increment=2 #修改全局级别的步长(所有会话都生效)#!!!注意了注意了注意了!!!
If the value of auto_increment_offset is greater than that of auto_increment_increment, the value of auto_increment_offset is ignored.
翻译:如果auto_increment_offset的值大于auto_increment_increment的值,则auto_increment_offset的值会被忽略
比如:设置auto_increment_offset
=3,auto_increment_increment=2mysql> set global auto_increment_increment=5;
Query OK, 0 rows affected (
0.00 sec)mysql> set global auto_increment_offset=3;
Query OK, 0 rows affected (
0.00 sec)mysql> show variables like 'auto_incre%'; #需要退出重新登录
+--------------------------+-------+
| Variable_name | Value |
+--------------------------+-------+
| auto_increment_increment | 1 |
| auto_increment_offset | 1 |
+--------------------------+-------+create table student(
id int primary key auto_increment,
name varchar(
20),
sex enum(
'male','female') default 'male'
);mysql
> insert into student(name) values('egon1'),('egon2'),('egon3');
mysql
> select * from student;
+----+-------+------+
| id | name | sex |
+----+-------+------+
| 3 | egon1 | male |
| 8 | egon2 | male |
| 13 | egon3 | male |
+----+-------+------+

步长increment与起始偏移量offset:auto_increment_increment,auto_increment_offset

 

六 foreign key

 

CREATE TABLE 时的 SQL FOREIGN KEY 约束

下面的 SQL 在 "Orders" 表创建时在 "P_Id" 列上创建 FOREIGN KEY 约束:

MySQL:

CREATE TABLE Orders
(
O_Id int NOT NULL,
OrderNo int NOT NULL,
P_Id int,
PRIMARY KEY (O_Id),
FOREIGN KEY (P_Id) REFERENCES Persons(P_Id)
)

SQL Server / Oracle / MS Access:

CREATE TABLE Orders
(
O_Id int NOT NULL PRIMARY KEY,
OrderNo int NOT NULL,
P_Id int FOREIGN KEY REFERENCES Persons(P_Id)
)

如需命名 FOREIGN KEY 约束,并定义多个列的 FOREIGN KEY 约束,请使用下面的 SQL 语法:

MySQL / SQL Server / Oracle / MS Access:

CREATE TABLE Orders
(
O_Id int NOT NULL,
OrderNo int NOT NULL,
P_Id int,
PRIMARY KEY (O_Id),
CONSTRAINT fk_PerOrders FOREIGN KEY (P_Id)
REFERENCES Persons(P_Id)
)

 


ALTER TABLE 时的 SQL FOREIGN KEY 约束

当 "Orders" 表已被创建时,如需在 "P_Id" 列创建 FOREIGN KEY 约束,请使用下面的 SQL:

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Orders
ADD FOREIGN KEY (P_Id)
REFERENCES Persons(P_Id)

如需命名 FOREIGN KEY 约束,并定义多个列的 FOREIGN KEY 约束,请使用下面的 SQL 语法:

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Orders
ADD CONSTRAINT fk_PerOrders
FOREIGN KEY (P_Id)
REFERENCES Persons(P_Id)

 


撤销 FOREIGN KEY 约束

如需撤销 FOREIGN KEY 约束,请使用下面的 SQL:

MySQL:

ALTER TABLE Orders
DROP FOREIGN KEY fk_PerOrders

SQL Server / Oracle / MS Access:

ALTER TABLE Orders
DROP CONSTRAINT fk_PerOrders

 

 

 

员工信息表有三个字段:工号  姓名  部门

公司有3个部门,但是有1个亿的员工,那意味着部门这个字段需要重复存储,部门名字越长,越浪费

解决方法:

我们完全可以定义一个部门表

然后让员工信息表关联该表,如何关联,即foreign key

#表类型必须是innodb存储引擎,且被关联的字段,即references指定的另外一个表的字段,必须保证唯一#!!!先建被关联的表,并且被关联的字段必须唯一
create table department(
id int primary key,
name varchar(
20) not null
)engine
=innodb;#dpt_id外键,关联父表(department主键id),同步更新,同步删除

create table employee(
id int primary key,
name varchar(
20) not null,
dpt_id int,
constraint fk_name foreign key(dpt_id)
references department(id)
on delete cascade
on update cascade
)engine
=innodb;#先往父表department中插入记录
insert into department values
(
1,'欧德博爱技术有限事业部'),
(
2,'艾利克斯人力资源部'),
(
3,'销售部');#再往子表employee中插入记录
insert into employee values
(
1,'egon',1),
(
2,'alex1',2),
(
3,'alex2',2),
(
4,'alex3',2),
(
5,'李坦克',3),
(
6,'刘飞机',3),
(
7,'张火箭',3),
(
8,'林子弹',3),
(
9,'加特林',3)
;
#删父表department,子表employee中对应的记录跟着删
mysql> delete from department where id=3;
mysql
> select * from employee;
+----+-------+--------+
| id | name | dpt_id |
+----+-------+--------+
| 1 | egon | 1 |
| 2 | alex1 | 2 |
| 3 | alex2 | 2 |
| 4 | alex3 | 2 |
+----+-------+--------+#更新父表department,子表employee中对应的记录跟着改
mysql> update department set id=22222 where id=2;
mysql
> select * from employee;
+----+-------+--------+
| id | name | dpt_id |
+----+-------+--------+
| 1 | egon | 1 |
| 3 | alex2 | 22222 |
| 4 | alex3 | 22222 |
| 5 | alex1 | 22222 |
+----+-------+--------+

示范

表1 foreign key 表2
则表1的多条记录对应表2的一条记录,即多对一利用foreign key的原理我们可以制作两张表的多对多,一对一关系
多对多:表1的多条记录可以对应表2的一条记录表2的多条记录也可以对应表1的一条记录一对一:表1的一条记录唯一对应表2的一条记录,反之亦然分析时,我们先从按照上面的基本原理去套,然后再翻译成真实的意义,就很好理解了

辅助理解

 

#多对一或称为一对多
三张表:出版社,作者信息,书一对多(或多对一):一个出版社可以出版多本书关联方式:foreign key建立多对一的关系需要注意
1 先建立被关联的表,被关联的字段必须保证是唯一的
2 再创建关联的表,关联的字段,一定要保证是可以重复的
ps:关联的字段一定是来自于表关联的表对应字段的值

=====================多对一=====================
先建立被关联的表create table press(
id int primary key auto_increment,
#被关联的字段必须保证是唯一的
name varchar(20)
);再创建关联的表create table book(
id int primary key auto_increment,
name varchar(
20),
press_id int
not null, #关联的字段,一定要保证是可以重复的
foreign key(press_id) references press(id)
on delete cascade
on update cascade
);insert into press(name) values
(
'北京工业地雷出版社'),
(
'人民音乐不好听出版社'),
(
'知识产权没有用出版社')
;insert into book(name,press_id) values
(
'九阳神功',1), #关联的字段一定是来自于表关联的表对应字段的值
('九阴真经',2),
(
'九阴白骨爪',2),
(
'独孤九剑',3),
(
'降龙十巴掌',2),
(
'葵花宝典',3)
;

例子

 

#多对多
三张表:出版社,作者信息,书多对多:一个作者可以写多本书,一本书也可以有多个作者,双向的一对多,即多对多关联方式:foreign key+一张新的表

=====================多对多=====================
create table author(
id int primary key auto_increment,
name varchar(
20)
);
#这张表就存放作者表与书表的关系,即查询二者的关系查这表就可以了

create table author2book(
id int primary key auto_increment,
author_id int
not null,
book_id int
not null,
foreign key(author_id) references author(id) on delete cascade on update cascade,
foreign key(book_id) references book(id)
on delete cascade
on update cascade,
unique (author_id,book_id)
);
#插入四个作者,id依次排开
insert into author(name) values('egon'),('alex'),('yuanhao'),('wpq');#每个作者与自己的代表作如下
1 egon: 1 九阳神功2 九阴真经3 九阴白骨爪4 独孤九剑5 降龙十巴掌6 葵花宝典2 alex: 1 九阳神功6 葵花宝典3 yuanhao:4 独孤九剑5 降龙十巴掌6 葵花宝典4 wpq:1 九阳神功insert into author2book(author_id,book_id) values
(
1,1),
(
1,2),
(
1,3),
(
1,4),
(
1,5),
(
1,6),
(
2,1),
(
2,6),
(
3,4),
(
3,5),
(
3,6),
(
4,1)
;

View Code

 

#一对一
两张表:学生表和客户表一对一:一个学生是一个客户,一个客户有可能变成一个学校,即一对一的关系关联方式:foreign key+unique

#一定是student来foreign key表customer,这样就保证了:
#
1 学生一定是一个客户,
#
2 客户不一定是学生,但有可能成为一个学生
create table customer(
id int primary key auto_increment,
name varchar(
20) not null
);create table student(
id int primary key auto_increment,
name varchar(
20) not null,
class_name varchar(
20) not null default 'python自动化',
level int default
1,
customer_id int unique,
#该字段一定要是唯一的
foreign key(customer_id) references customer(id) #外键的字段一定要保证unique
on delete cascade
on update cascade
);
#增加客户
insert into customer(name) values
(
'李飞机'),
(
'王大炮'),
(
'守榴弹'),
(
'吴坦克'),
(
'赢火箭'),
(
'战地雷')
;
#增加学生
insert into student(name,customer_id) values
(
'李飞机',1),
(
'王大炮',2)
;

View Code

 

 

多对一(一对多)、一对一、多对多的关系:

foreign key(表1_字段名) references 表2(字段名);

 

在表2的字段名是主键的情况下(即不为空,且唯一)

 

若表1的字段名不唯一,则是多对一

若表1的字段名唯一(unique),则是一对一

多对多则需要另建一个表来单独存放多对多的关系(即有关联的字段),

foreign key(新表_字段名1) references 表1(字段名)  on delete cascade on update cascade,

foreign key(新表_字段名2) references 表1(字段名) on delete cascade on update cascade;

 

外键对应的字段数据类型必须一致,两张表的存储引擎必须一致,否则会出错

 



推荐阅读
  • MySQL之left join表查询中发生字符集转换导致表索引失效
    mysql,之,left,join,表,查询,中,发生,字符,集,转换, ... [详细]
  • 本文介绍了Redis的基础数据结构string的应用场景,并以面试的形式进行问答讲解,帮助读者更好地理解和应用Redis。同时,描述了一位面试者的心理状态和面试官的行为。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • ZABBIX 3.0 配置监控NGINX性能【OK】
    1.在agent端查看配置:nginx-V查看编辑时是否加入状态监控模块:--with-http_stub_status_module--with-http_gzip_stat ... [详细]
  • Centos7安装MySql5.6
    如何在CentO ... [详细]
  • 数据库进入全新时代,腾讯云发布五大数据库提前布局
    8月28日,腾讯云数据库在京正式启动战略升级,宣布未来将聚焦云原生、自治、超融合三大战略方向,以用户为中心,联接未来。并在现场面向全球用户同步发布五大战略级新品,包括数据库智能管家 ... [详细]
  • 1.ATP方式安装在ubuntu系统的apt软件仓库中,默认存在MySQL数据库,所以直接使用apt命令就可以安装。使用命令:aptapt-getin ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • C# 7.0 新特性:基于Tuple的“多”返回值方法
    本文介绍了C# 7.0中基于Tuple的“多”返回值方法的使用。通过对C# 6.0及更早版本的做法进行回顾,提出了问题:如何使一个方法可返回多个返回值。然后详细介绍了C# 7.0中使用Tuple的写法,并给出了示例代码。最后,总结了该新特性的优点。 ... [详细]
  • 高质量SQL书写的30条建议
    本文提供了30条关于优化SQL的建议,包括避免使用select *,使用具体字段,以及使用limit 1等。这些建议是基于实际开发经验总结出来的,旨在帮助读者优化SQL查询。 ... [详细]
  • MySQL/MariaDB/PerconaDB提权条件漏洞
    背景  2016年11月01日,国外安全研究员DawidGolunski在MyS ... [详细]
  • 本文是搭建的mariadb-10.0.17版本的下载地址:https:downloads.mariadb.orginterstitialmariadb-10.0.17sourcemariadb-10.0.17.tar.gzfromhtt ... [详细]
  • centos7如何利用yum安装mysql 8.0.12
    这篇文章将为大家详细讲解有关centos7如何利用yum安装mysql8.0.12,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有 ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了CentOS7编译mysql8.0.12相关的知识,希望对你有一定的参考价值。步骤一:安装 ... [详细]
  • 如何部署Zabbix监控实现监测和报警机制
    这篇文章的知识点包括:Zabbix的安装部署、Zabbix监控的实现以及Zabbix报警机制的实现,阅读完整文相信大家对Zabbix监控的使用有了一定的认识。Zabb ... [详细]
author-avatar
筷子
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有