Mysql ——笔记
《MySQL 数据库应用与开发》
1.基础类型
1.1基本字符集
1.1.1查看
查看所有字符集
show character set;
查看校对原则
show collation like 'latin1%';
1.2数据类型
1.3运算符、表达式
1.4常用函数
2.基本操作
2.1mysql基本数据库了解
2.2数据库设计
2.3数据库创建管理
2.4存储引擎
3.表和数据完整性
3.1数据库表管理
3.1.1存储引擎表空间
3.1.2表操作
3.1.3临时表管理
3.2表数据操作
3.3表完整性
3.3.1非空
3.3.2主键
3.3.3外键
3.3.4检查约束
3.3.5唯一性约束
4.数据检索
4.1基本查询
4.2单表查询
4.3聚合函数查询
4.4多表连接
4.5子查询
4.6正则表达式模糊查询
语法格式:select…from where … regexp “”;
匹配符 | 说明 |
---|---|
^ | 匹配文本开始字符 |
$ | 匹配文本结束字符 |
. | 匹配任何单个字符 |
* | 匹配0或多个在它前面的字符 |
+ | 匹配前面的字符1或多次 |
<> | 匹配指定的字符串 |
[] | 匹配字符集合中的任意一个 |
{n,} | 匹配前面的字符串至少n次 |
{m,n} | 匹配前面的字符串至少m次,至多n次 |
[^] | 匹配不在括号中的任何字符 |
-
示例
select * from scc where Sno regexp "21$"; select * from scc where Sno regexp "^20"; select * from scc where Sno regexp ".15122"; select * from scc where Sno regexp "[12151]"; select * from scc where Sno regexp "[^12151]"; select * from scc where Sno regexp "1{2,}"; select * from scc where Sno regexp "2{1,2}";
5.索引视图
5.1索引
5.2视图
5.3视图应用
6.基础操作
6.1基础编程
6.1.1自定义变量
- 定义用户变量set或select
使用区别:
set @value_name = (select * from table__name);
select @ value_name := (select * from table_name);
6.1.2局部变量
- declare 声明局部变量
示例:
declare value_demo1 int default 100;
- 局部变量的范围仅限于存储程序中(函数,触发器,存储过程等),且在使用时不可将名称定义为表字段名,否则得不出预期结果
6.1.3定界符delimiter
为了解决遇到 ; 语句就执行的情况
-
使用语法:delimiter 定界符 查询语句 定界符
示例:delimiter // select * from table_1 //
6.1.4begin…end语句块
-
使用:
begin
[局部]变量声明;
程序代码行集;
end
6.1.5 预处理
6.1.5.1基本语句
- prepare
- execute
- deallocate
6.1.5.2使用步骤
- 创建
- 使用
- 释放
6.2自定义函数
6.2.1创建函数
修改结束认定符以避免函数返回语句后的分号被认定为结束符,从而语句被执行产生错误
1.创建函数需写出函数名、函数参数、函数返回值类型
2.在begin…end语句中编写函数的具体执行内容
最终为符合常规执行sql语句的习惯,将结束认定符修改回分号
- 创建示例
1.修改结束符为其它符号
delimiter //
2.创建函数
create function function_name(val_1 int, val_2 int) returns char
begin
return val_1 * val_2;
end
3.结束创建
//
4.修改结束认定符为;
delimiter ;
6.2.2使用函数
select function_name(12, 13);
6.2.3查看函数
查看指定数据库中的所有自定义函数
show function status;(函数少时使用)
show function status like 模式;(函数多时使用)
查看指定数据库中所有自定义函数名
select name from MySQL.proc
where db='course' and type='function';
查看指定函数名的详细信息
show create function function_name;
函数信息保存在information_schema数据库中的routines表中
检索表可查看相关函数信息
select * from information_schema.routines
where routine_name = 'function_name';
6.2.4修改函数
格式
alter function func_name[characters -]
6.2.5删除函数定义
drop function func_name;
6.3控制流语句
6.3.1 if
格式(其中“[]”中为可选并非使用时要带上 [])
if condition then
...
[else condition then]
...
[else]
...
6.3.2 case
格式
case value
when vlaue then
...
else
...
end case
6.3.3 条件判断函数
-
if()
if (condition , v1, v2) condition为true,返回 v1, 否则返回v2
-
ifnull()
ifnull(v1, v2) 从v1开始,返回第一个不为null的值
-
case
case 表达式1 when 值1 = 条件1 then 结果1 when 值2 = 条件2 then 结果2 else 其他值
6.4循环语句
6.4.1 while
while condition do
...
end while;
6.4.2 loop
loop
...
end loop
6.4.3 repeat
repeat
...
until condition
end repeat
7.存储过程,游标,触发器
7.1存储过程
7.1.1创建存储过程
存储过程有三类参数,in(输入)