mysql基本使用

MySQL的基本使用

软件的安装与配置

安装服务端:sudo apt-get install mysql-server

安装命令行客户端:sudo apt-get install mysql-client

配置服务端(允许root用户远程登陆mysql,不推荐,推荐使用ssh远程登陆服务器,登陆mysql) :

启动服务端:sudo service mysql restart[start stop]

查看运行状态:ps -aux|grep mysql

数据库的操作

创建

创建数据库 :create database jing_dong charset=utf8;

查看所有数据库:show database();

选择数据库:use jing_dong;

查看当前数据库:select database();

查看当前所有数据表:show tables;

创建数据表:create table goods(

);

查看数据表创建修改等信息:show create table goods;

查看数据表表头:desc goods;

查看数据表的所有内容:select * from goods;

添加数据库:create database jing_dong charset=utf8;

添加数据表:create table goods(

);

添加字段:选择数据库后,因为不知使用哪个数据表,因此需要有 table

添加记录:insert into goods values(0,'r510vc 15.6英寸笔记本','笔记本','华硕','3399',default,default);

删除数据库:drop database jing_dong;

删除数据表:drop table goods;

删除字段:alter table goods drop id2;

删除记录:

修改数据库:导出库、导入库修改

修改数据表:alter table tblname rename[to|as] newtbl_name

修改字段:

修改记录:update students set gender=0,hometown='北京' where id=5;

查看其他:

查看数据库:

查看数据表:

查看字段:desc goods;

查看记录:select * from goods;

数据查询

基本查询

查询所有字段:select * from students

查询指定字段:

使用 as 给字段起别名:select id as 序号,name as 名字 from students

可以通过 as 给表起别名:select s.id,s.name from students as s

消除重复行:

条件查询

比较运算符:等于: =、大于: >、大于等于: >=、小于:

逻辑运算符:and、or、not、条件1 and 条件2、条件1 or 条件2、not 条件

模糊查询:like:%表示任意多个任意字符、_表示一个任意字符, rlike(正则表达式)

范围查询:in、not in、between and、not between and

空判断:is null、is not null

排序查询

聚合函数查询

分组查询

分页查询

连接查询

自关联

子查询

表的拆分以及增加外键

数据库的设计

范式

第一范式:每个字段只有一个信息内容,即保持列的原子性。

第二范式:满足第一范式,主键涵盖所有的字段,不能有的字段不在主键的涵盖范围之内,或者需要多个字段才能描述主键,例如C依赖A也依赖B。

第三范式:满足第二范式,主键与各个字段之间是直接依赖关系,不能需要传递依赖,例如C依赖B,B依赖A。

E-R模型

一对一模型:即两个表之间根据主键相互对应,实体A对实体B为一对一,则表A或表B中创建一个字段,储存另一个表的主键。例如班级学生姓名表与学生基本信息表。

一对多模型:A表中的一条记录对应B中的多条记录,那么在B中创建一个字段储存A的主键。例如班级表与每个班级学生姓名表。

多对多模型:实体A对实体B为多对多时,新建一张表C,分别储存A、B的主键。例如班级学生表与选修课程学生表外加学生与选修课程对应关系表。

其他

表必须有主键,例如自增主键、不存大文件(存图片或者视频的地址)、尽量少用外键(尤其庞大的数据库,使之更加庞大、会极大的降低表更新的效率 )、少用索引(建立太多的索引将会影响更新和插入的速度,因为它需要同样更新每个索引文件)

SQL注入

备注

备份与恢复

视图

定义

被抽象出的一张虚拟的表,通俗的讲,视图就是一条SELECT语句执行后返回的结果集。所以我们在 创建视图的时候,主要的工作就落在创建这条SQL查询语句上。视图是对若干张基本表的引用,一张虚表,查询语句执行的结果,不存储具体的数据(基本表数据发生了改变,视图也会跟着改变)。使用频繁的字段,主键默认为索引,主要用于大数据类型的查询,储存在硬盘中、原表数据变化了,视图也会跟着更新。

意义

方便操作,特别是查询操作,减少复杂的SQL语句,增强可读性、提高了重用性,就像一个函数、对数据库重构,却不影响程序的运行、提高了安全性能,可以对不同的用户、让数据更加清晰

用法

事务

事务四大特性(简称ACID)

原子性(Atomicity)

一致性(Consistency)

隔离性(Isolation)

持久性(Durability)

事务命令

查看表的创建语句,可以看到engine=innodb

开启事务:

开启事务后执行修改命令,变更会维护到本地缓存中,而不维护到物理表中

begin;或者start transaction;

提交事务

将缓存中的数据变更维护到物理表中

commit;

回滚事务

放弃缓存中变更的数据

rollback;

注意

修改数据的命令会自动的触发事务,包括insert、update、delete

而在SQL语句中有手动开启事务的原因是:可以进行多次数据的修改,如果成功一起成功,否则一起会滚到之前的数据

python与mysql的结合使用

索引

定义

目的

原理

使用

注意:

多账户

MySQL账户体系

账户的操作主要包括创建账户、删除账户、修改密码、授权权限等。

注意

用法

远程登陆(危险)

主从

主从同步的定义

主从同步的作用

数据安全

读写分离

负载均衡

主从同步的机制

配置主从同步的基本步骤

在主服务器上,必须开启二进制日志机制和配置一个独立的ID

在每一个从服务器上,配置一个唯一的ID,创建一个用来专门复制主服务器数据的账号

在开始复制进程前,在主服务器上记录二进制文件的位置信息

如果在开始复制之前,数据库中已经有数据,就必须先创建一个数据快照(可以使用mysqldump导出数据库,或者直接复制数据文件)

配置从服务器要连接的主服务器的IP地址和登陆授权,二进制日志文件名和位置

主服务器数据备份备份

主服务器配置文件

设置log_bin和server-id

重启mysql服务

创建用于从服务器同步数据使用的帐号

获取主服务器的二进制日志信息

配置从服务器slave(mysql版本一致)

windows安装mysql(与Ubuntu版本一致)

1、彻底删除已存在的mysql

2、解压文件,配置my.ini文件

3、安装MySQL,并初始化、设置mysql环境变量

以管理员的身份切换到安装文件的bin目录下

环境变量名 mysql

4、在my.ini中添加 skip-grant-tables 后重启mysql(在服务里面找到MySQL),使用任何密码均可登陆。

5、以随意密码登陆,设置新的密码,刷新

从服务器数据还原

将备份的master_db.sql文件放到MySQL文件夹下的bin目录下

以管理员身份运行cmd

mysql -uroot -p

配置MySQL文件

widows:

linux:

重启从mysql服务

在打开的服务管理中找到MySQL5.7,并重启该服务

连接主mysql

进入windows的mysql,设置连接到master主服务器

mysql> change master to masterhost='192.168.18.42', masteruser='slave', masterpassword='slave',masterlogfile='mysql-bin.000001', masterlog_pos=154;

开启同步,查看同步状态

测试主从同步

  • 发表于:
  • 原文链接:https://kuaibao.qq.com/s/20180730G1UF0B00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

同媒体快讯

扫码关注云+社区

领取腾讯云代金券