①视图表:
视图表是虚拟表,用来存储SQL语句的定义
如果视图表和原表的字段相同,是可以进行数据修改的;
如果两者的字段不通,不可以修改数据。
语法:
创建:create view 试图表名 as ...
查看:select * from 视图表名
删除:drop view 视图表名
②case语句:
语法:
SELECT CASE ("宁段名")
WHEN"条件1" THEN"结果1"
WHEN“条件2" THEN"结果2"
...
[ELSE"结果N"]
END
EROM"表名";
##"条件"可以是一个数值或是公式。ELSE 子句则并不是必须的。
最后一个框是我的case语句的条件从哪获取sales,呼应前面的sales条件。
③空值和null值的区别:
1、空值的大小为0不占空间,null值的大小为null;
2、IS NULL 或者 IS NOT NULL,是用来判字段是不是为 NULL 或者不是 NULL,不能查出是不是无值的;
3、无值的判断使用="或者<>""来处理。s> 代表不等于;
4、在通过 count()指定字段统计有多少行数时,如果遇到 NULL 值会自动忽略,遇到无值会加入到记录中进行计算。
④正则表达式:
匹配模式 | 描述 | 实例 |
^ | 匹配文本的开始字符 | ^bd'匹配以bd开头的字符串 |
$ | 匹配文本的结束字符 | qn$'匹配以gn结尾的字符串 |
. | 匹配任何单个字符 | s.t'匹配任何s和t之间有—个字符的字符串 |
* | 匹配零个或多个在它前而的字符 | fo*t'匹配t前而有任意个。 |
+ | 匹配前面的字符1次或多次 | hom+'匹配以ho开头,后而至少一个m的字符串 |
字符串 | 匹配包含指定的字符串 | clo'匹配含有clo的字符串 |
p1lp2 | 匹配p1或p2 | bg | fg'匹配bg或者fg |
[…] | 匹配字符集合中的任意一个字符 | [abc]'匹配a或者b或者c |
[^…] | 匹配不在括号中的任何字符 | [^ab]匹配不包含a或者b的字符串 |
{n} | 匹配前面的字符串n次 | g{2}'匹配含有2个g的字符串 |
{n,m} | 匹配前而的字符串至少n次,至多m次 | f{1,3}'匹配f最少1次,最多3次 |
语法: SELECT“字段”EROM"表名”WHERE"字段”REGEXP{模式];
⑤ 存储过程(类似于函数):
delimiter $$ #将语句的结束符号从分号;临时改为两个$$ (可以是自定义)
create procedure proc5() #创建存储过程,过程名为proc, 不带参数
-> begin #过程体以关键字BEGIN开始
-> select * from students; #过程体语句(自己根据需求进行编写)
-> end $$ #过程体以关键字END结束
delimiter ; #将语句的结束符号恢复为分号
call test1('yht');
⑥