第八章 数据库查询

基本的查询语句

  • SELECT语句

    • 基本语法:SELECT 字段列表 FROM 表名 WHERE 查询条件;

      • 查询多个字段列表,字段列表处需要用逗号隔开
      • where是字句,可选项,限定查询条件用
      • 例如,select f_id,f_name from test1 where f_name='xi';

单表查询

单表查询概念:从一张表中查询所有的数据

单表查询相关指令

  • 查询所有字段SELECT * FROM 表的名称;

  • 查询指定字段SELECT 字段列表(列名) FROM 表名;

  • 查询指定记录

    • 使用in和not in关键字进行范围查找:

      • SELECT 字段列表 FROM 表名 WHERE 字段列表 IN (要查的数据内容);

        例如:select s_id from test1 where s_id in (123,124);,表示在s_id内找到有123和124的数据内容

      • SELECT 字段列表 FROM 表名 WHERE 字段列表 NOT IN (不要查的数据内容) ORDER BY 字段列表;

        例如:select s_id from test1 where s_id not in (124) order by s_id;,表示在s_id内找除了124以外的数据内容

    • 使用between关键字进行范围查找:SELECT 字段列表 FROM 表名 WHERE 字段列表 BETWEEN 查找范围(小) AND 查找范围(大) ORDER BY 字段列表;

    • 使用like关键字进行模糊查询:SELECT 字段列表 FROM 表名 WHERE 字段列表 LIKE '模糊查询内容1%模糊查询内容2';

      • 加了百分号表示查询以查询内容1开头的内容

        例如,select f_name from test1 where f_name like 'm%';

      • 模糊查询结尾

        • 模糊查询内容2为可选项,表示以模糊查询内容2结尾的内容

        • 也可以“(前面字符个数的下划线)模糊搜索内容2”来查询以模糊搜索内容2结尾的内容

          例如,select f_name from test1 where f_name like '__i';

      • 参数

        • #%:匹配任意长度
        • _:匹配任意字符
  • 查询空值SELECT 列名 FROM 表名 WHERE 列名 IS NULL;

    例如:(’'表示空字符串,NULL表示空值)

    insert into test2 (id,name) values ('129',NULL);
    
    SELECT ID FROM TEST2 WHERE NAME IS NULL;
    
  • 多条件查询SELECT 字段列表 FROM 表名 WHERE 字段列表 条件1 OR 条件2;

    例如,SELECT ID FROM TEST2 WHERE NAME='1' OR NULL;

  • 查询结果排序

    • 语法格式:在查询条件最后加ORDER BY 字段列表
    • 例如:select s_id from test1 where s_id in (123,124) order by s_id;

合并查询结果并去重

  • 合并查询结果关键字:UNION

  • 例如:

    SELECT ID,NAME FROM TEST2 WHERE ID<128 UNION ALL SELECT ID,NAME FROM TEST2 WHERE ID IN (123,126) AND NAME IN (1);

    • UNION后加上ALL:不删除重复的行
    • UNION后不加ALL:删除重复的行(去重)

正则表达式查询

  • 正则表达式关键字:REGEXP
  • 一条语句中匹配的字符可以不止一个
  • 符号
符号 含义
^ 匹配文件的开头字符
$ 匹配文件结尾的字符
. 匹配任意单个字符
* 匹配任意个字符(包括0个)
+ 匹配前面的字符1~n次
[字符集合] 匹配范围中的任意字符
[^] 匹配不在范围内的任何字符
{n} 匹配前面的字符至少n次
{n,m} 匹配前面的字符n~m次
匹配包含任意字符串的文本

查询特定字符开头的记录

例如:select * from test3 where name regexp '^x';,为查询name列中以x字符开头的记录

查询特定字符结尾的记录

例如:select * from test3 where name regexp 'i$';,为查询name列中以i字符结尾的记录

用点符号.替代任意字符

例如:select * from test3 where name regexp '^.';,为查询任意字符开头的记录

使用+和*匹配多个字符

例1:select * from test3 where name regexp 'e*';表示查询匹配e任意个的记录(包括0个)

例2:select * from test3 where name regexp 'e+';表示查询匹配e至少1个的记录

数据库8-数据库查询相关推荐

  1. mysql主从 查询负载_MySQL集群:主从数据库配置 实现查询负载

    在做web应用系统中,如果数据库出现了性能瓶颈,而你又是使用的MySQL数据库,那么就可以考虑采用数据库集群的方式来实现查询负载了.因为一般来讲任何一个系统中数据库的查询操作比更新操作要多的多,因此通 ...

  2. sql镶嵌查询_sql数据库的嵌套查询

    实验四:数据库的嵌套查询实验 学号: 姓名: 实验四:数据库的嵌套查询实验 实验目的: 加深对嵌套查询语句的理解. 实验内容: 使用 IN . 比较符. ANY 或 ALL 和 EXISTS 操作符进 ...

  3. python数据库模糊查询_python中数据库like模糊查询方式

    python中数据库like模糊查询方式 在Python中%是一个格式化字符,所以如果需要使用%则需要写成%%. 将在Python中执行的sql语句改为: sql = "SELECT * F ...

  4. Oracle数据库日期范围查询的两种实现方式

    Oracle数据库日期范围查询有两种方式:to_char方式和to_date方式,接下来我们通过一个实例来介绍这一过程.我们假设要查询2011-05-02到2011-05-30之间的数据,实现方式如下 ...

  5. python如何查询数据库_Python数据库操作手册-数据库专栏,SQL Server

    数据库的操作在现在的python里面已经变得十分的好用,有了一套api标准.下面的就是讲讲如何的去使用这套框架定义.此框架包含以下部分模块接口 连接对象 游标对象 dbi辅助对象 数据类型与定义 如何 ...

  6. mysql中实现分类统计查询的步骤_实验07:数据库的组合查询和统计查询

    实验6:数据库的组合查询和统计查询实验 本实验需要 4 学时. 一.实验目的 使学生熟练掌握SQL Server 查询分析器的使用方法,加深对SQL 和Transact-SQL 语言的查询语句的理解. ...

  7. Oracle 9i 数据库 创建数据库 Net 配置 创建表 SQL查询 创建存储过程 (图)

    创建数据库 用"数据库配置助手"创建数据库 创建数据库 选择 普通用途 输入名字,SID 在此我们选择专用服务器模式 典型 参数 含义 [最大并发连接用户数]文本框设置要在任意给定 ...

  8. [转]对于非数据库字段的查询过滤以及app_query.append的用法

    在Form中在查询的记录不希望某些记录显示出来,例如不需要供应商A被显示出来,假设供应商A是数据库项,可以使用 set_block_property('block_name', DEFAULT_WHE ...

  9. Oracle数据库之子查询

    Oracle数据库总结: Oracle数据库之基本查询 Oracle数据库之过滤和排序 Oracle数据库之单行函数 Oracle数据库之多行函数 Oracle数据库之多表查询 SQL> 注意的 ...

  10. Oracle数据库之基本查询

    oracle安装参照: Oracle数据库之安装教程 Oracle数据库总结: Oracle数据库之基本查询 Oracle数据库之过滤和排序 Oracle数据库之单行函数 Oracle数据库之多行函数 ...

最新文章

  1. SQL to Elasticsearch java code
  2. 代码逻辑是分方法写好 还是在一个方法写好_这一团糟的代码,真的是我写的吗?...
  3. 开源一个上架App Store的相机App
  4. Java实现swap交换(可能跟网上的一些方法不太一样)
  5. 通过xadmin或者suit-v2快速搭建后台管理系统
  6. org.apache.jasper.JasperException: Unable to compile class for JSP
  7. 华为交换机ssh思科交换机_华为交换机 ssh 配置(极简版)
  8. pictureselector 压缩_Android 多图选择器PictureSelector 使用
  9. python 取json下某一key_利用Python爬取全国250m精度的人口数据、房价数据和公交站(线路)等数据(一)...
  10. Python从2.6升级到2.7,使用pip安装module,报错:No Module named pip.log(转载)
  11. redhat7 上安装dummynet
  12. 学习日记day36 平面设计 字体设计
  13. C++ gbk与utf8互转
  14. 米思齐(Mixly)图形化系列教程(四)-运算符
  15. [Jpa 运行报错] Error executing DDL “alter table project_user_f.
  16. blast在linux上的用法
  17. 济南打印个人社保缴费证明操作手册--招投标使用
  18. 数据有效性做下拉菜单
  19. python zipfile压缩文件夹
  20. 背包三讲(感谢崔添翼 (Tianyi Cui)大佬的无私奉献)

热门文章

  1. 小学六年级能用计算机器,2018小学六年级信息技术试题.doc
  2. 基于eCognition的面向对象地貌类型分类教程
  3. ORA 00942 table or view does not exist
  4. 字节跳动Dev Better技术沙龙成功举办,携手华泰分享Web研发效能提升经验
  5. python 显示PGM格式图片的3种方式
  6. dmp如何导入mysql_如何导入MySQL数据库
  7. 关于DDR协议一些操作的理解1
  8. C语言用数组设计地图流程图,2018c语言第1次作业
  9. 【python】【数据分析】2022年全国大学生数据分析大赛题解-医药电商销售数据分析
  10. c语言中较常见的由内存分配引起的错误_内存越界_内存未初始化_内存太小_结构体隐含指针