欢迎来到代码驿站!

Mysql

当前位置:首页 > 数据库 > Mysql

SQL基础的查询语句

时间:2023-03-08 12:02:28|栏目:Mysql|点击:

SQL语句中,查询是使用最多的操作,SQL不仅能够查询表中的数据,还可以返回算术运算、表达式的结果等,接下来就一起了解一下基本的查询语句。

一、基础SELECT语句

1、查询指定字段

语法格式:

SELECT <字段名>,... FROM <表名>;

在语句中可以指定多个字段,结果会根据指定的字段进行显示。

例如:在users用户表中查询用户id、用户名、昵称、性别信息:

SELECT user_id,user_name,nick_name,sex FROM users;

2、查询全部字段

查看表中的全部字段可以使用星号"*"表示,例如,以下语句查询users用户表中的所有数据:

SELECT * FROM users;

"*"代表所有字段,数据库在解析该语句时,会使用表中的字段名进行扩展,根据实际情况将"*"换成user_iduser_namenick_namesexmobileemail等表的字段。

3、设定别名

使用AS关键字可以为列设定别名。

SELECT user_id AS id,user_name AS 用户名称,nick_name AS 昵称,sex AS 性别 FROM users;

4、常数的查询

SELECT语句中不仅可以书写列名,而且还可以书写常数,

如下:

SELECT 100;
SELECT '用户';

5、表达式的查询

SELECT 98%100;

6、去重

SELECT语句中可以使用DISTINCT关键字去除查询结果中的重复记录,例如,去除user_name重复的数据:

SELECT DISTINCT user_name FROM users;

注意: DISTINCT对NULL是不进行过滤的,即返回的结果中是包含NULL值的;

DISTINCT应用到多列的时候,应用范围是其后面跟的所有字段,而且DISTINCT只能放到所有字段的前面,也就是第一个列名之前。

SELECT DISTINCT user_name,nick_name FROM users;

7、条件查询

SELECT语句通过WHERE子句来查询符合指定条件的记录,WHERE子句要紧跟在FROM子句之后。

SELECT <字段名>,... FROM <表名> WHERE <条件表达式>;

7.1 单条件查询

查询性别为男性的用户:

SELECT * FROM users WHERE sex='男';

查询年龄小于等于24的用户:

SELECT * FROM users WHERE age<=24;

查询用户id不是3的用户:

SELECT * FROM users WHERE NOT user_id=3;

在第3个例子中使用了NOT运算符,在条件前加NOT就代表否定这个条件,查找这个条件以外的记录。

7.2 多条件查询

查询年龄小于等于24或者性别为男性的用户:

SELECT * FROM users WHERE age<=24 OR sex='男';

查询年龄小于等于24并且性别为男性的用户:

SELECT * FROM users WHERE age<=24 AND sex='男';

上面使用了多条件查询,条件能同时成立AND运算符,条件只能成立一个用OR运算符。

7.3 指定范围查询

查询用户id在(2,3,7,8)范围内的用户:

SELECT * FROM users WHERE user_id IN (2,3,7,8);

IN在WHERE子句中规定多个值,IN后跟圆括号,括弧内可以有一个或多个值,值之间由逗点分开,值可以是数字或者字符。

查询用户id在10-15之间的用户:

SELECT * FROM users WHERE user_id BETWEEN 10 AND 15;

BETWEEN ... AND指定介于两个值之间的数据范围,这些值可以是数值、文本或者日期。

7.4 模糊查询

LIKE关键字用于SQL的模糊查询,用于对搜索字符串进行模式匹配。

语法格式:

字段名 LIKE pattern

匹配模式:

  • %:百分号匹配零个、一个或多个字符
  • -:下划线符号匹配单个字符
模式 含义
LIKE 'a%' 匹配以A开始的字符串,如abc、ab
LIKE '%y' 匹配以y结尾的字符串,如aay、xy
LIKE '%mn% 匹配包含mn的字符串,如amnb、lmn
LIKE 'a_' 匹配以a开始,后面只有一个字符的数据,如ay、ab
LIKE '_y' 匹配以y结尾,前面只有一个字符的数据,如ay,xy
例如:

查找用户昵称包含tigeriaf的数据:

SELECT * FROM users WHERE nick_name LIKE '%tigeriaf%';

上一篇:一文读懂MySQL 表分区

栏    目:Mysql

下一篇:mybatis-plus分页传入参数后sql where条件没有limit分页信息操作

本文标题:SQL基础的查询语句

本文地址:http://www.codeinn.net/misctech/227070.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有