当前位置:   article > 正文

MySQL 第五章MySQL语言变量运算符和函数_变量和常量的定义 mysql

变量和常量的定义 mysql

MySQL 第五章MySQL语言

5.1 MySQL语言简介

    在MySQL数据库中,SQL语言主要由以下几个部分组成

(1)数据定义语言(DDL)用于执行数据库的任务,对数据库及数据库内的各种对象进行创建、删除、修改等操作。数据库对象主要包括:表、默认约束、规则、视图、触发器和存储过程。

语句 功能 说明
CREATE 创建数据库或数据库对象 不同数据对象,其语句的语法形式不同
ALTER 对数据库或数据库对象进行修改 不同数据对象,其语句的语法形式不同
DROP 删除数据库或数据库对象 不同数据对象,其语句的语法形式不同

(2)数据操作语言(DML)用于操作数据库中各种对象,检索和修改数据。DML包括的主要语句及功能如下

语句 功能 说明
select 从表或视图中检索数据 是使用最频繁的SQL语言之一
insert 将数据插入到表或视图中
update 修改表或视图中的数据 既能修改表或视图的一行数据,也可修改一组或全部数据
delete 从表和视图中删除数据 可根据条件删除指定数据

(3)数据控制语言(DCL)用于安全管理,确定用户可以查看或修改数据库中的数据,DCL包括的主要语句及功能如下

语句 功能 说明
grant 授予权限 可把语句许可或对象许可的权限授予其他用户和角色
revoke 收回权限 与grant的功能相反,但不影响该用户或角色从其他角色中作为成员继承许可权限

5.2 常量和变量

5.2.1 常量

    常量指在程序运行过程中值不变的量,又称为字面值或标量值。常量的使用格式取决于值的数据类型,可以分为字符串常量、数值常量、十六进制常量、时间日期常量、位字段值、布尔值和null值。

  1. 字符串常量
        字符串是指用单引号或双引号括起来的字符序列,分为ascll字符串常量和unicode字符串常量

2.日期和时间常量
    date: 年-月-日 : 例如:‘2016-04-14’
    time: 时:分:秒.微秒 例如:‘12:30:43.00013’
    datetime: 年-月-日 时:分:秒.微秒 : 例如:'2016-04-14 12:30:43 ’

5.2.2 变量

1.用户变量

    定义和初始化一个变量可以用set语句

set @用户变量 = expr1 [,@用户变量 = expr1]
set @name = '王林';
set @user1 = 1 ,@user2 = 2 ,@user3 = 3;
set @user4 = @user3 +1;
  • 1
  • 2
  • 3
  • 4

    可以使用查询给变量复制

set @student = (select 姓名 from xs where 学号 = '081101');
  • 1

    可以根据变量查询表中的数据值

select 学号,姓名,专业名,出生日期
from xs
where 姓名 = @student;
  • 1
  • 2
  • 3

    可以使用函数式进行赋值但是函数式中的=得为:=

select @t2 := (@t2:=2)+5 as t2;
  • 1

1.系统变量
    MySQL有一些特定的设置,系统变量和用户变量一样都是一个值和一个数据类型,但是不同的是,系统变量在MySQL服务器启动时就被引入并初始化完成了。

例如:获得当前MySQL版本

select @version;
  • 1

例如:获得系统当前时间

select CURRENT_TIME;
  • 1

    系统变量有些不可修改,有些能够通过set命令进行修改,

    全局变量分为

    (1)全局系统变量:
    在MySQL启动时,全局系统变量就被初始化了,并且用于每个启动的会话。,如果使用global来设置系统变量,则该变量会被更改并用于新的连接,直到服务器被重新启动为止。

    (2)会话系统变量:
    只适用于当前会话,大多数会话系统变量的名字和全局系统变量名字相同,当启动会话时,每个会话系统变量都和同名的全局系统变量相同,一个会话系统变量时可以更改的,但是这个新的值仅适用于正在运行的会话,不适用于所有其他会话。

5.3 运算符与表达式

    MySQL提供:算术运算符、位运算符、比较运算符、逻辑运算符。

5.3.1 算术运算符

    +加、-减、*乘、/除、%求模(取余数)

注意:

  • +加、-减、运算同样适用于日期事件值(如datetime)

例如: ’2014-01-20‘ + interval 22 day 其中interval表示间隔

  • 在运算过程中,用字符串表示的数字会自动的转化为数值进行计算,若字符串中字符与数字同时存在,如果字符串的前几位是数字,则该字符串被转换成这几个数字,例如’99a‘ 会转换成99,如果第一位不是数字,则会当作0处理

5.3.2 比较运算符

    比较运算符(又称关系运算符),用于比较两个表达式的值,其运算结果为逻辑值:1(真)、0(假)及null(不确定),两个特殊的比较运算符:<>和!=表示不等于,<=>相等或都等于空
    比较运算符将数字作为浮点值进行比较,比较字符串时不区分大小写
    添加binary关键字可以使比较过程区分大小写
例如:

select 'a' = 'A', BINARY  'a' = 'A';
  • 1

输出

+-----------+-------------------+
| 'a' = 'A' | BINARY  'a' = 'A' |
+-----------+-------------------+
|         1 |                 0 |
+-----------+-------------------+
1 row in set (0.01 sec)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

5.3.3 逻辑运算符

    逻辑运算符用于对某个条件进行测试,运算结果为TRUE(1)或FALSE(0)。MySQL提供的逻辑运算符如下图

运算符 运算规则
NOT或! 逻辑非
OR或|| 逻辑或
AND或&& 逻辑与
XOR 逻辑异或(是否不同)

注意,在逻辑运算中所有不为0的数字或字符串都当作TRUE

5.3.4 位运算符

位运算符在两个表达式之间执行二进制的位操作,这两个表达式的类型可以为整型或与整型兼容的数据类型(如字符型,但不能为image类型)、位运算符如图

运算符 运算规则
& 位AND
| 位OR
AND或&& 位XOR
~ 位取反
>> 位右移
<< 位左移

例如:

 select 13|28, 3|4, 13&28, 3&4;
  • 1

输出

+-------+-----+-------+-----+
| 13|28 | 3|4 | 13&28 | 3&4 |
+-------+-----+-------+-----+
|    29 |   7 |    12 |   0 |
+-------+-----+-------+-----+
1 row in set (0.00 sec)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

例如:

select 1<<
    声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/548405
    推荐阅读
    相关标签
      

    闽ICP备14008679号