此笔记经过精心整理,希望对你们有帮助,你们每一个赞都是我最大的鼓励,话不多说,先上脑图

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笔记相关推荐

  1. 【MySQL】记一次线上重大事故:二狗子竟然把线上数据库删了!!

    写在前面 估计二狗子这几天是大姨夫来了,心情很郁闷,情绪也很低落,工作的时候也有点心不在焉.让他发个版本,结果,一行命令下去把线上的数据库删了!你没听错:是删掉了线上的数据库!运营那边顿时炸了锅:怎么 ...

  2. 记一次线上重大事故:二狗子竟然把线上数据库删了!!

    推荐阅读: 这套Github上40K+star学习笔记,可以帮你搞定95%以上的Java面试 毫不夸张的说,这份SpringBoot学习指南能解决你遇到的98%的问题 最全面试题新鲜出炉:70+算法题 ...

  3. mysql事务手写笔记_兴奋了!阿里技术官手写“MySQL笔记”,传授你年薪百万级干货...

    前言 MySQL重要吗?重要!为什么重要?因为它在Java企业级开发中非常常用,因为 MySQL 是开源免费的,并且方便扩展.阿里巴巴数据库系统也大量用到了 MySQL,因此它的稳定性是有保障的.My ...

  4. 涂抹mysql笔记-mysql复制特性

    涂抹mysql笔记-mysql复制特性 mysql复制特性:既可以实现整个服务(all databases)级别的复制,也可以只复制某个数据库或某个数据库中的某个指定的表对象.即可以实现A复制到B(主 ...

  5. MySQL 笔记9 -- PyMySQL

    MySQL 笔记9 – PyMySQL MySQL 系列笔记是笔者学习.实践MySQL数据库的笔记 参考文档: MySQL 官方文档 SQL 教程 PyMySQL官方文档 一.基础 1.简介 PyMy ...

  6. MySQL 笔记8 -- 存储过程和索引

    MySQL 笔记8 – 存储过程和索引 MySQL 系列笔记是笔者学习.实践MySQL数据库的笔记 课程链接: MySQL 数据库基础入门教程 参考文档: MySQL 官方文档 SQL 教程 一.存储 ...

  7. MySQL 笔记7 -- 权限操作与视图

    MySQL 笔记7 – 权限操作与视图 MySQL 系列笔记是笔者学习.实践MySQL数据库的笔记 课程链接: MySQL 数据库基础入门教程 参考文档: MySQL 官方文档 SQL 教程 一.权限 ...

  8. MySQL 笔记6 -- 函数与事务

    MySQL 笔记6 – 函数与事务 MySQL 系列笔记是笔者学习.实践MySQL数据库的笔记 课程链接: MySQL 数据库基础入门教程 参考文档: MySQL 官方文档 SQL 教程 一.内置函数 ...

  9. MySQL 笔记5 -- 多表查询

    MySQL 笔记5 – 多表查询 MySQL 系列笔记是笔者学习.实践MySQL数据库的笔记 课程链接: MySQL 数据库基础入门教程 参考文档: MySQL 官方文档 一.表之间关系 1.一对一 ...

最新文章

  1. Confluence 6 系统运行信息中的 JVM 内存使用情况
  2. docker清空为none的镜像
  3. 剑指offer--面试题14--收获
  4. 014_Spring事务
  5. 开发环境 Minio 添加桶的操作流程-页面操作
  6. javaweb开发1.环境配置(javaweb插件下载及tomact在eclips中配置)
  7. android服务器连接失败,Android Studio服务器连接失败
  8. jwt token注销_详解JWT token心得与使用实例
  9. pytorch 语义分割loss_关于pytorch语义分割二分类问题的两种做法
  10. 快来看看Ubuntu 17.04官方吉祥物长什么样子!
  11. MyEclipse could not redeploy(不能重新部署)的解决办法
  12. c#语言猜数字游戏,C#实现猜数字小游戏
  13. Thinkphp6 获取当前协议+域名
  14. 人物-IT-张朝阳:张朝阳
  15. 机器学习算法——手动搭建决策树分类器(代码+作图)
  16. 数字图像-颜色表介绍
  17. 顺序消费可没你想的这么简单,队列数量的变更往往无法保证同一个账号的消息发送到同一个分区,怎么解决?
  18. Cisco实验-配置Cisco交换机
  19. CSS——伪类选择器
  20. 视频发微信文件过大怎么办大于200m视频发送微信?

热门文章

  1. html怎么在序列表中加竖线,Chorme浏览器渲染MathJax时出现竖线的解决方法
  2. java网络编程 UDP通信协议实现局域网内文件的发送和接收
  3. 雷布斯 22 年前写的代码 你见过吗?
  4. C/C++教程 第二十一章 —— Qt界面开发
  5. 荐读 | 姚期智40年前提出,“百万富翁”设想走进现实:这项隐私计算技术,将是下一个产业热点?...
  6. 在线排查内存泄漏的步骤
  7. 从调试器控制异常和事件:SXE、 SXD、 SXN、SXI
  8. ABB机器人系统输入输出信号System Input和Output详解(二)
  9. 【转载】习惯决定性格 性格决定命运
  10. ArcGIS Server10.8.1安装后无法启动问题