数据库简单查询

简单查询

语法句式如下:

SELECT filed1,filed2 ... filedn
    FROM tablename
    [WHERE CONDITION11]
    [GROUP BY filedm [HAVING CONDITION2]]
    [ORDER BY filedn [ASC|DESC]]

filed1 – filedn 参数表示 需要查询的字段名

tablename 参数表示 表的名称

CONDITION1 参数表示 查询条件

filedm 参数表示 按该字段中的数据进行分组

CONDITION2 参数表示 满足该表达式的数据才能输出

filen 参数表示 按该字段中的数据进行排序 ASC 表示 升序 DESC 表示 降序

查询所有字段数据

  1. 列出表的所有字段
SELECT filed1,filed2,...filedn FROM tablenamee;
mysql> SELECT name,sex,age FROM t_stu;
+
| name | sex   | age  |
+
| jack | woman |   18 |
| jim  | woman |   15 |
| tom  | man   |   15 |
+
3 rows in set (0.00 sec)
  1. “*” 的使用
SELECT filed1,filed2,...filedn FROM tablenamee;

查询指定字段数据

例如:从学生表中姓名、性别和年龄字段

SELECT name,sex,age FROM t_student;
mysql> SELECT *FROM t_stu;
+
| name | sex   | age  |
+
| jack | woman |   18 |
| jim  | woman |   15 |
| tom  | man   |   15 |
+
3 rows in set (0.00 sec)

DISTINCT 查询

实现查询不重复数据

SELECT DISTINCT filed1,filed2...filedn FROM tablename;
mysql> SELECT DISTINCT sex FROM t_stu;
+
| sex   |
+
| woman |
| man   |
+
2 rows in set (0.00 sec)

mysql> SELECT DISTINCT age FROM t_stu;
+
| age  |
+
|   18 |
|   15 |
+
2 rows in set (0.00 sec)

IN 查询

判断字段的数值是否在指定集合的条件查询

1. 在集合中的记录查询

SELECT filed1,filed2,...,filedn FROM tablename WHERE filedm IN(value1,value2,...,valuen);
mysql> SELECT name,age FROM t_stu WHERE age IN(15 ,17,16);
+
| name | age  |
+
| jim  |   15 |
| tom  |   15 |
+
2 rows in set (0.00 sec)

2. 不在集合中的记录查询

SELECT filed1,filed2,...,filedn FROM tablename WHERE filedm NOT IN(value1,value2,...,valuen);
mysql> SELECT name,age FROM t_stu WHERE age NOT  IN(15 ,17,16);
+
| name | age  |
+
| jack |   18 |
+
1 row in set (0.00 sec)

3. 集合查询的注意点

在具体使用关键字 IN

查询的集合中如果存在 NULL,则不会影响查询
使用关键字 NOT IN时,则不会有任何查询结果

mysql> SELECT name,age FROM t_stu WHERE age IN(15 ,17,16,NULL);
+
| name | age  |
+
| jim  |   15 |
| tom  |   15 |
+
2 rows in set (0.00 sec)
mysql> SELECT name,age FROM t_stu WHERE age NOT IN(15 ,17,16,NULL);
Empty set (0.00 sec)

BETWEEN AND 查询

实现判断字段的数值是否在指定范围内的条件查询

SELECT filed1,filed2,...,filedn
FROM tablename WHERE filedm BETWEEN minvalue AND maxvalue;
  mysql> SELECT *FROM t_stu WHERE age BETWEEN 15 AND 30;
+
| name   | sex   | age  |
+
| jack   | woman |   18 |
| jim    | woman |   15 |
| tom    | man   |   15 |
| 小花   | woman |   25 |
+
4 rows in set (0.00 sec)

mysql> SELECT *FROM t_stu WHERE age BETWEEN 16 AND 30;
+
| name   | sex   | age  |
+
| jack   | woman |   18 |
| 小花   | woman |   25 |
+
2 rows in set (0.00 sec)

一点小问题:关于字符编码

mysql> insert into t_stu values("小花",'woman',25);
ERROR 1366 (HY000): Incorrect string value: '\xE5\xB0\x8F\xE8\x8A\xB1' for column 'name' at row 1

插入数据失败 查看建表信息

数据库简单查询

解决连接CSDN

数据库简单查询

; LIKE 模糊查询

语法句式如下:

SELECT filed1,filed2,...,filedn
FROM tablename WHERE filedm LIKE value;

LIKE关键字支持的通配符

符号功能描述_该通配符能匹配单个字符%该通配符能匹配任意长度的字符串

  1. 带有 % 通配符的查询

  2. 带有 _ 通配符的查询

对查询结果进行排序

语法句式如下:

SELECT filed1,filed2,...,filedn
FROM tablename ORDER BY filedm [ASC|DESC];

简单分组查询

语法句式如下:

SELECT function()
FROM tablename WHERE CONDITION GROUP BY filed;

统计分组查询

语法句式如下:

联合查询

内连接查询

1. 自连接查询

自连接:表与其自身进行连接

