10、MYSQL函数

Mysql函数

运算函数

1、绝对值函数

ABS(x):用于给x求绝对值,一个负数的绝对值等于它的相反数,一个正数的绝对值等于它本身

例:

mysql> SELECT ABS(10.5);
+-----------+
| ABS(10.5) |
+-----------+
|      10.5 |
+-----------+
1 row in set (0.00 sec)

mysql> SELECT ABS(-10.5);
+------------+
| ABS(-10.5) |
+------------+
|       10.5 |
+------------+
1 row in set (0.00 sec)

2、圆周率函数

PI():周长和直径的比值

8、索引

索引


概念

索引是一个存在于磁盘中,对一列或者多列值进行排序的结构

用于提高查询速度,使用索引可以提高数据库中指定数据的查询速度,且索引是一个单独存在的内容,属于提高查询速度的最佳途径


索引算法

btree

hash

7、查询语句SELECT

一、查询语句SELECT

语法:

SELECT *|字段 FROM 表名 [WHERE 条件判断] [ORDER BY 字段] [GROUP BY 字段] [HAVING 条件判断] [LIMIT OFFSET COUNT]

查询顺序:

from,where,group by,having,having只能在group by后面使用,where不能查询聚合函数,而having可以,且运算顺序为如果两者同时存在,where在having之前进行筛选顺序

创建一个fruits表,进行查询练习

6、MYSQL运算符

mysql运算符!

一、算数运算符

​ + - * / %(求余运算)

mysql> CREATE TABLE test3(num INT);                /*创建一个表,表中有一个字段,类型为INT*/
Query OK, 0 rows affected (0.13 sec)

mysql> INSERT INTO test3 VALUES(40);            /*字段中插入一个数字40*/
Query OK, 1 row affected (0.00 sec)

mysql> SELECT * FROM test3;
+------+
| num  |
+------+
|   40 |
+------+
1 row in set (0.00 sec)
/*使用算数运算符来操作表中的INT字段*/
mysql> SELECT num,num+10,num-100,num*3,num/3,num%3 FROM test3;
/*使用算数运算符查看test3的num字段,以及字段中的值+10的结果,值-100的结果,值*3的结果,值/3的结果,值除以3之后的余数*/
+------+--------+---------+-------+---------+-------+
| num  | num+10 | num-100 | num*3 | num/3   | num%3 |
+------+--------+---------+-------+---------+-------+
|   40 |     50 |     -60 |   120 | 13.3333 |     1 |
+------+--------+---------+-------+---------+-------+
1 row in set (0.01 sec)
mysql> ALTER TABLE test3 MODIFY num DECIMAL(4,1);   /*修改数据类型为定点数据类型保留小数一位*/
Query OK, 1 row affected (0.03 sec)
Records: 1  Duplicates: 0  Warnings: 0

mysql> INSERT INTO test3 VALUES(40.2);        /*插入带有小数点的一个值40.2*/
Query OK, 1 row affected (0.00 sec)

mysql> SELECT  num%3 FROM test3;   
/*小数点后的数字不参与取余的运算,直接拿余数+小数位的数字,也就是40.2中40除以3余1,在加上剩下的0.2*/
+-------+
| num%3 |
+-------+
|   1.0 |
|   1.2 |
+-------+

