SQL语句之查询(SELECT)

目录

  • SQL语句之查询(SELECT)

    • 简单查询
    • 限定查询
    • 模糊查询
    • 排序查询
    • 多表查询

SQL语句之查询(SELECT)

SQL是用于访问和处理数据库的标准计算机语言;
中文:结构化查询语言;英文全称:Structured Query Language;
而其中的核心就是查询。

简单查询

SELECT 字段,字段,字段...            [SELECT 子句]
FROM EMP;(数据来源)                 [FROM 子句]
  • 以上两个语句执行时,先执行FROM子句,再执行SELECT子句。
  • 当查询所有字段信息时可以使用通配符*
  • 当信息有重复时,可以使用关键字DISTINCT来去除重复。

限定查询

再实际开发中基本上都会使用限定查询

SELECT 字段,字段,字段...            [SELECT 子句]
FROM 数据来源                         [FROM 子句]
WHERE 过滤条件                       [WHERE 子句]
  • WHERE 子句会根据过滤条件来选择出满足条件的数据。

1.关系运算符

SELECT *
FROM EMP
WHERE SAL>1000;
  • 查询月薪大于1000的员工信息。
SELECT *
FROM EMP
WHERE ENAME = 'SMITH';
  • 查询名为SMITH的员工信息。
SELECT *
FROM EMP
WHERE JOB<>'SALESMAN';
  • 查询工作不是SALESMAN(销售)所有员工信息。

2.逻辑运算符

SELECT *
FROM EMP
WHERE SAL >= 1500 AND SAL<= 3000;
SELECT *
FROM EMP
WHERE BETWEEN 1500 AND 3000;
  • 以上两种方式都是查询所有月薪在1500到3000之间的员工信息;但是这两种的有区别的。第一种在数据库中会认为是两个判断条件,而第二种(BETWEEN AND )则只认为是一个判断条件,所有第二种效率更高一点。

3.空判断

SELECT *
FROM EMP
WHERE COMM IS NULL;
  • 查询没有佣金的员工信息。

4.IN查询

SELECT *
FROM EMP
WHERE EMPNO IN (7788,7654,6329);
  • 查询员工编号是7788,7654,6329的员工信息。

模糊查询

在了解模糊查询之前要先了解通配符_%
_:表示任意一个字符;
%:表示任意位数的任意字符;
同过关键字LIKE来实现模糊查询。

SELECT 字段,字段...
FROM 数据来源
WHERE 模糊查询的字段 LIKE 关键内容
SELECT *
FROM EMP
WHERE ENAME LIKE 'A%';
  • 查询姓名以A开头的员工信息。
SELECT *
FROM EMP
WHERE ENAME LIKE '%A%';
  • 查询姓名中含有A的员工信息。
SELECT *
FROM EMP
WHERE ENAME LIKE '_A%';
  • 查询姓名第二个字母是A的员工信息。

排序查询

排序查询:将结果按照指定字段进行升序或者降序来显示,注意指定的字段一般指数字或者日期。

其关键字是 ORDER BY

SELECT 字段...
FROM 数据来源
WHERE 过滤条件
ORDER BY 排序字段   ASC[DESC]
  • ASC:升序排列(默认);DESC:降序排列。
SELECT *
FROM EMP
WHERE JOB = 'SALESMAN'
ORDER BY SAL DESC;
  • 工作是销售并按月薪降序排列员工信息。

多表查询

如果要从多张数据表中查询数据,那么就会用到多表查询,多表查询也叫做连接查询。

SELECT 字段...
FROM 数据源,数据源...
WHERE 过滤条件
ORDER BY 排序字段 ASC[DESC]
  • 当多表查询时,会产生笛卡尔积。即查询出的数据量是各个数据源的数据量的乘积。这样的数据含有大量没用的重复数据,可以使用WHERE 子句来加过滤条件消除笛卡尔积。
SELECT *
FROM EMP,DEPT
WHERE EMP.DEPTNO = DEPT.DEPTNO;
  • 通过WHERE使两张数据源中关联字段相等来消除笛卡尔积。注意:这里的消除是指不显示没用的相关数据,实际上并没用真正的去除。所以一般数据量比较大时 不要使用多表查询,会消耗很多性能。


以上

@Fzxey

原文地址:https://www.cnblogs.com/fzxey/p/10883824.html

时间: 2024-10-12 03:39:38

SQL语句之查询(SELECT)的相关文章

SQL Server之 (二) SQL语句 模糊查询 空值处理 聚合函数

