1. 查询语句语法

SELECT 属性列表
FROM 表名和视图列表
[WHERE 条件表达式1]
[GROUP BY 属性名1 [HAVING t条件表达式2]]
[ORDER BY 属性名2 [ASC| DESC] ]

2. 在单表上查询数据

1)查询所有字段

第一种方法:列出表的所有字段

SELECT num, name, age, sex FROM employee;

第二种方法:使用*查询所有字段

SELECT * FROM 表名

2)查询指定字段

//结果字段与SELECT语句中字段顺序一致
SELECT num, name, age FROM employee;

3)查询指定记录: 使用WHERE 条件表达式

SELECT * FROM employee WHERE d_id=100;

4)带IN关键字的查询

[NOT] IN (元素1,元素2,... ,元素n)

例子:

SELECT * FROM employee WHERE name NOT IN ("张三", "李四");

5) BETWEEN AND 的范围查询

[NOT] BETWEEN 取值1 AND 取值2

例子:

SELECT * FROM employee WHERE age BETWEEN 15 and 25;

6)带LIKE的字符匹配查询

[NOT] LIKE ‘字符串’

例子:

SELECCT * FROM employee WHERE  homeaddr LIKE ‘北京%’;

7)查询空值

IS [NOT] NULL

8)带AND的多条件查询

条件表达式1  AND  条件表达式2  [ ... AND 条件表达式n ]

例子:

SELECT * FROM employee WHERE
d_id<1004 AND age<26 AND sex='男';

9)带OR的多条件查询

条件表达式1 OR  条件表达式2  [... OR 条件表达式n]

10)查询结果不重复

SELECT DISTINCT 属性名     //属性名表示要消除重复记录的字段的名词

11)对查询结果排序

ORDER BY 属性名 [ASC|DESC]

12)分组查询

GROUP BY 可以将查询结果按某个字段或多个字段进行分组,字段中值相等的为一组

GROUP BY 属性名 [HAVING 条件表达式] [WITH ROLLUP]

13)用LIMIT限制查询结果的数量

LIMIT可以指定查询结果从哪条记录开始显示,还可以指定一共显示多少条记录;有两种使用方法

第一种:不确定初始位置(记录从第一条开始显示)

LIMIT 记录数

第二种:指定初始位置

LIMIT 初始位置, 记录数

3. 使用聚合函数查询数据

COUNT():    统计记录的条数
SUM(): 计算字段的值的总和
AVG(): 计算字段的值的平均值
MAX(): 查询字段的最大值
MIN(): 查询字段的最小值

1)COUNT函数

统计employee表的记录数:

SELECT COUNT(*) FROM employee;

统计employee表中不同d_id值的记录数

SELECT d_id, COUNT(*) FROM employee GROUP BY d_id;

2)SUM函数

使用SUM函数统计grade表中学号为1001的同学的总成绩:

将grade表按照num字段进行分组,然后使用SUM函数统计各分组的总成绩:

3)AVG函数

使用AVG函数计算grade表中不同科目的平均成绩

4)MAX函数

查询employee表中的最大年龄:

查询grade表中不同科目的最高成绩:

5)MIN函数

查询grade表中不同科目的最低成绩:

4. 多表上联合查询

1)内连接查询:当两个表中存在表示相同意义的字段时,可以通过该字段来连接这两个表;当该字段的值相等时,就查询出该记录。

2)外连接查询:也需要通过指定字段来连接,当该字段取值相等时,可以查询出该记录; 字段取值不相等的记录,也可以被查询出来。

左连接查询:可以查询到表名1所指的表中的所有记录,而表名2所指的表中,只能查询出匹配的记录

右连接查询:可以查询出表名2所指的表中的所有记录,而表名1所指的表中,只能查询出匹配的记录

3)复合条件连接查询

5. 子查寻:将一个查询语句嵌套在另一个查询语句中

1)带IN关键字的子查询

2)带比较运算符的子查询

3)EXISTS关键字的子查询

使用EXISTS时,内层查询语句不返回查询的记录,而是返回一个真假值

4)带ANY关键字的子查询

只要满足内层查询语句返回的结果中的任何一个,就可以通过该条件来执行外层查询语句

5)带ALL关键字的子查询

只有满足内层查询语句返回的所有结果,才可以执行外层查询语句

6. 合并查询结果

UNION:将所有查询结果合并一起,再去掉相同记录;

UNION ALL:简单的合并到一起

SELECT 语句1
UNION | UNION ALL
SELECT 语句2
UNION | UNION ALL ...
SELECT 语句n;

7.为表和字段取别名

1)为表取别名

为department表取别名d,然后查询表中d_id字段取值为1001的记录

2)为字段取别名

属性名 [AS] 别名

8.使用正则表达式查询

属性名  REGEXP  '匹配方式'

SELECT * FROM info WHERE name REGEXP '^L';
SELECT * FROM info WHERE name REGEXP 'c$';

