MySQL数据表中的数据单表查询

SELECT语句

使用SELECT语句进行对数据表查询;语法格式为:
SELECT [ALL | DISTINCT] * | 列名1 [,列名2,…,列名N]
FROM 表名
[ WHERE 条件表达式]
[GROPUP BY 列名 [ASC | DESC] [HAVING 条件表达式] ]
[ORDER BY 列名 [ASC | DESC] , … ]
[LIMIT [OFFSET] 记录数];

语法说明如下:

  • SELECT 子句:表示从表中查询指定的列,当使用 ‘*’时u,用于显示表中所有的列;关键字DISTINCT为可选参数,用于消除查询结构集中的重复记录。
  • FROM子句:表示查询的数据源,可以是表或视图。
  • WHERE子句:用于指定查询筛选条件。
  • GROUP BY子句:用于将查询结果按指定的列进行分组;其中HAVING为可选参数,用于对分组后的结果集进行筛选。
  • ORDER BY子句:用于对查询结果集按指定的列进行排序。排序方式由参数 ASC或者 DESC控制,其中ASC表示升序排序,DESC则表示降序排序。当不指定怕排序参数时,默认为升序。
  • LIMIT子句:用于限制查询结果集的行数。参数OFFSET为偏移量,当OFFSET设置为0时,表示从查询结果的第一条记录开始,如果OFFSET为1时,表示查询结果从第二条记录开始,以此类推;记录数则表示结果集中包含的记录条数。

查看列

1. 查询所有列
在SELECT子句中,使用关键字 “*” 表示选择指定表中所有的列。查询结果集中的排序顺序与原表中列的顺序相同。
查看userss数据库中users数据表的所有信息:

USE userss;
SELECT * FROM users;

2.查询指定的列
使用SELECT 语句选择表中的指定列、列名与列名间用逗号隔开。
查看user数据库中users数据表的编号、姓名。

SELECT uid,uname
FROM users;

3、计算列值
在使用SELECT语句中,可以使用表达式作为查询的结果列。
查询users数据表中的姓名、年龄(现在时间-出生时间)

SELECT uname,year(now())-year(ubirth)
FROM users;

4、为查询结果中的列指定列标题
默认情况下,结果集显示的列标题为查询列的名称,但希望使用其他标题时,可以用AS关键字来更改。
查询users数据表中的姓名、出生时间,将出生时间的标题设为诞生时间。

SELECT uname,ubirth as Born
FROM users;

选择行

1、使用比较运算符和逻辑运算符

  • 比较运算符
运算符含义
=等于
>大于
<小于
>=大于小于
<=小于等于
<>,!=不等于

语法格式:WHERE 表达式1 比较运算符 表达式2
查询users表中uid大于5的用户名;

SELECT uid,uname
FROM users
WHERE uid>5;

- 逻辑运算符
逻辑运算符包括:与(AND)、或(OR)、非(NOT)
语法格式为:WHERE [NOT] 表达式1 逻辑运算符 表达式2
查询users表中年龄为19岁和20岁的男性用户,列出性别、出生时间,用户名:

SELECT uname,ubirth
FROM users
WHERE  uage=19 or uage=20 and usex="男"

使用 BETWEEN AND 运算符

WHERE子句中,可以使用BETWEEN AND来限制查询数据的范围,语法格式为:WHERE 表达式 [NOT] BETWEEN 初始值 AND 终止值
查询users表中uid为5到20的用户:

SELECT uname,uid
FROM users
WHERE uid BETWEEN 5 AND 20;

使用IN运算符

IN运算符与BETWEEN AND 运算符类似,用来限制查询数据的范围,语法格式为:WHERE 表达式 [NOT] IN (值1,值2,…值N)
查询users表中出生地为北京,上海,深圳的用户

SELECT uname,gdCity
FROM users
WHERE uCity in ('北京','上海','深圳');

使用LIKE运算符

使用LIKE运算符可以模糊查询,格式如下:
WHERE 列名 [NOT] LIKE ‘字符串’ [ESCAPE ‘转义字符’];
其中与LIKE运算符同时使用的是通配符;ESCAPE的作用则是当用户要查询的数据本身含有通配符时,可以使用该选项对通配符进行转义。

通配符说明
%任意字符
_任意单个字符
通配符示例
%%S:查询以S结尾的任意字符串,如:ADDRESS;S%:查询以S开头的任意字符串,如Small;%S%:查询包含S的任意字符串,如:SUPER,COURSE
_S:查询以S结尾且长度为2的字符串,如:AS;S:查询以S开通且长度为2的字符串,如SA

例如:查询users表中uname为“李”开通的用户名、性别。

SELECT uanme,usex
FROM users
WHERE uname LIKE "李%";

REGEXP运算符

使用REGEXP运算符来进行正则表达式匹配,语法格式如下:
WHERE 列名 REGEXP “模式串”;
在这里插入图片描述
例如:查询users表中uphone为“5”的用户姓名、手机号码:

SELECT uname,uphone
FROM users
WHERE uphone REGEXP "5$"

使用IS NULL 运算符

IS NULL 运算符实现表达式跟空值比较,语法格式如下:
WHERE 列名 IS [NOT] NULL
例如:查询users表中umoney为空的用户姓名:

SELECT uname
FROM users
WHERE umoney IS NULL

DISTINCT关键字

当查询结果集重复时,可使用DISTINCT关键字去除重复的结果集,
例如:查询users表中umoney大于5000的用户来自那些城市:

SELECT DISTINCT uCity
FROM users
WHERE umoney>5000;
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值