🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## mysql #### 1.sql语句 ##### 1.增 ​ insert into 表 (字段,字段) values (val1,val2); ##### 2.删 ​ delete from 表 where expresion; ##### 3.改 ​ update 表 set 字段1=val1,字段2=val2 where expression; ##### 4.查 ​ select 字段1,字段2 from 表; #### 2.特殊关键字 ##### 1. distinct 字段去重 ​ select distinct 字段 from 表 ##### 2.concat 连接字段 ​ select concat(字段1,字段2) 别名 from 表 ##### 3. as 或空格 ​ 起别名 ##### 4. in关键字(数组) ​ select * from 表 where 字段 in (20,23,23,23); ##### 5. between and关键字(区间) ​ select * from 表 where 字段 between 1 and 20; ##### 6. is 关键字 ​ select * from 表 where 字段 is null; ​ select * from 表 where 字段 is not null; ​ null不能用等号 ##### 7.安全等<=> ​ select * from 表 where 字段 <=> null; ​ 安全等判断类型和值 #### 3.模糊查询 ##### 1. %通配符 ##### 2. _代表一个字符 #### 4.转义 ​ select * from 表 where 字段 like "$_sdad" escape"$" #### 5.分组函数 ​ sum,avg,min,max.count 会忽略null值 ​ round()四舍五入保留小数 ##### 1. groupe by 关键字 ​ 分组前条件where写在groupe by前 对表中的数据筛选 ​ 分组后条件having写在groupe by后 对处理后的数据筛选 #### 6.函数 ##### 1.ifnull ##### 2.length ##### 3.substr ##### 4.instr ##### 5.replace ##### 6.concat ##### 7.datediff(date1,date2) ​ 返回两个日期相差的天数 #### mysql 99 语法 #### 1. 内连接 select 字段 from 表1 inner join 表2 on 连接条件 #### 2. 左外连接 右外连接 ​ 主表和从表,匹配和不匹配的主表信息都会显示,只不过,没匹配上的主表那一行,此行的从表信息为空 left join right join #### 子查询 ##### 1. 列子查询 ​ 子查询结果为一列多行 ##### 2. 行子查询 ​ 子查询结果为一行多列 ##### 3. 表子查询 ​ 子查询结果为多行多列 ##### 4.标量子查询 ​ 子查询结果只有一个标量 ##### 5.exist ​ 返回值为0或1 ,和where连用相当于true和false ### Mysql 事务 #### 1.事务是什么 ​ 事务是现实生活中的一组逻辑操作单元,这组操作要么全部成功,要么全部失败。 #### 2.事务的特性 ##### ACID ​ 原子性:不可再分割,要么都执行,要么都不执行 ​ 一致性:一个事务的执行会使数据从一个一致状态切换到另一个一致状态 ​ 隔离性:一个事务的执行不受其他事务的干扰 ​ 持久性:一个事务一旦提交,则会永久的改变数据库的数据 ```mysql set autocommit=0; start transaction; 语句1; 语句2; ... commit;(提交事务) rollback;(回滚,撤销) ``` ### Mysql变量 #### 1.用户变量 ​ set @变量名=值; #### 2.局部变量 ​ declare @变量名 变量类型 default 值; #### 3.赋值操作符:=或:= ##### ①声明并初始化 SET @变量名=值; SET @变量名:=值; SELECT @变量名:=值; ##### ②赋值(更新变量的值) #方式一: SET @变量名=值; SET @变量名:=值; SELECT @变量名:=值; #方式二: SELECT 字段 INTO @变量名 FROM 表; ##### ③使用(查看变量的值) SELECT @变量名; ### 存储过程和函数 #### 存储过程的含义: 一组预先编译好的SQL语句的集合,理解成批处理语句 #### 存储过程的优点: 1、提高代码的重用性 2、简化操作 3、减少了编译次数并且减少了和数据库服务器的连接次数,提高了效率 #### 一、创建语法 ```mysql CREATE PROCEDURE 存储过程名(参数列表) BEGIN 存储过程体(一组合法的SQL语句); END ``` 注意:在命令行中使用时 ';'是结束语句的标志,但是在存储过程体重,每一个语句必须以分号为结尾,所有就必须使用delimiter $来改变结束标志。 ##### 传参: in:该参数可以作为输入,也就是该参数需要调用方传入值 out:该参数可以作为输出,也就是该参数可以作为返回值 inout:该参数既可以作为输入又可以作为输出,也就是该参数既需要传入值,又可以返回值 #### 二、调用语法 CALL 存储过程名(实参列表); #### 三、删除存储过程 语法:drop procedure 存储过程名 DROP PROCEDURE p1; DROP PROCEDURE p2,p3;#× #### 四、查看存储过程的信息 DESC myp2; SHOW CREATE PROCEDURE myp2; ### 函数 #### 含义: 一组预先编译好的SQL语句的集合,理解成批处理语句 #### 优点: 1、提高代码的重用性 2、简化操作 3、减少了编译次数并且减少了和数据库服务器的连接次数,提高了效率 #### 区别: 存储过程:可以有0个返回,也可以有多个返回,适合做批量插入、批量更新 函数:有且仅有1 个返回,适合做处理数据后返回一个结果 #### 一、创建语法 CREATE FUNCTION 函数名(参数列表) RETURNS 返回类型 BEGIN 函数体 END ##### 注意: 1.参数列表 包含两部分: 参数名 参数类型 2.函数体:肯定会有return语句,如果没有会报错 如果return语句没有放在函数体的最后也不报错,但不建议 return 值; 3.函数体中仅有一句话,则可以省略begin end 4.使用 delimiter语句设置结束标记 #### 二、调用语法 SELECT 函数名(参数列表) #### 三、查看函数 SHOW CREATE FUNCTION myf3; #### 四、删除函数 DROP FUNCTION myf3; ### 流程控制 顺序、分支、循环 #### 一、分支结构 ##### 1. if函数 语法:if(条件,值1,值2) 功能:实现双分支 应用在begin end中或外面 ##### 2. case结构 语法: 情况1:类似于switch case 变量或表达式 when 值1 then 语句1; when 值2 then 语句2; ... else 语句n; end ##### 3.if结构 语法: if 条件1 then 语句1; elseif 条件2 then 语句2; .... else 语句n; end if; 功能:类似于多重if 只能应用在begin end 中 #### 二、循环结构 ##### 1.while 语法: 【标签:】while 循环条件 do 循环体; end while【 标签】; 联想: while(循环条件){ 循环体; } ##### 2.loop 语法: 【标签:】loop 循环体; end loop 【标签】; 可以用来模拟简单的死循环 ##### 3.repeat 语法: 【标签:】repeat 循环体; until 结束循环的条件 end repeat 【标签】; ##### mysql中的continue和breack leave语句相当于breack iterate语句相当于continue