MySQL入门很简单: 8查询数据
2016-04-15 20:57
344 查看
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入门很简单: 7 触发器
- MySQL日期时间函数大全 转
- MySQL 基础 —— DDL(数据定义)、DCL(数据控制)
- MySQL 显示表字段及注释等信息语句
- MySQL多实例
- MySQL 5.5/5.6/5.7及以上版本安装包安装时如何选择安装路径
- grails3.1.5 com.mysql.jdbc.Driver
- Ubuntu下MySQL5.5 配置主从(Master Slave)同步
- mysql 数据类型
- mysql下的常用操作
- mysql 安装出现 Install/Remove of the Service Denied!错误
- mysql时间格式化
- MySql接口函数
- MySql常用的Sql语句
- 底层方法中mysqlhelper的使用
- mysql及hibernate数据查询遇见的几个问题
- c3p0操作MySQL数据库
- ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (
- MySQL中文全文检索demoSQL
- c#连接mysql的方法