数据库简单查询

简单查询

语法句式如下:

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)

大家都在看

  • c++智能指针的使用,shared_ptr,unique_ptr,weak_ptr

    c++智能指针的使用 官方参考 普通指针的烦恼:内存泄漏,多次释放,提前释放 智能指针 负责自动释放所指向的对象。 三种智能指针 shared_ptr,unique_ptr,wea…

    Linux 2023年6月14日
    0137
  • python 多线程

    python 多线程 多线程流程 导入模块 import threading 通过线程类型创建线程对象 线程对&a…

    Linux 2023年6月13日
    082
  • RPA 快手自动上传机器人

    bash;gutter:true;1、打开账号Cookie预存表格2、机器人自动登录账号3、机器人开始按照预设视频位置开始自动上传视频4、机器人开始自动填写视频相关信息内容5、完成…

    Linux 2023年6月7日
    0125
  • linux命令之wget下载

    wget wget 是一个下载文件的工具。 格式 wget [参数] [URL地址] 常用参…

    Linux 2023年5月27日
    089
  • IDEA远程部署项目到Docker

    最近在写东西部署到服务器,结构是springboot工程配合docker部署。但是每次部署都3个步骤: 部署次数一多,我就怀疑人生了。就在找有没有IDEA远程部署Docker的方案…

    Linux 2023年6月7日
    093
  • Linux命令1

    快捷键 1、打开终端 ctrl+alt+t 2、…

    Linux 2023年6月8日
    0115
  • Shell脚本完成IOS平台下的多目录和多架构编译(调用Makefile一起完成)

    博客园 :当前访问的博文已被密码保护 请输入阅读密码: Original: https://www.cnblogs.com/cy568searchx/p/5735429.htmlA…

    Linux 2023年5月28日
    0123
  • 《深度工作:如何有效使用每一点脑力》读后感

    空闲时间阅读了一下《深度工作:如何有效使用每一点脑力》,作为一个沉迷网络的人,已经很难有聚精会神的时候,所以阅读此书,记录一下读后感,争取应用到生活当中。全书分为两个方面进行说明:…

    Linux 2023年6月7日
    098
  • Python Docstring 风格和写法学习

    什么是Python Docstring 和Java类似,Python也通过注释形式的Docstring给程序、类、函数等建立文档。通过Docstring建立的文档不仅对人来说有更好…

    Linux 2023年6月14日
    0107
  • linux系统(centos)下kvm虚拟化用命令行给虚拟机添加硬盘

    linux系统(centos)下kvm虚拟化用命令行给虚拟机添加硬盘 背景 公司有用单台服务器使用kvm装虚拟机,利用webvirtmgr进行界面管理。当虚拟机创建时固定硬盘后,不…

    Linux 2023年6月8日
    0112
  • UDS诊断应用层笔记

    UDS概述 UDS(Unified Diagnostic Services,统一的诊断服务)诊断协议是在汽车电子ECU环境下的一种诊断通信协议,在 ISO 14229中规定。它是从…

    Linux 2023年6月13日
    0117
  • CentOS7安装MySQL5.7并配置账户等

    注意: 有的Centos版本默认安装了mariadb, 可以先将其卸载 检查mariadb是否安装 yum list installed | grep mariadb 卸载mari…

    Linux 2023年6月6日
    080
  • N68第二周作业

    完成作业:完成一个shell脚本,脚本的作用。1. 运行脚本可以显示出本机的ip地址2. 如果ip地址中有3这个数字,那么就打印出当前的系统时间3. 如果ip地址中不含3这个数字,…

    Linux 2023年6月7日
    0162
  • 快速上手FastJSON

    作为一名后端开发而言肯定会接触数据,把数据提供给前端或者把数据存储起来,目前比较火热的传输格式是json,给前端传json是再常见不过啦,甚至是往db里面直接存入json。 在ja…

    Linux 2023年6月14日
    085
  • 更快的排序——归并排序!基于分而治之的对数复杂度的排序Merge Sort

    Merge Sort Algorithm The merge sort algorithm is defined recursively: If the list is of si…

    Linux 2023年6月13日
    0101
  • 七种方案!探讨Redis分布式锁的正确使用姿势

    日常开发中,秒杀下单、抢红包等等业务场景,都需要用到分布式锁。而Redis非常适合作为分布式锁使用。本文将分七个方案展开,跟大家探讨Redis分布式锁的正确使用方式。如果有不正确的…

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