(二) SQL语句  模糊查询  空值处理  聚合函数 自己学习笔记,转载请注明出处,谢谢!---酸菜 SQL :结构化查询语言(Structured Query Language),关系数据库管理系统的标准语言. Sybase与Mircosoft对标准SQL做了扩展:T-SQL (Transact-SQL); 注:①SQL对大小写的敏感取决于排序规则,一般不敏感; ②SQL对单引号的转义,用两个单引号来表示一个单引号; ③SQL执行顺序: 1→2→3→4 select  * ---------

LINQ to SQL语句(2)之Select/Distinct

Select/Distinct操作包括9种形式,分别为简单用 法.匿名类型形式.条件形式.指定类型形式.筛选形式.整形类型形式.嵌套 类型形式.本地方法调用形式.Distinct形式. 1.简单用法: 这个示 例返回仅含客户联系人姓名的序列. var q = from c in db.Customers select c.ContactName; 注意:这个语句 只是一个声明或者一个描述,并没有真正把数据取出来,只有当你需要该数据的 时候,它才会执行这个语句,这就是延迟加载(deferred l

【查询优化】怎样用SQL语句查看查询的性能指标

一.SET STATISTICS IO  (有关TSQL语句查询所产生的磁盘活动量) --显示有关由Transact-SQL 语句生成的磁盘活动量的信息 SET STATISTICS IO ON --关闭有关由Transact-SQL 语句生成的磁盘活动量的信息 SET STATISTICS IO OFF 显示的信息如下: (SQL语句为:select * from note500) 其中: 扫描计数:在查询中涉及到的表被访问的次数: 逻辑读取:从数据缓冲中读取的数据页数: 物理读取:从物理磁盘

sql语句联合查询详解

sql语句联合查询详解 2011-03-01 18:58:22|  分类: mysql|举报|字号 订阅 例子: person表和user表没有约束person表: user表: 有以下几种关联 1.UNION 格式:查询语句 UNION [ALL] 查询语句 [UNION [ALL] 查询语句][…n] 说明:ALL选项表示将所有行合并到结果集合中.不指定该项时,被联合查询结果集合中的重复行将只保留一行. 在包括多个查询的UNION语句中,其执行顺序是自左至右,使用括号可以改变这一执行顺序.例

如何在 Linux 上用 SQL 语句来查询 Apache 日志

Linux 有一个显著的特点,在正常情况下,你可以通过日志分析系统日志来了解你的系统中发生了什么,或正在发生什么.的确,系统日志是系统管理员在解决系统和应用问题时最需要的第一手资源.我们将在这篇文章中着重讲解 Apache HTTP web server 生成的 Apache access 日志. 这次,我们会通过另类的途径来分析 Apache access 日志,我们使用的工具是 asql.asql 是一个开源的工具,它能够允许使用者使用 SQL 语句来查询日志,从而通过更加友好的格式展现相同

sql server 性能调优之 SQL语句阻塞查询

原文:sql server 性能调优之 SQL语句阻塞查询 在生产环境下,有时公司客服反映网页半天打不到,除了在浏览器按F12的Network响应来排查,确定web服务器无故障后.就需要检查数据库是否有出现阻塞 当时数据库的生产环境中主表数据量超过2000w,子表数据量超过1亿,且更新和新增频繁.再加上做了同步镜像,很消耗资源. 这时就要新建一个会话,大概需要了解以下几点: 1.当前活动会话量有多少? 2.会话运行时间? 3.会话之间有没有阻塞? 4.阻塞时间 ? 查询阻塞的方法有很多.有sql

在Hibernate中使用HibernateTemplate来进行包含sql语句的查询

/**     * 使用sql语句进行查询操作     * @param sql     * @return     */    public List queryWithSql(final String sql){        List list = hibernateTemplate.executeFind(new HibernateCallback() {            public Object doInHibernate(Session session) throws Hib

MySQL数据库优化技术之SQL语句慢查询定位

通过show status命令了解各种SQL的执行频率 MySQL客户端连接成功后,通过使用show [session|global] status 命令可以提供服务器状态信息: 其中的session来表示当前的连接的统计结果,global来表示自数据库启动至今的统计结果,默认是session级别的. show status 常用命令: show status like 'com_%'; 其中com_xxx表示xxx语句所执行的次数: 重点注意com_select, com_insert, co

SQL语句 - 嵌套查询

嵌套查询的意思是,一个查询语句(select-from-where)查询语句块可以嵌套在另外一个查询块的where子句中,称为嵌套查询.其中外层查询也称为父查询,主查询.内层查询也称子查询,从查询. 嵌套查询的工作方式是:先处理内查询,由内向外处理,外层查询利用内层查询的结果嵌套查询不仅仅可以用于父查询select语句使用.还可以用于insert.update.delete语句或其他子查询中. 一.子查询的组成 1.包含标准选择列表组件的标准select查询. 2.包含一个或多个表或者视图名称的