select ts1.stuid ,ts1.name,ts1.classno
from t_student as ts1, t_student as  ts2
WHERE ts1.classno = ts2.classno and ts2.name = 'Alicia Florric';

更多请点击这里

Original: https://www.cnblogs.com/iforeverhz/p/16255982.html
Author: iforeverhz
Title: 数据库简单查询

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/583236/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 使用 Spring Boot Admin 监控应用状态

    1 Spring Boot Actuator Spring Boot Actuator 是 Spring Boot 提供的对应用的自省和监控功能,如健康检查,审计,指标收集,HTT…

    Linux 2023年6月7日
    093
  • Pytorch Tensor 维度的扩充和压缩

    维度扩展 x.unsqueeze(n) 在 n 号位置添加 一个维度 例子: import torch x = torch.rand(3,2) x1 = x.unsqueeze(0…

    Linux 2023年6月7日
    083
  • pod(一):Kubernetes(k8s)创建pod的两种方式

    服务器版本 docker软件版本 CPU架构 CentOS Linux release 7.4.1708 (Core) Docker version 20.10.12 x86_64…

    Linux 2023年6月7日
    085
  • 将Java代码打包成jar文件转换为.exe可执行程序方法

    ​ 做完学生管理系统后我想将代码打包成一个可执行程序,那样就可以直接点击在Windows下运行了,下面就跟大家分享下打包方法。 将Java的代码转换成 .exe 文件需要先把代码打…

    Linux 2023年6月6日
    096
  • 安装webgot漏洞实验平台时遇到的java环境配置问题

    6 .安装并注册 依次执行命令: 将已下载的Java版本登记为替代版本,将其改成作为默认版本来使用: update-alternatives –install /usr…

    Linux 2023年6月13日
    065
  • idea 运行 tyarn 命令提示系统禁止运行脚本

    无法加载文件D:……….(报错信息。。。),因为在此系统上禁止运行脚本,有关详细信息,请参阅 https:/go.microsoft.com/f…

    Linux 2023年6月13日
    086
  • VS2022编译太慢

    解决方法是把编译出的exe程序或目录添加到杀毒软件白名单 一个C++的helloworld,在vs里硬是10秒才能编译启动。不知道大家有没有遇到。禁用符号加载还是很慢。甚至换成co…

    Linux 2023年6月6日
    0105
  • Jq 手机端输入框防止底部菜单被小键盘弹起

    var winHeight = $(window).height(); //获取当前页面高度 $(window).resize(function () { var thisHeig…

    Linux 2023年6月7日
    085
  • JavaScript this

    本博客所有文章仅用于学习、研究和交流目的,欢迎非商业性质转载。 博主的文章没有高度、深度和广度,只是凑字数。由于博主的水平不高,不足和错误之处在所难免,希望大家能够批评指出。 博主…

    Linux 2023年6月13日
    087
  • 如何使用 etcd 实现分布式 /etc 目录

    etcd 是一款兼具一致性和高可用性的键值数据库,简单、安全、快速、可信,目前是 Kubernetes 的首要数据存储。我们先来看一段 etcd 官方对于名字的解释。 The na…

    Linux 2023年6月14日
    0123
  • 【V4L2】V4L2框架浅析

    概述 V4L2(Video4Linux的缩写)是Linux下关于视频采集相关设备的驱动框架,为驱动和应用程序提供了一套统一的接口规范。 V4L2支持的设备十分广泛,但是其中只有很少…

    Linux 2023年6月13日
    0109
  • Linux指令

    Linux 目录简介/bin Binary的缩写,存放最经常使用的命令/sbin s代表Super user,存放系统管理员使用的系统管理程序/home 存放普通用户的主目录,每个…

    Linux 2023年5月27日
    089
  • 安卓手机改造服务器——解决chroot下无法使用systemctl

    在Linux Deploy中安装的CentOS7无法使用 systemctl命令,没关系我们有其他办法 写在前面 对于这个问题,我也是第一次遇见。并没有深入研究,所有如果有哪些地方…

    Linux 2023年6月8日
    0128
  • 详解IP地址、子网掩码、网络号、主机号、网络地址、主机地址

    详解IP地址、子网掩码、网络号、主机号、网络地址、主机地址 概念 IP地址:一般是指逻辑ip; 子网掩码:将IP划分为网络号和主机号的IP; 网络号/主机号:子网掩码转成二进制后,…

    Linux 2023年6月6日
    0110
  • phpcms如何在前台文章列表前显示所属类别名称

    最近做单位网站模版遇到的问题,欲实现的效果: 但是phpcms中自带的文章列表标签没有这个功能,数据库中文章表中也只有类别id的字段,因此不能通过简单的{$r[catname]}读…

    Linux 2023年6月13日
    088
  • redis key的过期时间

    设置redis key的生存过期时间 Redis 有四个不同的命令可以用于设置键的生存时间(键可以存在多久)或过期时间(键什么时候会被删除) : EXPlRE 命令用于将键key …

    Linux 2023年5月28日
    088
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球