MySQL入门很简单: 8查询数据
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查询数据的更多相关文章
- 《Mysql 入门很简单》(读后感①)
下载完整版<Mysql 入门很简单>,点击这里~: http://files.cnblogs.com/files/zhengyeye/MySQL%E5%85%A5%E9%97%A8%E5% ...
- MySQL 入门(九)—— 查询数据
查询数据就是从数据库中获取所须要的数据. 1.基本查询语句 即Select语句 当中.属性列表表示要查询的字段名.表名和视图列表表示从此处指定的表或者视图中查询数据.能够有多个:条件表达式1制定了查询 ...
- MySQL入门很简单: 15 java访问MySQL数据库
1. 连接数据库 1.1 下载安装驱动 java通过JDBC(Java Database Connectivity,Java数据库连接)来访问MySQL数据库.JDBC的编程接口提供的接口和类与MyS ...
- MySQL入门很简单: 1 数据库概述
1. 数据库概述 1.1 数据存储方式: 1)人工管理阶段 2)文件系统阶段: 文件系统通过文件的存储路径和文件名称访问文件中的数据 3)数据库系统阶段:Oracle, SQL Server, MyS ...
- MySQL入门很简单: 13 数据备份和还原
1. 数据备份 1)使用mysqldump命令备份 第一种:备份一个数据库 mysqldump -u username -p dbname table1 table2 ... > BackupN ...
- MySQL入门很简单: 9 插入 更新与删除数据
1. 插入数据:INSERT 1)为表的所有字段插入数据 第一种: 不指定具体的字段名 INSERT INTO 表名 VALUES(值1,值2,...,值n): 第二种:INSERT语句中列出所有字段 ...
- MySQL入门很简单-触发器
1.触发器是由事件来触发某个操作,这些事件包括insert语句.update语句和delete语句.当数据库系统执行这些事件时,会激活触发器执行相应操作.MySQL从5.0.2开始支持触发器.使用触发 ...
- MySQL入门很简单: 14MySQL日志
二进制日志: 以二进制文件的形式记录了数据库中的操作,但不记录查询语句 错误日志: 记录MySQL服务器的启动,关闭和运行错误等信息 通用查询日志: 记录用户登录和记录查询的信息 慢查询日志: 记录执 ...
- 《Mysql 入门很简单》(读后感②)
接上篇~ 1.UNIX时间戳函数: UNIX_TIMESTAMP()函数以UNIX时间戳的形式返回当前时间: UNIX_TIMESTAMP(d)函数将时间d以UNIX时间戳的形式返回: FROM_UN ...
随机推荐
- POJ 2299 Ultra-QuickSort (树状数组 && 离散化&&逆序)
题意 : 给出一个数n(n<500,000), 再给出n个数的序列 a1.a2.....an每一个ai的范围是 0~999,999,999 要求出当通过相邻两项交换的方法进行升序排序时需要交换 ...
- Hash Join是Oracle CBO时代经常出现的一种连接方式
Hash Join是Oracle CBO时代经常出现的一种连接方式,对海量数据处理时经常出现在执行计划里.本篇的上篇(http://space.itpub.net/17203031/viewspace ...
- php5 编译安装
#!/bin/bash######################################## File Name: php.sh# Version: V1.0# Author: sun yu ...
- 实时同步sersync
1.1 sersync+rsync实现实时同步过程 第一个历程:安装sersync软件 将软件进行下载,上传到系统/server/tools目录中 下载软件地址:https://github.com/ ...
- UDP通讯模型简单示例
1. UDP通讯模型 2. 服务器端 ① 创建一个socket,用函数socket() ② 绑定IP地址.端口等信息到socket上,用函数bind() ③ 循环接收数据,用函数recvfrom() ...
- tomcat的安装部署
第一步: 先把压缩包拖到知道的目录,解压 tar xf apache-tomcat-8.0.27.tar.gz -C /usr/local/ ln -s /usr/local/apache-tomca ...
- my.宝石 --- --- ZC 收集
1. DT PT 头盔 太阳石 物理伤害+8 √ 月亮石 物理防御+12 √ 武器 太阳石 物理伤害+8 √ 舍利子 法术伤害+6 ...
- $.extend({},defaults, options)
1.$.extend({},defaults, options) 这样做的目的是为了保护包默认参数.也就是defaults里面的参数. 做法是将一个新的空对象({})做为$.extend的第一个参数, ...
- js学习笔记 -- 随记
js不区分整数和浮点数,统一用Number表示, js'=='比较会自动转换类型,会产生奇怪结果,'==='不会转换比较类型,如果不一致返回false,因此js判断始终用'===' `` 保留换行,也 ...
- netbeans 窗体字体大小设置
当计算机分辨率变大的时候,打开netbeans的时候,字体就会变得越来越小 看起来很不爽,所要就要改变一下,窗体字体大小. 在网上找到了一段修改netbeans窗体字体大小的配置信息,现标记起来,以便 ...