MySQL入门很简单: 8查询数据的更多相关文章

  1. 《Mysql 入门很简单》(读后感①)

    下载完整版<Mysql 入门很简单>,点击这里~: http://files.cnblogs.com/files/zhengyeye/MySQL%E5%85%A5%E9%97%A8%E5% ...

  2. MySQL 入门(九)—— 查询数据

    查询数据就是从数据库中获取所须要的数据. 1.基本查询语句 即Select语句 当中.属性列表表示要查询的字段名.表名和视图列表表示从此处指定的表或者视图中查询数据.能够有多个:条件表达式1制定了查询 ...

  3. MySQL入门很简单: 15 java访问MySQL数据库

    1. 连接数据库 1.1 下载安装驱动 java通过JDBC(Java Database Connectivity,Java数据库连接)来访问MySQL数据库.JDBC的编程接口提供的接口和类与MyS ...

  4. MySQL入门很简单: 1 数据库概述

    1. 数据库概述 1.1 数据存储方式: 1)人工管理阶段 2)文件系统阶段: 文件系统通过文件的存储路径和文件名称访问文件中的数据 3)数据库系统阶段:Oracle, SQL Server, MyS ...

  5. MySQL入门很简单: 13 数据备份和还原

    1. 数据备份 1)使用mysqldump命令备份 第一种:备份一个数据库 mysqldump -u username -p dbname table1 table2 ... > BackupN ...

  6. MySQL入门很简单: 9 插入 更新与删除数据

    1. 插入数据:INSERT 1)为表的所有字段插入数据 第一种: 不指定具体的字段名 INSERT INTO 表名 VALUES(值1,值2,...,值n): 第二种:INSERT语句中列出所有字段 ...

  7. MySQL入门很简单-触发器

    1.触发器是由事件来触发某个操作,这些事件包括insert语句.update语句和delete语句.当数据库系统执行这些事件时,会激活触发器执行相应操作.MySQL从5.0.2开始支持触发器.使用触发 ...

  8. MySQL入门很简单: 14MySQL日志

    二进制日志: 以二进制文件的形式记录了数据库中的操作,但不记录查询语句 错误日志: 记录MySQL服务器的启动,关闭和运行错误等信息 通用查询日志: 记录用户登录和记录查询的信息 慢查询日志: 记录执 ...

  9. 《Mysql 入门很简单》(读后感②)

    接上篇~ 1.UNIX时间戳函数: UNIX_TIMESTAMP()函数以UNIX时间戳的形式返回当前时间: UNIX_TIMESTAMP(d)函数将时间d以UNIX时间戳的形式返回: FROM_UN ...

随机推荐

  1. python--selectors模块

    它的功能与linux的epoll,还是select模块,poll等类似:实现高效的I/O multiplexing,  常用于非阻塞的socket的编程中: 简单介绍一下这个模块,更多内容查看 pyt ...

  2. day26 网络通讯的整个流程

    一.网络通信原理 1.  互联网的本质就是一系列的网络协议 2.  互联网协议按照功能不同分为osi七层或tcp/ip五层或tcp/ip四层 各层的功能简述: [1]物理层:主要定义物理设备标准,如网 ...

  3. 利用Content-disposition实现无刷新下载图片文件

    今天在使用 tinypng.com 这个在线压缩图片的网站时,对其处理完图片后,可以无刷新下载图片感到好奇,于是了解了一下相关实现.无刷新下载可以利用MIME type或者设置Content-disp ...

  4. Java对象排序两种方法

    转载:https://blog.csdn.net/wangtaocsdn/article/details/71500500 有时候需要对对象列表或数组进行排序,下面提供两种简单方式: 方法一:将要排序 ...

  5. 2 Sum

    Problem Given an array of integers, find two numbers such that they add up to aspecific target numbe ...

  6. 01 性能优化基础怀实践 之 ASH分析

    1.模拟一个会话阻塞的场景.    通过update 同一行数据达到模拟阻塞的效果 : SQL> create table t1 (id number ,name varchar2(20)) ; ...

  7. [PHP]Mysql的运用

    1.创建数据库和表,代码如下: //创建数据库函数 function createDB($DBname){ $query="CREATE DATABASE $DBname"; re ...

  8. HDU 2389 ——Rain on your Parade——————【Hopcroft-Karp求最大匹配、sqrt(n)*e复杂度】

    Rain on your Parade Time Limit:3000MS     Memory Limit:165535KB     64bit IO Format:%I64d & %I64 ...

  9. HDU 5407——CRB and Candies——————【逆元+是素数次方的数+公式】

    CRB and Candies Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)T ...

  10. C#用委托实现异步,异步与多线程的异同

    异步与多线程的区别(转) 一.异步和多线程有什么区别?其实,异步是目的,而多线程是实现这个目的的方法.异步是说,A发起一个操作后(一般都是比较耗时的操作,如果不耗时的操作就没有必要异步了),可以继续自 ...