何二狗mysql笔记
此笔记经过精心整理,希望对你们有帮助,你们每一个赞都是我最大的鼓励,话不多说,先上脑图
mysql的简介:
1.MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),使用最常用的数据库管理语言–结构化查询语言(SQL)进行数据库管理。
- MySQL是开放源代码的,因此任何人都可以在General Public License的许可下下载并根据个性化的需要对其进行修改。
3.MySQL因为其速度、可靠性和适应性而备受关注。大多数人都认为在不需要事务化处理的情况下,MySQL是管理内容最好的选择。*该文本选自百度百科。
数据的基本组成:
- DB:数据库(database):可以理解为存放数据的仓库。
- DBMS:数据库管理系统:用于管理DB中的数据。
- SQL:结构化查询语言:专门与数据库通信的语言。
SQL的特点:
1.所有的DBMS都支持。
2.简单易学。
如何打开mysql:
1.直接按图标
- 通过Cmd连接数据库时:mysql -u账号 -p密码
什么是库?什么是表?什么是数据?
1.先将数据放入表中,表再放入库中。
2.数据库可以有很多表,每个表都有一个名字,用来标识数据,具有唯一性。
(可以用excel的概念来理解)
这个就是表的名字 | 如:姓名 |
---|---|
这个就是记载的数据 | 如:何二狗 |
下图代表了库,表,数据的关系:
- 什么是库?:库是用来存放n张表
- 什么是表?:在数据库中,表(table)类似于excel,可以用来存放数据
- 字段:类似于Excel中的表头
- 数据类型:字符串(varchar)、整数(tinyint、int、bigint)、小数(float)、日期(Date、datetime)等
- 什么是数据?:文本、视频、图片、音频等
注释
#单行注释
– 单行注释
/* */:多行注释
基础语法介绍
- net stop 服务器名:停止mysql服务
- net start 服务器名:开启mysql服务
- mysql -u账号 -p密码:打开mysql
- exit:退出mysql
- show databases:显示所有数据库
- show tables:显示所有的表
- show tables from 库名:显示指定库中的所有表
- select database():查询自己所在的库
- select * from 表名;显示表中的所有数据
- desc 表名; 查看指定表的结构
- use 库名\表名:进入库或表
DQL语法
基础查询
select 查询列表 from 表名;
1、查询列表是:表中的字段、常量值、表达式、函数
2、查询的结果是一个虚拟的表格
查询单个字段语法:
1.查询表中的单个字段
SELECT 字段名 FROM 表名
2.查询表中的多个字段
SELECT 字段,字段,字段 FROM 表名;
3.查询表中的所有字段
第一种:SELECT 写出所有字段 FROM 表名
第二种:SELECT * FROM 表名;
查询常量值
语法:select 常量;
查询表达式
SELECT 100%98;查询函数SELECT VERSION();
ps:用select简单语法查出来的未进行排序
限制结果
语句
select 表名 from 字段 limit 开始行,行数;
ps:如果不加开始行,则会从第一行开始检索
limit必须在order by之后
去重
语法:DISTINCT
select distinct 字段 from 表名;
ps:distinct应用于所有列,而不仅仅只是他后置的列。
起别名
作用:便于理解,且如果有重名易于区分。
第一种方法 :使用as。
语法:select 字段 as 别名 from 表名
第二种方法: 使用空格
SELECT last_name 姓,first_name 名 FROM 表名;
排序查询
特点:
1、asc :升序,(如果不写默认升序)
desc:降序
2、排序列表 支持 单个字段、多个字段、函数、表达式、别名
3、order by的位置一般放在查询语句的最后(除limit语句之外)
语法:
select 查询列表
from 表
where 筛选条件
order by 排序列表 【asc}desc】
ps:如果想在多个列上进行降序排序,必须对每个列指定desc关键词
同时对多个列进行排序时,优先满足第一个排序顺序
将多字段连接CONCAT(‘a’,‘b’,‘c’)
语法:
select CONCAT(字段,字段,字段) from 表单;
进阶:条件查询
语法:
select
查询列表from表名where
一、按条件表达式筛选
简单条件运算符:> < = != <> >= <=
二、按逻辑表达式筛选
逻辑运算符:
作用:用于连接条件表达式
&& || !
and or not
&&和and:两个条件都为true,结果为true,反之为false
||或or: 只要有一个条件为true,结果为true,反之为false
!或not: 如果连接的条件本身为false,结果为true,反之为false
ps:and在计算次序中优先级大于or 如果要让or优先,应该加一个括号
三、模糊查询
like
between and
in
is null /is not null:用于判断null值
like 查询
①一般和通配符搭配使用
通配符:
% 任意多个字符,包含0个字符
_ 任意单个字符
语法:
select *
from
表单
wherelast_name like '%查询数据%';
between and
①使用between and 可以提高语句的简洁度
②包含临界值
③两个临界值不要调换顺序
select 字段 from 表名 where 字段 between 限制 and 限制;
in 查询
可以显示in中指定的值
语法:
SELECT 字段, 字段, 字段, 字段
FROM 表名
WHERE 字段 IN (数据值, 数据值, 数据值);
正则表达式
算数计算
操作符 | 说明 |
---|---|
+ | 加 |
- | 减 |
* | 乘 |
/ | 除 |
常见函数
一、概述
功能:类似于java中的方法
好处:提高重用性和隐藏实现细节
调用:select 函数名(实参列表);
二、单行函数
字符函数
函数 | 作用 |
---|---|
concat: | 连接 |
substr | 截取子串 |
upper | 变大写 |
lower | 变小写 |
replace | 替换 |
length | 获取字节长度 |
trim | 去前后空格 |
lpad | 左填充 |
rpad | 右填充 |
instr | 获取子串第一次出现的索引 |
数学函数
函数 | 作用 |
---|---|
ceil | 向上取整 |
round | 四舍五入 |
mod | 取模 |
floor | 向下取整 |
truncate | 截断 |
rand | 获取随机数,返回0-1之间的小数 |
日期函数
now | 返回当前日期+时间 |
---|---|
year | 返回年 |
month | 返回月 |
day | 返回日 |
date_format | 将日期转换成字符 |
curdate | 返回当前日期 |
str_to_date | 将字符转换成日期 |
curtime | 返回当前时间 |
hour | 小时 |
minute | 分钟 |
second | 秒 |
datediff | 返回两个日期相差的天数 |
monthname | 以英文形式返回月 |
其他函数
version | 当前数据库服务器的版本 |
---|---|
database | 当前打开的数据库 |
user | 当前用户 |
password(‘字符’) | 返回该字符的密码形式 |
md5(‘字符’) | 返回该字符的md5加密形式 |
三、聚集函数
1、分类
max | 最大值 |
---|---|
min | 最小值 |
sum | 和 |
avg | 平均值 |
count | 计算个数 |
2、特点
①语法
select max(字段) from 表名;
②支持的类型
sum和avg一般用于处理数值型
max、min、count可以处理任何数据类型
③以上分组函数都忽略null
④都可以搭配distinct使用,实现去重的统计
select sum(distinct 字段) from 表;
⑤count函数
count(字段):统计该字段非空值的个数
count(*):统计结果集的行数
ifnull函数
功能:判断某字段或表达式是否为null,如果为null 返回指定的值,否则返回原本的值
语法:
select ifnull(字段,指定的值) from 表名;
isnull函数
功能:判断某字段或表达式是否为null,如果是,则返回1,否则返回0
分组查询
语法:
select 分组函数,分组后的字段
from 表
【where 筛选条件】
group by 分组的字段
【having 分组后的筛选】
【order by 排序列表】
特点
使用关键字 | 筛选的表 | 位置 | |
---|---|---|---|
分组前筛选 | where | 原始表 | group by的前面 |
分组后筛选 | having | 分组后的结果 | group by 的后面 |
连接查询
含义:又称多表查询,当查询的字段来自于多个表时,就会用到连接查询
笛卡尔乘积现象:表1 有m行,表2有n行,结果=m*n行
发生原因:没有有效的连接条件
如何避免:添加有效的连接条件
二、分类
1.sql92:
等值
非等值
自连接
也支持一部分外连接(用于oracle、sqlserver,mysql不支持)
2.sql99【推荐使用】
内连接
等值
非等值
自连接
外连接
左外
右外
全外(mysql不支持)
交叉连接
SQL92语法
1、等值连接
语法:
select 查询列表from 表1 别名,表2 别名where 表1.key=表2.key【and 筛选条件】【group by 分组字段】【having 分组后的筛选】【order by 排序字段】
特点:
① 一般为表起别名
②多表的顺序可以调换
③n表连接至少需要n-1个连接条件
④等值连接的结果是多表的交集部分
2、非等值连接
语法:
select 查询列表from 表1 别名,表2 别名where 非等值的连接条件【and 筛选条件】【group by 分组字段】【having 分组后的筛选】【order by 排序字段】
3、自连接
语法:
select 查询列表from 表 别名1,表 别名2where 等值的连接条件【and 筛选条件】【group by 分组字段】【having 分组后的筛选】【order by 排序字段】
SQL99语法
1、内连接
语法:
select 查询列表
from 表1 别名
【inner】 join 表2 别名 on 连接条件
where 筛选条件
group by 分组列表
having 分组后的筛选
order by 排序列表
limit 子句;
特点:
①表的顺序可以调换
②内连接的结果=多表的交集
③n表连接至少需要n-1个连接条件
分类:
等值连接
非等值连接
自连接
2、外连接
语法:
select 查询列表
from 表1 别名
left|right|full【outer】 join 表2 别名 on 连接条件
where 筛选条件
group by 分组列表
having 分组后的筛选
order by 排序列表
limit 子句;
特点:
①查询的结果=主表中所有的行,如果从表和它匹配的将显示匹配行,如果从表没有匹配的则显示null
②left join 左边的就是主表,right join 右边的就是主表
full join 两边都是主表
③一般用于查询除了交集部分的剩余的不匹配的行
3、交叉连接
语法:
select 查询列表
from 表1 别名
cross join 表2 别名;
特点:
类似于笛卡尔乘积
语法总结:
子查询
- 含义:
嵌套在其他语句内部的select语句称为子查询或内查询,
外面的语句可以是insert、update、delete、select等,一般select作为外面语句较多
外面如果为select语句,则此语句称为外查询或主查询 - 分类:
标量子查询(单行子查询):结果集为一行一列
列子查询(多行子查询):结果集为多行一列
行子查询:结果集为多行多列
表子查询:结果集为多行多列 - 出现位置:
select后面:
仅仅支持标量子查询
from后面:
表子查询
where或having后面:
标量子查询
列子查询
行子查询
exists后面:
标量子查询
列子查询
行子查询
表子查询
分页查询
如果要查询的条目数太多,一页显示不全就用它
语法:
select 查询列表
from 表
limit 【offset,】size;
offset代表的是起始的条目索引,默认从0卡死
size代表的是显示的条目数
联合查询
union:合并、联合,将多次查询结果合并成一个结果
语法:
查询语句1
union 【all】
查询语句2
union 【all】
...
要求:
- 多条查询语句的查询列数必须一致
- 多条查询语句的查询的各列类型、顺序最好一致
- union 去重,union all包含重复项
插入语法
一、方式一
语法:
insert into 表名(字段名,...) values(值,...);
特点:
1、要求值的类型和字段的类型要一致或兼容
2、字段的个数和顺序不一定与原始表中的字段个数和顺序一致
但必须保证值和字段一一对应
3、假如表中有可以为null的字段,注意可以通过以下两种方式插入null值
①字段和值都省略
②字段写上,值使用null
4、字段和值的个数必须一致
5、字段名可以省略,默认所有列
二、方式二
语法:
insert into 表名 set 字段=值,字段=值,...;
两种方式 的区别:
1.方式一支持一次插入多行,语法如下:
insert into 表名【(字段名,..)】 values(值,..),(值,...),...;
2.方式一支持子查询,语法如下:
insert into 表名
查询语句;
提高整体性能,降低语句的优先级
语法:
insert low_priority into
同样适用其他语法
修改语法
一、修改单表的记录 ★
语法:
update 表名 set 字段=值,字段=值 【where 筛选条件】;
二、修改多表的记录【补充】
语法:
update 表1 别名
left|right|inner join 表2 别名
on 连接条件
set 字段=值,字段=值
【where 筛选条件】;
在update语句中使用子查询
语法:
update 表名
select 值
ignore关键字
如果对update语句更新多行,出现错误时,则语句取消。使用此关键词,发生错误也能继续进行更新
语法:
update ignore 表明
删除语法
方式一:使用delete
一、删除单表的记录★
语法:
delete from 表名 【where 筛选条件】【limit 条目数】
二、级联删除[补充]
语法:
delete 别名1,别名2 from 表1 别名
inner|left|right join 表2 别名
on 连接条件【where 筛选条件】
方式二:使用truncate
语法:
truncate table 表名
两种方式的区别【面试题】★
- truncate删除后,如果再插入,标识列从1开始
delete删除后,如果再插入,标识列从断点开始 - delete可以添加筛选条件
truncate不可以添加筛选条件 - truncate效率较高
- truncate没有返回值
delete可以返回受影响的行数 - truncate不可以回滚
delete可以回滚
库的管理
一、创建库
create database 【if not exists】 库名【 character set 字符集名】;
二、修改库
alter database 库名 character set 字符集名;
修改库名
RENAME DATABASE books TO 新库名;
三、删除库
drop database 【if exists】 库名;
表的管理
一、创建表 ★
create table 【if not exists】 表名(字段名 字段类型 【约束】,字段名 字段类型 【约束】,。。。字段名 字段类型 【约束】 )
二、修改表
1.添加列
alter table 表名 add column 列名 类型 【first|after 字段名】;
2.修改列的类型或约束
alter table 表名 modify column 列名 新类型 【新约束】;
3.修改列名
alter table 表名 change column 旧列名 新列名 类型;
4 .删除列
alter table 表名 drop column 列名;
5.修改表名
alter table 表名 rename 【to】 新表名;
三、删除表
drop table【if exists】 表名;
四、复制表
1、复制表的结构
create table 表名 like 旧表;
2、复制表的结构+数据
create table 表名
select 查询列表 from 旧表【where 筛选】;
数据类型
一、数值型
1、整型
tinyint、smallint、mediumint、int/integer、bigint
1 2 3 4 8
特点:
①都可以设置无符号和有符号,默认有符号,通过unsigned设置无符号
②如果超出了范围,会报out or range异常,插入临界值
③长度可以不指定,默认会有一个长度
长度代表显示的最大宽度,如果不够则左边用0填充,但需要搭配zerofill,并且默认变为无符号整型
2、浮点型
定点数:decimal(M,D)
浮点数:
float(M,D) 4
double(M,D) 8
特点:
①M代表整数部位+小数部位的个数,D代表小数部位
②如果超出范围,则报out or range异常,并且插入临界值
③M和D都可以省略,但对于定点数,M默认为10,D默认为0
④如果精度要求较高,则优先考虑使用定点数
二、字符型
char、varchar、binary、varbinary、enum、set、text、blob
char:固定长度的字符,写法为char(M),最大长度不能超过M,其中M可以省略,默认为1
varchar:可变长度的字符,写法为varchar(M),最大长度不能超过M,其中M不可以省略
三、日期型
year年
date日期
time时间
datetime 日期+时间 8
timestamp 日期+时间 4 比较容易受时区、语法模式、版本的影响,更能反映当前时区的真实时间
常见的约束
一、常见的约束
NOT NULL:非空,该字段的值必填
UNIQUE:唯一,该字段的值不可重复
DEFAULT:默认,该字段的值不用手动插入有默认值
CHECK:检查,mysql不支持
PRIMARY KEY:主键,该字段的值不可重复并且非空 unique+not null
FOREIGN KEY:外键,该字段的值引用了另外的表的字段
主键和唯一
1、区别:
①、一个表至多有一个主键,但可以有多个唯一
②、主键不允许为空,唯一可以为空
2、相同点
都具有唯一性
都支持组合键,但不推荐
外键:
1、用于限制两个表的关系,从表的字段值引用了主表的某字段值
2、外键列和主表的被引用列要求类型一致,意义一样,名称无要求
3、主表的被引用列要求是一个key(一般就是主键)
4、插入数据,先插入主表
删除数据,先删除从表
可以通过以下两种方式来删除主表的记录
#方式一:级联删除
ALTER TABLE stuinfo ADD CONSTRAINT fk_stu_major FOREIGN KEY(majorid) REFERENCES major(id) ON DELETE CASCADE;
#方式二:级联置空
ALTER TABLE stuinfo ADD CONSTRAINT fk_stu_major FOREIGN KEY(majorid) REFERENCES major(id) ON DELETE SET NULL;
二、创建表时添加约束
create table 表名(字段名 字段类型 not null,#非空字段名 字段类型 primary key,#主键字段名 字段类型 unique,#唯一字段名 字段类型 default 值,#默认constraint 约束名 foreign key(字段名) references 主表(被引用列))
注意:
支持类型 可以起约束名
列级约束 除了外键 不可以
表级约束 除了非空和默认 可以,但对主键无效
列级约束可以在一个字段上追加多个,中间用空格隔开,没有顺序要求
三、修改表时添加或删除约束
1、非空
添加非空
alter table 表名 modify column 字段名 字段类型 not null;
删除非空
alter table 表名 modify column 字段名 字段类型 ;
2、默认
添加默认
alter table 表名 modify column 字段名 字段类型 default 值;
删除默认
alter table 表名 modify column 字段名 字段类型 ;
3、主键
添加主键
alter table 表名 add【 constraint 约束名】 primary key(字段名);
删除主键
alter table 表名 drop primary key;
4、唯一
添加唯一
alter table 表名 add【 constraint 约束名】 unique(字段名);
删除唯一
alter table 表名 drop index 索引名;
5、外键
添加外键
alter table 表名 add【 constraint 约束名】 foreign key(字段名) references 主表(被引用列);
删除外键
alter table 表名 drop foreign key 约束名;
四、自增长列
特点:
1、不用手动插入值,可以自动提供序列值,默认从1开始,步长为1
auto_increment_increment
如果要更改起始值:手动插入值
如果要更改步长:更改系统变量
set auto_increment_increment=值;
2、一个表至多有一个自增长列
3、自增长列只能支持数值型
4、自增长列必须为一个key
一、创建表时设置自增长列
create table 表(字段名 字段类型 约束 auto_increment
)
二、修改表时设置自增长列
alter table 表 modify column 字段名 字段类型 约束 auto_increment
三、删除自增长列
alter table 表 modify column 字段名 字段类型 约束
事务
一、含义
事务:一条或多条sql语句组成一个执行单位,一组sql语句要么都执行要么都不执行
二、特点(ACID)
A 原子性:一个事务是不可再分割的整体,要么都执行要么都不执行
C 一致性:一个事务可以使数据从一个一致状态切换到另外一个一致的状态
I 隔离性:一个事务不受其他事务的干扰,多个事务互相隔离的
D 持久性:一个事务一旦提交了,则永久的持久化到本地
三、事务的使用步骤 ★
了解:
隐式(自动)事务:没有明显的开启和结束,本身就是一条事务可以自动提交,比如insert、update、delete
显式事务:具有明显的开启和结束
使用显式事务:
①开启事务
set autocommit=0;
start transaction;#可以省略
②编写一组逻辑sql语句
注意:sql语句支持的是insert、update、delete
设置回滚点:
savepoint 回滚点名;
③结束事务
提交:commit;
回滚:rollback;
回滚到指定的地方:rollback to 回滚点名;
四、并发事务
1、事务的并发问题是如何发生的?
多个事务 同时 操作 同一个数据库的相同数据时
2、并发问题都有哪些?
脏读:一个事务读取了其他事务还没有提交的数据,读到的是其他事务“更新”的数据
不可重复读:一个事务多次读取,结果不一样
幻读:一个事务读取了其他事务还没有提交的数据,只是读到的是 其他事务“插入”的数据
3、如何解决并发问题
通过设置隔离级别来解决并发问题
4、隔离级别
脏读 | 不可重复读 | 幻读 | ||
---|---|---|---|---|
read uncommitted | 读未提交 | 不 | 不 | 不 |
read committed | 读已提交 | 可 | 不 | 不 |
repeatable read | 可重复读 | 可 | 可 | 不 |
serializable | 串行化 | 可 | 可 | 可 |
查看隔离级别
select @@tx_isolation;
设置隔离级别
set session|global transaction isolation level 隔离级别;
其他
视图
一、含义
mysql5.1版本出现的新特性,本身是一个虚拟表,它的数据来自于表,通过执行时动态生成。
好处:
1、简化sql语句
2、提高了sql的重用性
3、保护基表的数据,提高了安全性
二、创建
create view 视图名
as
查询语句;
三、修改
方式一:
create or replace view 视图名
as
查询语句;
方式二:
alter view 视图名
as
查询语句
四、删除
drop view 视图1,视图2,...;
五、查看
desc 视图名;
show create view 视图名;
六、使用
1.插入
insert
2.修改
update
3.删除
delete
4.查看
select
注意:视图一般用于查询的,而不是更新的,所以具备以下特点的视图都不允许更新
①包含分组函数、group by、distinct、having、union、
②join
③常量视图
④where后的子查询用到了from中的表
⑤用到了不可更新的视图
七、视图和表的对比
关键字 | 是否占用物理空间 | 使用 | |
---|---|---|---|
视图 | view | 占用较小,只保存sql逻辑 | 一般用于查询 |
表 | table | 保存实际的数据 | 增删改查 |
变量
一、系统变量
说明:变量由系统提供的,不用自定义
语法:
①查看系统变量
show 【global|session 】variables like '';
如果没有显式声明global还是session,则默认是session
②查看指定的系统变量的值
select @@【global|session】.变量名;
如果没有显式声明global还是session,则默认是session
③为系统变量赋值
方式一:
set 【global|session 】 变量名=值;
如果没有显式声明global还是session,则默认是session
方式二:
set @@global.变量名=值;
set @@变量名=值;
1、全局变量
服务器层面上的,必须拥有super权限才能为系统变量赋值,作用域为整个服务器,也就是针对于所有连接(会话)有效
2、会话变量
服务器为每一个连接的客户端都提供了系统变量,作用域为当前的连接(会话)
二、自定义变量
说明:
1、用户变量
作用域:针对于当前连接(会话)生效
位置:begin end里面,也可以放在外面
使用:
①声明并赋值:
set @变量名=值;或
set @变量名:=值;或
select @变量名:=值;
②更新值
方式一:
set @变量名=值;或set @变量名:=值;或select @变量名:=值;
方式二:
select xx into @变量名 from 表;
③使用
select @变量名;
2、局部变量
作用域:仅仅在定义它的begin end中有效
位置:只能放在begin end中,而且只能放在第一句
使用:
①声明
declare 变量名 类型 【default 值】;
②赋值或更新
方式一:
set 变量名=值;或set 变量名:=值;或select @变量名:=值;
方式二:
select xx into 变量名 from 表;
③使用
select 变量名;
存储过程函数
说明:都类似于java中的方法,将一组完成特定功能的逻辑语句包装起来,对外暴露名字
好处:
1、提高重用性
2、sql语句简单
3、减少了和数据库服务器连接的次数,提高了效率
存储过程
一、创建 ★
DELIMITER $
create procedure 存储过程名(参数模式 参数名 参数类型)
begin存储过程体
end
注意:
1.参数模式:in、out、inout,其中in可以省略
2.存储过程体的每一条sql语句都需要用分号结尾
二、调用
call 存储过程名(实参列表)
举例:
调用in模式的参数:call sp1(‘值’);
调用out模式的参数:set @name; call sp1(@name);select @name;
调用inout模式的参数:set @name=值; call sp1(@name); select @name;
三、查看
show create procedure
存储过程名;
四、删除
drop procedure
存储过程名;
何二狗mysql笔记相关推荐
- 【MySQL】记一次线上重大事故:二狗子竟然把线上数据库删了!!
写在前面 估计二狗子这几天是大姨夫来了,心情很郁闷,情绪也很低落,工作的时候也有点心不在焉.让他发个版本,结果,一行命令下去把线上的数据库删了!你没听错:是删掉了线上的数据库!运营那边顿时炸了锅:怎么 ...
- 记一次线上重大事故:二狗子竟然把线上数据库删了!!
推荐阅读: 这套Github上40K+star学习笔记,可以帮你搞定95%以上的Java面试 毫不夸张的说,这份SpringBoot学习指南能解决你遇到的98%的问题 最全面试题新鲜出炉:70+算法题 ...
- mysql事务手写笔记_兴奋了!阿里技术官手写“MySQL笔记”,传授你年薪百万级干货...
前言 MySQL重要吗?重要!为什么重要?因为它在Java企业级开发中非常常用,因为 MySQL 是开源免费的,并且方便扩展.阿里巴巴数据库系统也大量用到了 MySQL,因此它的稳定性是有保障的.My ...
- 涂抹mysql笔记-mysql复制特性
涂抹mysql笔记-mysql复制特性 mysql复制特性:既可以实现整个服务(all databases)级别的复制,也可以只复制某个数据库或某个数据库中的某个指定的表对象.即可以实现A复制到B(主 ...
- MySQL 笔记9 -- PyMySQL
MySQL 笔记9 – PyMySQL MySQL 系列笔记是笔者学习.实践MySQL数据库的笔记 参考文档: MySQL 官方文档 SQL 教程 PyMySQL官方文档 一.基础 1.简介 PyMy ...
- MySQL 笔记8 -- 存储过程和索引
MySQL 笔记8 – 存储过程和索引 MySQL 系列笔记是笔者学习.实践MySQL数据库的笔记 课程链接: MySQL 数据库基础入门教程 参考文档: MySQL 官方文档 SQL 教程 一.存储 ...
- MySQL 笔记7 -- 权限操作与视图
MySQL 笔记7 – 权限操作与视图 MySQL 系列笔记是笔者学习.实践MySQL数据库的笔记 课程链接: MySQL 数据库基础入门教程 参考文档: MySQL 官方文档 SQL 教程 一.权限 ...
- MySQL 笔记6 -- 函数与事务
MySQL 笔记6 – 函数与事务 MySQL 系列笔记是笔者学习.实践MySQL数据库的笔记 课程链接: MySQL 数据库基础入门教程 参考文档: MySQL 官方文档 SQL 教程 一.内置函数 ...
- MySQL 笔记5 -- 多表查询
MySQL 笔记5 – 多表查询 MySQL 系列笔记是笔者学习.实践MySQL数据库的笔记 课程链接: MySQL 数据库基础入门教程 参考文档: MySQL 官方文档 一.表之间关系 1.一对一 ...
最新文章
- Confluence 6 系统运行信息中的 JVM 内存使用情况
- docker清空为none的镜像
- 剑指offer--面试题14--收获
- 014_Spring事务
- 开发环境 Minio 添加桶的操作流程-页面操作
- javaweb开发1.环境配置(javaweb插件下载及tomact在eclips中配置)
- android服务器连接失败,Android Studio服务器连接失败
- jwt token注销_详解JWT token心得与使用实例
- pytorch 语义分割loss_关于pytorch语义分割二分类问题的两种做法
- 快来看看Ubuntu 17.04官方吉祥物长什么样子!
- MyEclipse could not redeploy(不能重新部署)的解决办法
- c#语言猜数字游戏,C#实现猜数字小游戏
- Thinkphp6 获取当前协议+域名
- 人物-IT-张朝阳:张朝阳
- 机器学习算法——手动搭建决策树分类器(代码+作图)
- 数字图像-颜色表介绍
- 顺序消费可没你想的这么简单,队列数量的变更往往无法保证同一个账号的消息发送到同一个分区,怎么解决?
- Cisco实验-配置Cisco交换机
- CSS——伪类选择器
- 视频发微信文件过大怎么办大于200m视频发送微信?
热门文章
- html怎么在序列表中加竖线,Chorme浏览器渲染MathJax时出现竖线的解决方法
- java网络编程 UDP通信协议实现局域网内文件的发送和接收
- 雷布斯 22 年前写的代码 你见过吗?
- C/C++教程 第二十一章 —— Qt界面开发
- 荐读 | 姚期智40年前提出,“百万富翁”设想走进现实:这项隐私计算技术,将是下一个产业热点?...
- 在线排查内存泄漏的步骤
- 从调试器控制异常和事件:SXE、 SXD、 SXN、SXI
- ABB机器人系统输入输出信号System Input和Output详解(二)
- 【转载】习惯决定性格 性格决定命运
- ArcGIS Server10.8.1安装后无法启动问题