SQL 中最常用的 SELECT 语句,用来在表中选取数据。

要记得的知识点如下:

  • SELECT 语句格式:

    •   SELECT 要查询的列名 FROM 表名字 WHERE 限制条件;
  • WHERE语句后:

    •   数学符号条件:=       >       <       >=        <=         between and
    •   逻辑符:AND  /  OR  /  IN  /  NOT IN
    •   通配符:LIKE  +  _  、%
    •   排序:ORDER BY + ASC、DPSC
    •   SQL 内置函数和计算
  • 子查询与连接查询

SELECT 语句的基本格式

SELECT 要查询的列名 FROM 表名字 WHERE 限制条件;

--查询某个表所有内容(如employee表)
select * from employee; --查寻表中name、age的信息
select name,age from employee;

WHERE后的东西(限制条件、逻辑符、通配符、排序)

数学符号条件

=、>、<、>=、<=、between

逻辑符

AND、OR、 IN、NOT IN

--筛选年龄大于25的人的名字和年龄
SELECT name,age FROM employee WHERE age>25; --查找一个名字为 Mary 的员工的 name,age 和 phone
SELECT name,age,phone FROM employee WHERE name='Mary'; --筛选出 age 小于 25,或 age 大于 30
SELECT name,age FROM employee WHERE age<25 OR age>30; --筛选出 age 大于 25,且 age 小于 30
SELECT name,age FROM employee WHERE age>25 and age<30; --这种情况可以加between结合and
--筛选出 age 小于 25,或 age 大于 30
SELECT name,age FROM employee WHERE age between 25 and 30; --查询在dpt3或dpt4的人
SELECT name,age,phone,in_dpt FROM employee WHERE in_dpt IN ('dpt3','dpt4'); --查询不在dpt1和dpt3的人
SELECT name,age,phone,in_dpt FROM employee WHERE in_dpt NOT IN ('dpt1','dpt3');

通配符

关键字 LIKE 在SQL语句中和通配符一起使用,通配符代表未知字符。SQL中的通配符是 _ 和 % 。

其中 _ 代表一个未指定字符,% 代表不定个未指定字符

--电话号码前四位数为1101,而后两位忘记了,则可以用两个 _ 通配符代替:
SELECT name,age,phone FROM employee WHERE phone LIKE '1101__'; --另一种情况,比如只记名字的首字母,又不知道名字长度,则用 % 通配符代替不定个字符
SELECT name,age,phone FROM employee WHERE name LIKE 'J%';

对结果排序

默认情况下,ORDER BY的结果是升序排列,而使用关键词ASC和DESC可指定升序或降序排序。

--我们按salary降序排列,SQL语句为:
SELECT name,age,salary,phone FROM employee ORDER BY salary DESC;

SQL内置函数与计算

--取最大值
SELECT MAX(salary) FROM employee; --取最小值并使用as给关键字重命名
SELECT MIN(salary) as minminmin_salary FROM employee; --计数:有多少个人的工资
SELECT COUNT(salary) FROM employee; --求和
SELECT SUM(salary) FROM employee; --求平均值
SELECT AVG(salary) FROM employee;

子查询

上面讨论的 SELECT 语句都仅涉及一个表中的数据,然而有时必须处理多个表才能获得所需的信息。例如:想要知道名为 "Tom" 的员工所在部门做了几个工程。员工信息储存在 employee 表中,但工程信息储存在project 表中。

SELECT of_dpt,COUNT(proj_name) AS count_project FROM project GROUP BY of_dpt
HAVING of_dpt IN
(SELECT in_dpt FROM employee WHERE name='Tom');

连接查询

在处理多个表时,子查询只有在结果来自一个表时才有用。但如果需要显示两个表或多个表中的数据,这时就必须使用连接 (join) 操作。 连接的基本思想是把两个或多个表当作一个新的表来操作,如下:

SELECT id,name,people_num
FROM employee,department
WHERE employee.in_dpt = department.dpt_name
ORDER BY id;

学习资源来源:实验楼

