MySQL数据库,运算符、排序与分页。

算术运算符的使用:

MySQL数据库,运算符、排序与分页。_第1张图片

加法的注意点:

SQL中:100 + '1' 的结果为101。

不同于Java,在SQL中,“+”没有连接的作用,就表示加法运算。此时,会将后面的字符串'1'转换为数值1(隐式转换),再与100运算。

SQL中:100 + 'a' 的结果为100。

如果加法运算中有字符串,运算时的字符串内容并非数值,则一律看作0处理,此时将字符串'a'看作0处理,结果为100 + 0。

减法同理。

除法的注意点:

可以用DIV代替/ 。

不同于其他编程语言,除法中,无论时整数与整数之间做除法,还是整数与浮点数做除法,都会保留一定位的小数(默认四位)。

如果分母为0,除法的运算结果为NULL

取模的注意点:

结果的正负与被模数的正负一致。

比较运算符:

比较运算符用来对表达式左边的操作数和右边的操作数进行比较,比较的结果为真则返回1,比较的结果为假则返回0,其他情况则返回NULL。

比较运算符经常被用来作为SELECT查询语句的条件来使用,返回符合条件的结果记录。

MySQL数据库,运算符、排序与分页。_第2张图片

关于等号:

  • 与其他的编程语言不同,SQL中的等于是一个“=”表示。

  • 字符串存在隐式转换,与数值作比较时,如果字符转换数值不成功,则看作0。

  • 如果等号两边的值、字符串或表达式都为字符串,则会按照字符串进行比较,比较的是每一个字符串中的字符的ANSI编码是否相等

注:SQL中赋值符号使用 :=

安全等于运算符:

安全等于运算符与等于的区别是,安全等于可以用来对NULL进行判断。在两个操作数均为NULL时,其返回值为1。当只有其中一个数为NULL时,其返回值为0

  • 除了安全等于运算,其他的运算只要有NULL参与,结果就为NULL

MySQL数据库,运算符、排序与分页。_第3张图片

  • WHERE ……(字段) IS NOT NULL 也可以表示为WHERE NOT …… <=> NULL 。
  • 如果是比较字符串,GREATEST的比较规则类似于C语言中的strcmp函数和Java中的String类的equals方法,从第一个字母进行比较(比较ASCII码值),如果相等则继续向后比较,直到比出更大的字母时输出此字符串。
  • BETWEEN 条件一 AND 条件二 的,查询条件1和条件2范围内的数据,包含满足条件1和条件2的数据(即闭区间)。条件一是下界,条件二是上界,二者不能交换,交换之后,会查询不到数据。
  • IN(……)和NOT IN(……)括号中放的是指定的集合,用来判断是否处于此集合中。
  • LIKE表示模糊匹配,用来判断是否满足比如是否包含a字母(用'%a%'表示),是否以a字母开头(用'a%'表示)等条件。

逻辑运算符:

逻辑运算符主要用来判断表达式的真假,在MySQL中,逻辑运算符的返回结果为1(真)、0(假)或NULL。

运算符

作用

示例

NOT 或 !

逻辑非

NOT A

AND 或 && 

逻辑与

A AND B

A && B

OR 或 ||

逻辑或

A OR B

A || B

XOR 

逻辑异或

A XOR B

逻辑异或:A、B都为真或A、B都为假时表达表达式返回假(0),否则返回真(1)。即XOR两边的真假性一致时结果为假;真假性不一致时,结果为真。

AND的优先级大于OR。

位运算符

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

MySQL数据库,运算符、排序与分页。_第4张图片

使用规则与C语言和Java中位运算符的一致。

排序与分页

排序数据

使用ORDER BY对查询到的数据进行排序

升序(ascend):ASC

降序(descend):DESC

格式 :

SELECT * FROM emp

ORDER BY sal DESC;

将ASC或DESC加到ORDER BY操作的字段后,若没有显式指明排序方式,则默认按照升序排列。

ORDER BY操作的字段可以是字段的别名,例:

SELECT empno , ename , job , sal * 12 annual_sal

FROM emp

ORDER BY annual_sal DESC;

注:列的别名可以在ORDER BY中使用,不能在WHERE中使用。

二级排序

例:

SELECT empno , ename , job , sal * 12 annual_sal ,mgr

FROM emp

WHERE sal IN(1500,3000,5000)

ORDER BY annual_sal DESC,mgr DESC;

ORDER BY 后面可指明多个字段的排序方式,按从左到右的顺序,先按靠左的字段排序,如果相同,则按下一个右边的字段排序,依次类推。

分页:

实现数据的分页显示使用LIMIT关键字

格式:

LIMIT A , B;(A是位置偏移量,即表明表的数据从第A+ 1个数据开始显示。B是条目数(每页的数据量),即每页显示B条数据。)

如果格式为LIMIT B; 默认位置偏移量为0

每页显示pageSize条记录,此时显示第pageNo页

LIMIT (pageNo - 1) * pageSize , pageSize;

MySQL8.0新特性:

LIMIT B OFFSET A;A是偏移量,B是条目数,与LIMIT A , B的结构相反。

WHERE …… ORDER BY …… LIMIT的声明顺序:

WHERE的语句一定跟在FROM后。

LIMIT一定是在最后的一条语句。

ORDER BY在LIMIT前面。

你可能感兴趣的:(MySQL数据库,从入门到入土,mysql,数据库,sql)