当前位置:   article > 正文

过一遍mysql(4)(第六篇:select查下基础篇;第七篇:select条件查询)_mysql select 常量

mysql select 常量

目录

第六篇:select查下基础篇

基本语法

查询常量

查询表达式

查询函数:

查询指定的字段

查询所有列

列别名

表别名:

第七篇:select条件查询

本篇内容

条件查询

等于(=)

不等于(<>、!=)

大于(>)

逻辑查询运算符

NULL存在的坑

IS NULL/IS NOT NULL(NULL值专用查询)

IS NULL(返回值为空的记录)

IS NULL(返回值不为空的记录)

<=>(安全等于)

经典面试题

总结


第六篇:select查下基础篇

DQL(Data QueryLanguage) :数据查询语⾔,通俗点讲就是从数据库获取数据的,按照
DQL 的语法给数据库发送⼀条指令,数据库将按需求返回数据。

基本语法

select 查询的列 from 表名;

注意:

select语句中不区分大小写,select 和SELECT、FROM和from效果一样

查询的结果放在一个表格中,表格的第1行称为列头,第2行开始是数据,类属于一个二维数组

查询常量

select 常量值1,常量值2,常量值3;

如:

 

查询表达式

select 表达式;

如:

查询函数:

select 函数;

如:

 

 说明一下:

mod 函数,对两个参数取模运算

isnull函数,判断参数是否为空,若为空返回1,否则返回0

ifnull函数,2个参数,判断第一个参数是否为空,如果为空返回第二个参数的值,否则返回第一个参数的值

查询指定的字段

select 字段1,字段2,字段3 from 表名;

如:

说明:test1表有两个字段 a,b,select s,b from test1;用于查询test1中两个字段的数据

查询所有列

select * from 表名;

说明:

* 表示返回表中所有字段

如:

列别名

在创建数据表时,⼀般都会使⽤英⽂单词或英⽂单词缩写来设置字段名,在查询时列名都
会以英⽂的形式显⽰,这样会给⽤户查看数据带来不便,这种情况可以使⽤别名来代替英
⽂列名,增强阅读性。
语法:
select 列【as】别名 from 表名;
使用双引号创建别名:
select a "列1",b “列2” from 表名;

 

使用单引号创建别名:

select a ‘列1’,b ‘列2’ from 表名;

不使用引号创建别名:

select a 列1,b 列2 from 表名;

使用as创建别名:

select a as 例1,b as 例2 from 表名;

别名中有特殊符号的,比如空格,此时别名必须用引号括起来

懵逼示例,看效果:

认真看⼀下第 1 个和第 3 个返回的结果(列头和数据),是不是懵逼状态,建议这种的最
好使⽤ as as 后⾯跟上别名。

表别名:

select 别名.字段,别名.* from 表名【as】别名;

如:

 总结:

  • 建议别名前面跟上as关键字
  • 查询数据的时候,避免使用select * ,建议需要什么字段写什么字段

第七篇:select条件查询

电商中:我们想查看某个⽤户所有的订单,或者想查看某个⽤户在某个时间段内所有的订
单,此时我们需要对订单表数据进⾏筛选,按照⽤户、时间进⾏过滤,得到我们期望的结
果。
此时我们需要使⽤条件查询来对指定表进⾏操作,我们需要了解 sql 中的条件查询常见的
玩法。

本篇内容

1.条件查询语法

2.条件查询运算符详解(=、<、>、>=、<=、<>、!=)

3.逻辑查询语句(and、or)

4.like模糊查询介绍

5.between and 查询

6.in、not in查询

7.null值存在的坑

8.is null/is not null(null值专用查询)

9.<=>(安全等于)运算符

10.经典面试题

条件查询

语法:

select 列名 from 表名 where 列名 运算符 值;

说明:

注意关键字where,where后面跟上一个或者多个条件,条件是对前面数据的过滤。只有符合条件的数据才会被返回

等于(=)

select 列名 from 表名 where 列名=值;

说明:

查询出指定的列和对应的值相等的记录

值如果是字符串类型,需要用单引号或双引号括起来

示例:

不等于(<>、!=)

不等于有两种写法:<>和!=

select 列名 from 表名 where 列<>值;

select 列名 from 表名 where 列!=值;

示例:

注意:

<>这个是最早的用法

!=是后来加上的

两者意义相同,在可移植性前者由于后者