二、比较运算符(用来判断真假命题,也就是返回值为1(真)或者0(假)

5、DML数据操纵语言

DML数据操纵语言(UPDATE)

UPDATE

语法:

4、MYSQL数据类型

MySQL数据类型

如果在生产环境中mysql中存在有大量的数据库以及数据表,这个时候要找到某个表在哪个库中

在mysql的安装目录的数据目录下可以通过find找到关于表的数据文件

.frm 文件 //为表结构文件存放表中的结构

.MYI文件 //表示使用MyISAM存储引擎,用于存放数据的文件

.MYD //表示使用MyISAM存储引擎,用于存放表索引的文件

3、alter修改表的语法

一、查看表结构的语法

   DESC 表名;
   DESCRIBE 表名;

查看详细表结构的语法(可以查看到存储引擎和默认字符集)

   SHOW CREATE TABLE 表名\G

无论使用以上何种方法都无法获取表中的数据,只能通过DQL进行查看

二、ALTER(在mysql中所有内容的名字不能和命令重名,否则失败)

1、修改表名

​ 语法:
​ alter table 表名 rename 新表名 //修改表名
​ alter table 表名 rename to 库名.新表名 //修改表名并迁移到另一个库

(1)mysql中不能出现同名的数据库

2、MYSQL约束条件语法

MYSQL约束条件语法

1、创建表

CREATE TABLE 表名(
  字段1 数据类型 [完整性约束条件],
  字段2 数据类型 [完整性约束条件]……
   );

完整性约束条件:给字段进行限制,要求用户写入符合约束条件所制定的数据,如果不符合约束条件的要求,则写入失败

约束条件 说明
PRIMARY KEY 标识该属性为该表的主键,用于唯一性的标识数据
FOREIGN KEY 标识该属性为该表的外键,是与之联系的某表的主键
NOT NULL 标识该属性不能写入空值
UNIQUE 标识该属性的值唯一

1、初识mysql数据库

mysql

初识数据库mysql

1、mysql数据库基础知识

是一个开放源代码的数据库管理系统(DBMS)
是一个跨平台的开源关系数据库管理系统
适用于中小型网站公司开发

阿里提出去IOE(IBM中小型服务器、oracle数据库、EMC存储设备)
使用国产产品来代替,如 多个mysql代替一个oracle数据库,阿里使用了自己的工程师集百家所长研发的

数据库由库、表、数据组成

2、什么是数据库

mysql已经不再是关系型数据库,就是一个存放数据的仓库

Only one搭建LNMP

LNMP

LNMP是Linux+Nginx+Mysql+PHP的组合方式

使用LNMP的主要原因还是因为Nginx体积小,方便后期对于网络的环境变换(灵活)、切换和方便调试,比较符合轻量级, 相比 Apache,Nginx 使用更少的资源,支持更多的并发连接,体现更高的效率,也可作为负载均衡及反向代理服务器,做到动静分离

Only one也就是LNMP全部都安装在一台Linux服务器

MySQL双主复制

MySQL主主复制


概念

主主复制:实际上与主从复制原理类似,就是两台mysql互为主从,既为主又为从

为什么,会有mysql的主主复制。因为在一些高可用的环境中,mysql的主从不能满足现实中的一些实际需求。比如,一些流量大的网站数据库访问有了瓶颈,需要负载均衡的时候就用两个或者多个的mysql服务器,而这些mysql服务器的数据库数据必须要保持一致,那么就会用到主主复制。

MySQL主从复制

主从复制:将主mysql上的数据复制到从mysql的过程(1主拖8从)

master为主服务器,slave为从服务器,数据属于单向流动,由主到从。

复制属于异步过程,因为在主服务器写入数据后,从服务器需要拉取主服务器的二进制日志来复制数据,中间存在拉取日志的时间间隔,所以是异步过程。

主从复制可以提高数据库的数据安全性,当主服务器宕机时,从服务器可以提供主服务器一样的数据,实现高可用。

MySQL单机多实例安装使用

MySQL多实例

多实例概念

在mysql3.25.15版本之后推出复制功能,复制意味着将一台服务器中的数据转移到另外一台或者多台服务器的过程

单机部署多个mysql,因为mysql占用资源少,体积小,所以如果一台服务器只安装一个mysql服务,会出现资源过剩的情况,可以将不同的mysql安装到不同的硬盘

MySQL复制流程

(1)主服务器将对于mysql更改的语句记录到二进制日志文件中(DDL,DML)也有一些DCL会被记录

(2)主服务器在确定授权用户之后,从服务器将主服务器的二进制日志复制到自己的中继日志中(relay-log)

(3)从服务器通过sql线程执行拉取到中继日志中的sql语句,将日志中的内容在从服务器重新执行一遍得到和主服务器一样的数据(事务)

部署MySQL

需要用到cmake和mysql的tar包,编译mysql需要使用cmake 解决依赖关系 yum -y install ncurses-devel 解压cmake并编译安装 tar zxf cmake-3.15.1.tar.gz -C /usr/src cd /usr/src/cmake-3.15.1/ ./configure && gmake && gmak...




正在载入...
PoweredHexo
HostedAliyun
DNSAliyun
ThemeVolantis
UV
PV
BY-NC-SA 4.0