MySQL命令:select查询语句的更多相关文章

  1. 转载《mysql 一》:mysql的select查询语句内在逻辑执行顺序

    原文:http://www.jellythink.com/archives/924 我的抱怨 我一个搞应用开发的,非要会数据库,这不是专门的数据库开发人员干的事么?话说,小公司也没有数 据库开发人员这 ...

  2. mysql的select查询语句

    1.简单查询 mysql> select * from students; +------------+----------+------+------+ | id | sname | sex ...

  3. {MySQL的逻辑查询语句的执行顺序}一 SELECT语句关键字的定义顺序 二 SELECT语句关键字的执行顺序 三 准备表和数据 四 准备SQL逻辑查询测试语句 五 执行顺序分析

    MySQL的逻辑查询语句的执行顺序 阅读目录 一 SELECT语句关键字的定义顺序 二 SELECT语句关键字的执行顺序 三 准备表和数据 四 准备SQL逻辑查询测试语句 五 执行顺序分析 一 SEL ...

  4. Mysql常用sql语句(3)- select 查询语句基础使用

    测试必备的Mysql常用sql语句系列 https://www.cnblogs.com/poloyy/category/1683347.html 前言 针对数据表里面的每条记录,select查询语句叫 ...

  5. create table 使用select查询语句创建表的方法分享

    转自:http://www.maomao365.com/?p=6642 摘要:下文讲述使用select查询语句建立新的数据表的方法分享 ---1 mysql create table `新数据表名` ...

  6. python 3 mysql sql逻辑查询语句执行顺序

    python 3 mysql sql逻辑查询语句执行顺序 一 .SELECT语句关键字的定义顺序 SELECT DISTINCT <select_list> FROM <left_t ...

  7. mysql DML select查询

    windows上的操作 1.从官网下载mysql 下载navicat,用来连接mysql的 2.打开运行启动mysql 3.在navicat上的连接打开新建连接 然后输入链接名,连接名就是用户名,自己 ...

  8. 深入MySQL(四):MySQL的SQL查询语句性能优化概述

    关于SQL查询语句的优化,有一些一般的优化步骤,本节就介绍一下通用的优化步骤. 一条查询语句是如何执行的 首先,我们如果要明白一条查询语句所运行的过程,这样我们才能针对过程去进行优化. 参考我之前画的 ...

  9. MySQL知识树-查询语句

    在日常的web应用开发过程中,一般会涉及到数据库方面的操作,其中查询又是占绝大部分的.我们不仅要会写查询,最好能系统的学习下与查询相关的知识点,这篇随笔我们就来一起看看MySQL查询知识相关的树是什么 ...

  10. PHP中对mysql预编译查询语句的一个封装

    原文地址:http://chen-shan.net/?p=474 为了防止sql注入,我们都使用过mysqli这个类,但是每次都需要绑定参数,绑定结果等,比较麻烦,所以可以把这些重复的语句封装成一个函 ...

随机推荐

  1. intellij idea 显示打开文件路径按钮

  2. Java知多少(89)列表和组合框

    有两种类型的菜单:下拉式菜单和弹出式菜单.本章只讨论下拉式菜单编程方法.菜单与JComboBox和JCheckBox不同,它们在界面中是一直可见的.菜单与JComboBox的相同之处是每次只可选择一个 ...

  3. 解决Android8.0之后开启service时报错IllegalStateException: Not allowed to start service Intent ...

    项目测试时发现的,在双击返回键关闭应用后(并未杀死后台)重新打开APP,其他手机都OK,但是8.0的手机会出现较频繁的crash.检查代码,问题锁定在重新开启应用时的startService()上. ...

  4. mininet下建立拓扑时关于远程控制器的一个小问题

    最近重装了系统和mininet后,使用mininet时遇到了一点小问题,一开始忽视了细节,使得自己被这个问题困扰了好一会儿,好在后来还是发现了问题所在,故记录下来. $ sudo mn --topo ...

  5. WebRTC 配置环境

    复制文件到指定文件路径 cp -rf /home/leehongee/LeeHonGee/jdk1.7.0_45 /usr/lib/jvm 创建文件夹   mkdir jvm 修改环境变量 sudo ...

  6. oracle 11g 使用物化视图远程增量刷新数据

    ① 源数据库建立物化视图日志 drop MATERIALIZED VIEW LOG ON ORG_BASEINFO/ CREATE MATERIALIZED VIEW LOG ON ORG_BASEI ...

  7. nginx-启动gzip、虚拟主机、请求转发、负载均衡

    一.启用gzip 1     gzip  on; 2     gzip_min_length 1k; 3     gzip_buffers 4 16k; 4     gzip_http_version ...

  8. 【QT】QPixmap和QImage在QLabel显示一张图像

    #include <QPixmap> void Dialog::on_Button1_clicked() { QPixmap img; img.load("1.bmp" ...

  9. 网络编程 -- RPC实现原理 -- Netty -- 迭代版本V2 -- 对象传输

    网络编程 -- RPC实现原理 -- 目录 啦啦啦 V2——Netty -- 使用序列化和反序列化在网络上传输对象:需要实现 java.io.Serializable 接口 只能传输( ByteBuf ...

  10. INTERVAL

    select sysdate - interval '10' day as "10天前",       sysdate - interval '10' hour as " ...