MySQL基础使用指南

发表时间: 2021-10-25 22:14

SQL,即Structured Query Language 结构化查询语言。

MYSQL:开源免费的数据库,小型的数据库.已经被Oracle收购了.MySQL6.x版本也开始收费。

数据定义语言:简称DDL(Data Definition Language),用来定义数据库对象:数据库,表,列等。关键字:create,alter,drop等

数据操作语言:简称DML(Data Manipulation Language),用来对数据库中表的记录进行更新。关键字:insert,delete,update等

数据控制语言:简称DCL(Data Control Language),用来定义数据库的访问权限和安全级别,及创建用户

数据查询语言:简称DQL(Data Query Language),用来查询数据库中表的记录。关键字:select,from,where等

数值类型

日期和时间类型


字符串类型



通配符: 用来匹配一部分的特殊字符

    • _ : 匹配任意一个字符
    • % : 任意0~n个字符

聚合函数

COUNT():统计指定列不为NULL的记录行数;

MAX():计算指定列的最大值,如果指定列是字符串类型,那么使用字符串排序运算;

MIN():计算指定列的最小值,如果指定列是字符串类型,那么使用字符串排序运算;

SUM():计算指定列的数值和,如果指定列类型不是数值类型,那么计算结果为0;

AVG():计算指定列的平均值,如果指定列的类型不是数值类型,那么计算结果为0;

注意:
凡是和聚合函数同时出现的列名,一定要写在group by 之后
分组时候是无法体现单个数据的
group by 一般会和聚合函数配合使用,单独使用的时候意义不大

having和where的区别

having是在分组后对数据进行过滤,而where是在分组前对数据进行过滤

having后面可以使用聚合函数(统计函数),where后面不可以使用聚合函数

LIMIT用来限定查询结果的起始行,以及总行数。

常用的两种引擎:

(1) InnoDB
a,支持ACID,简单地说就是支持事务完整性、一致性;
b,支持行锁,以及类似ORACLE的一致性读,多用户并发;
c,独有的聚集索引主键设计方式,可大幅提升并发读写性能;
d,支持外键;
e,支持崩溃数据自动修复;
InnoDB设计目标是处理大容量数据库系统,它的CPU利用率是其它基于磁盘的关系数据库引擎所不能比的。
它是一个可靠的事务处理引擎,不支持全文本搜索

(2) MyISAM
a,不支持 每次查询具有原子性
b,只支持表锁
c,强调的是性能,其执行速度比InnoDB类型更快,但是不提供事务支持
d,如果执行大量的SELECT,MyISAM是更好的选择

视图

视图是一个虚拟表(非真实存在),其本质是【根据SQL语句获取动态的数据集,并为其命名】,用户使用时只需使用【名称】即可获取结果集,并可以将其当作表来使用。

触发器

对某个表进行【增/删/改】操作的前后如果希望触发某个特定的行为时,可以使用触发器,触发器用于定制用户对表的行进行【增/删/改】前后的行为。

存储过程

存储过程是一个SQL语句集合,当主动去调用存储过程时,其中内部的SQL语句会按照逻辑执行。

存储过程和函数存在以下几个区别:

1)一般来说,存储过程实现的功能要复杂一点,而函数实现的功能针对性比较强。存储过程,功能强大,可以执行包括修改表等一系列数据库操作;用户定义函数不能用于执行一组修改全局数据库状态的操作。

2)对于存储过程来说可以返回参数,如记录集,而函数只能返回值或者表对象。函数只能返回一个变量;而存储过程可以返回多个。存储过程的参数可以有IN,OUT,INOUT三种类型,而函数只能有IN类~~存储过程声明时不需要返回类型,而函数声明时需要描述返回类型,且函数体中必须包含一个有效的RETURN语句。

3)存储过程,可以使用非确定函数,不允许在用户定义函数主体中内置非确定函数。

4)存储过程一般是作为一个独立的部分来执行( CALL 语句执行),而函数可以作为查询语句的一个部分来调用(SELECT调用)。 SQL语句中不可用存储过程,而可以使用函数。