说明:mysql中,IN 语句中参数个数是不限制的 。不过对整段 sql 语句的长度有了限制,最大不超过 4M!
5.3、逻辑运算符逻辑运算符用来判断表达式的真假 。如果表达式是真,结果返回 1 。如果表达式是假,结果返回 0 。
运算符描述实例NOT 或 !逻辑非select not 1; 结果为0AND逻辑与select 2 and 0; 结果为0OR逻辑或select 2 or 0; 结果为1XOR逻辑异或select null or 1; 结果为1
5.4、位运算符位运算符是在二进制数上进行计算的运算符 。位运算会先将操作数变成二进制数,进行位运算 。然后再将计算结果从二进制数变回十进制数 。
运算符描述实例&按位与select 3&5; 结果为1I按位或select 3I5; 结果为7^按位异或select 3I5; 结果为7^按位异或select 3^5; 结果为6~按位取反select ~18446744073709551612; 结果为3>>按位右移select 3>>1; 结果为1<<按位左移select 3<<1; 结果为6
5.5、运算符优先级优先级(从高到底)运算符1!2-(负号),~(按位取反)3^(按位异或)4*,/(DIV),%(MOD)5+,-6>>,<<7&8I9=(比较运算),<=>,<,<=,>,>=,!=,<>,IN,IS NULL,LIKE,REGEXP10BETWEEN AND,CASE,WHEN,THEN,ELSE11NOT12&&,AND13XOR14II,OR15=(赋值运算),:=
说明:在无法确定优先级的情况下,可以使用圆括号()来改变优先级,并且这样会使计算过程更加清晰 。
六、视图视图(view)是一种虚拟存在的表,是一个逻辑表,本身并不包含数据 。作为一个select语句保存在数据字典中的 。
6.1、创建视图CREATE [OR REPLACE] [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]VIEW view_name [(column_list)]AS select_statement[WITH [CASCADED | LOCAL] CHECK OPTION]
参数说明:
- OR REPLACE:表示替换已有视图
- ALGORITHM:表示视图选择算法,默认算法是UNDEFINED(未定义的):MySQL自动选择要使用的算法 ;merge合并;temptable临时表
- select_statement:表示select语句
- [WITH [CASCADED | LOCAL] CHECK OPTION]:表示视图在更新时保证在视图的权限范围之内
- cascade:是默认值,表示更新视图的时候,要满足视图和表的相关条件
- local:表示更新视图的时候,要满足该视图定义的一个条件即可
create view <视图名称>[(column_list)]as select语句with check option;
创建视图示例:create view v_user(用户名,年龄)asselect user_name,age from t_userwith check option;
6.2、查看视图- 使用show create view语句查看视图信息
show create view v_user;
- 视图一旦创建完毕,就可以像一个普通表那样使用,视图主要用来查询
select * from v_user;
6.3、删除视图删除视图是指删除数据库中已存在的视图,删除视图时,只能删除视图的定义,不会删除数据,也就是说不动基表:DROP VIEW [IF EXISTS]view_name [, view_name] ...
删除示例:drop view IF EXISTS v_user;
七、函数7.1、常用函数列表函数描述实例char_length(s)返回字符串 s 的字符长度select char_length("hello") as content;concat(s1,s2...sn)字符串 s1,s2 等多个字符串合并为一个字符串select concat("hello ", "world") as content;format(x,n)将数字 x 进行格式化,到小数点后 n 位,最后一位四舍五入select format(500.5634, 2) as content;lower(s)将所有字母变成小写字母select lower('HELLO');current_timestamp()返回当前日期和时间select current_timestamp();DATE_FORMAT(date,format)格式化时间或者日期select DATE_FORMAT(current_timestamp(),"%Y-%m-%d %H:%i:%s");IFNULL(v1,v2)如果 v1 的值不为 NULL,则返回 v1,否则返回 v2select IFNULL(null,'hello word');7.2、自定义函数语法介绍7.2.1、创建函数
CREATE FUNCTION fn_name(func_parameter[,...])RETURNS type[characteristic...]routine_body
参数说明:- fn_name:自定义函数名称
- func_parameter: param_name type
- type: 任何mysql支持的类型
- characteristic: LANGUAGE SQL
- routine_body: 函数体
ALTER FUNCTION fn_name [characteristic...]
参数说明:- fn_name:自定义函数名称
- func_parameter: param_name type
- characteristic: LANGUAGE SQL
DROP FUNCTION[IF EXISTS]fn_name;
参数说明: