【非广告】常用SQL语句,看这篇就够了(三)

简介: 常用SQL语句,看这篇就够了

5.3、逻辑运算符

逻辑运算符用来判断表达式的真假。如果表达式是真,结果返回 1。如果表达式是假,结果返回 0。

运算符 描述 实例
NOT 或 ! 逻辑非 select not 1; 结果为0
AND 逻辑与 select 2 and 0; 结果为0
OR 逻辑或 select 2 or 0; 结果为1
XOR 逻辑异或 select null or 1; 结果为1

5.4、位运算符

位运算符是在二进制数上进行计算的运算符。位运算会先将操作数变成二进制数,进行位运算。然后再将计算结果从二进制数变回十进制数。

运算符 描述 实例
& 按位与 select 3&5; 结果为1
I 按位或 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 &
8 I
9 =(比较运算),<=>,<,<=,>,>=,!=,<>,IN,IS NULL,LIKE,REGEXP
10 BETWEEN AND,CASE,WHEN,THEN,ELSE
11 NOT
12 &&,AND
13 XOR
14 II,OR
15 =(赋值运算),:=

说明:在无法确定优先级的情况下,可以使用圆括号()来改变优先级,并且这样会使计算过程更加清晰

六、视图

视图(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(用户名,年龄)
as
select user_name,age from t_user
with 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,否则返回 v2 select 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: 函数体
7.2.2、编辑函数
ALTER FUNCTION fn_name [characteristic...]

参数说明:

  • fn_name:自定义函数名称
  • func_parameter:  param_name type
  • characteristic: LANGUAGE SQL
7.2.3、删除函数
DROP FUNCTION  [IF EXISTS]  fn_name;

参数说明:

  • fn_name:自定义函数名称
  • func_parameter:  param_name type
7.2.4、查看函数语法
SHOW FUNCTION STATUS [LIKE 'pattern']

参数说明:

  • pattern:函数名称

示例:

SHOW FUNCTION STATUS LIKE 'user_function';
7.2.5、查看函数的定义语法
SHOW CREATE FUNCTION fn_name;

参数说明:

  • fn_name:自定义函数名称
相关文章
|
SQL XML Oracle
Mybatis动态SQL语句查询,实现一个参数 可查询多个字段。
Mybatis动态SQL语句查询,实现一个参数 可查询多个字段。
532 0
Mybatis动态SQL语句查询,实现一个参数 可查询多个字段。
|
6月前
|
SQL Oracle 关系型数据库
mysql和oracle 命令行执行sql文件 数据库执行sql文件 执行sql语句
mysql和oracle 命令行执行sql文件 数据库执行sql文件 执行sql语句
78 0
|
SQL 存储 缓存
一文搞懂MySQL中一条SQL语句是如何执行的
一文搞懂MySQL中一条SQL语句是如何执行的
|
SQL 存储 关系型数据库
MySQL的第一篇文章——了解数据库、简单的SQL语句
MySQL的第一篇文章——了解数据库、简单的SQL语句
|
SQL Python
Pandas与SQL的数据操作语句对照
Pandas与SQL的数据操作语句对照
169 0
Pandas与SQL的数据操作语句对照
|
SQL 数据库 Python
Python 数据库Insert语句脚本生成工具(SQL Server)
Python 数据库Insert语句脚本生成工具(SQL Server)
386 0
Python 数据库Insert语句脚本生成工具(SQL Server)
|
SQL 程序员 开发工具
【Sql Server】基础之分组查询重复出现多条记录的SQL语句,以及group by和having、min函数运用
基础之分组查询重复出现多条记录的SQL语句,以及group by和having、min函数运用
541 0
【Sql Server】基础之分组查询重复出现多条记录的SQL语句,以及group by和having、min函数运用
SQL 查询表中每门课程成绩最好的前n名学生 优于group by语句的方法
SQL 查询表中每门课程成绩最好的前n名学生 优于group by语句的方法
SQL 查询表中每门课程成绩最好的前n名学生 优于group by语句的方法
|
SQL 数据库 数据安全/隐私保护
使用SQL语句 查询电话号码 加密显示
使用SQL语句 查询电话号码 加密显示
337 0
使用SQL语句 查询电话号码 加密显示
|
SQL 存储 安全
MYSQL数据库初窥门径, SQL语句地熟练使用, 图形化界面提高效率
MYSQL数据库初窥门径, SQL语句地熟练使用, 图形化界面提高效率
MYSQL数据库初窥门径, SQL语句地熟练使用, 图形化界面提高效率