故而sql语句中尽量使用<>做不等判断

大于(>)

select 列名 from 表名 where 列>值;

示例:

说明:

数值按照大小比较

字符按照ASCII码对应的值进行比较,比较时按照字符对应的位置一个字符一个字符的比较

其他几个运算符(<、<=、>=)用法一样

逻辑查询运算符

当我们需要使用多个条件进行查询的时候。需要使用逻辑查询运算符

  • AND(并且)

select 列名 from 表名 where 条件1 and 条件2;

表示返回满足条件1和条件2的记录

  • OR(或者)

select 列名 from 表名 where 条件1 or 条件2;

返回满足条件1或者条件2的记录

  • like(模糊查询)
有个学⽣表,包含(学⽣ id ,年龄,姓名),当我们需要查询姓 的学⽣的时候,如何
查询呢?
此时我们可以使⽤ sql 中的 like 关键字。语法:
select 列名 from 表名 where 列 like pattern;
pattern 中可以包含通配符,有以下通配符:
  • %:表⽰匹配任意⼀个或多个字符
  • _:表⽰匹配任意⼀个字符

学生表,查询姓“张”的学生:

  •  BETWEEN AND(区间查询)

操作符 BETWEEN ... AND 会选取介于两个值之间(包含两值)的数据范围,这些值可以是数值、⽂本或

者⽇期,属于⼀个闭区间查询。
select 列名 from 表名 where 列名 BETWEEN 值1 AND 值2;
返回对应的列的值在 [ 1, 2] 区间中的记录
使⽤ between and 可以提⾼语句的简洁度
两个临界值不要调换位置,只能是⼤于等于左边的值,并且⼩于等于右边的值

IN查询

我们需要查询年龄为 10 岁、 15 岁、 20 岁、 30 岁的⼈,怎么查询呢?可以⽤ or查询,如:
select * from test6 t where t. age = 10 or t. age = 15 or t. age = 20 or t. age = 30 ;
⽤了这么多 or ,有没有更简单的写法?有,⽤ IN 查询
IN 操作符允许我们在 WHERE ⼦句中规定多个值。
select 列名 from 表名 where 字段 in ( 1, 2, 3, 4);
in 后⾯括号中可以包含多个值,对应记录的字段满⾜ in 中任意⼀个都会被返回
in 列表的值类型必须⼀致或兼容
in 列表中不⽀持通配符
NOT IN 查询
not in in 刚好相反, in 是列表中被匹配的都会被返回, NOT IN 是和列表中都不匹配的会
被返回。
select 列名 from 表名 where 字段 not in (值1,值2,值3,值4);

NULL存在的坑

上⾯带有条件的查询,对字段 b 进⾏条件查询的, b 的值为 NULL 的都没有出现。
c 字段进⾏ like '%' 查询、 in not 查询, c 中为 NULL 的记录始终没有查询出来。
between and 查询,为空的记录也没有查询出来。
结论:查询运算符、 like between and in not in NULL 值查询不起效。
NULL 如何查询呢?继续向下看

IS NULL/IS NOT NULL(NULL值专用查询)

上⾯介绍的各种运算符对 NULL 值均不起效, mysql 为我们提供了查询空值的语法: IS
NULL IS NOT NULL

IS NULL(返回值为空的记录)

select 列名 from 表名 where 列 IS NULL;

查询指定的列的值为NULL的记录

IS NULL(返回值不为空的记录)

select 列名 from 表名 where is not null ;
查询指定的列的值不为 NULL 的记录

<=>(安全等于)

<=> :既可以判断 NULL值,又可以判断普通的数值,可读性较低,⽤得较少,<=> 可以将 NULL 查询出来

经典面试题

下⾯的 2 sql 查询结果⼀样么?
select * from students;
select * from students where name like '%' ;
答:分两种情况:
1.记录中有NULL时,不一样
2.没有NUL时,一样
因为like(模糊查询)查询不出值为NULL的记录

总结

  • like中的%可以匹配一个或多个任意的字符,_可以匹配一个任意的字符
  • 空值查询需要用IS NULL或IS NOT NULL,其他查询运算符对NULL值无效
  • 建议创建表时,尽量设置表的字段不能为空,给字段设置一个默认值
  • <=>(安全等于)玩玩可以,建议少用
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/189173
推荐阅读
相关标签
  

闽ICP备14008679号