mysql 高级查询

高级查询:
1.连接查询
select * from Info,Nation #这是两个表名,中间用逗号隔开
形成笛卡尔积
select * from Info,Nation where Info.nation=Nation.code

select Info.code,Info.name,Info.sex,Nation.name as ‘民族‘,Info.birthday from Info,Nation where Info.nation=Nation.code

select * from Info join Nation on Info.nation=Nation.code

2.联合查询
select code,name from Info
union                           #这是两个表的行联合
select code,name from Nation

3.子查询
子查询查询的结果作为父查询的条件

(1)无关子查询:子查询执行的时候和父查询没有关系
查民族为‘汉族‘的所有学生信息
select * from Info where nation=(select code from nation where name=‘汉族‘)

查询生产厂商为‘一汽大众‘的所有汽车信息
select * from car where brand=()
select brand_code from brand where prod_code=()
select prod_code from productor where prod_name=‘一汽大众‘

select * from car where brand in(select brand_code from brand where prod_code in(select prod_code from productor where prod_name=‘一汽大众‘))

in代表有多种可能,当不确定的时候用。

(2)相关子查询
子查询在执行的时候需要用到父查询的内容

查询汽车表中,汽车油耗小于该系列平均油耗的所有汽车信息

select * from car where oil<(该系列平均油耗)
select avg(oil) from car where brand =(该系列)

select * from car a where oil<(select avg(oil) from car b where b.brand =a.brand)

a 和b代表代号     a是外表的car,b是执行里面时候的car

稿源:七星互联Qixoo.com

时间: 2024-10-11 04:18:45

mysql 高级查询的相关文章

第三章 MySQL高级查询(一)

第三章 MySQL高级查询(一) 一.SQL语言的四个分类 1.       DML(Data Manipulation Language)(数据操作语言):用来插入,修改和删除表中的数据,如INSERT,UPDATE,DELECT. 2.       DDL(Data Definition Language)(数据定义语言):创建或删除数据库对象操作,有CREATE,DROP,ALTER三个语法组成. 3.       DQL (STructured Query Language)(数据查询语

第四章 MySQL高级查询(二)

第四章 MySQL高级查询(二) 一.EXISTS子查询 在执行create 或drop语句之前,可以使用exists语句判断该数据库对像是否存在,返回值是true或false.除此之外,exists也可以作为where语句的子查询,语法如下: SELECT --FROM 表名 WHERE  EXISTS(子查询): EXISTS关键字后面的参数是一个任意的子查询,如果该子查询没有返回行,则EXISTS子查询的结果为true,此时再执行外层查询语句.如果EXISTS子查询结果为false,此时外

MySql高级查询--连接查询

前言 我们使用SQL查询不能只使用很简单.最基础的SELECT语句查询.如果想从多个表查询比较复杂的信息,就会使用高级查询实现. 常见的高级查询包括多表连接查询.内连接查询.外连接查询与组合查询等,今天我们先来学习最常用.面试也很容易被问到的连接查询. 我们今天以一个简单的学生信息表(学生ID.学生姓名.学生性别)与一个学生成绩表(学生ID.学生成绩.成绩等级)作演示: student_info表: student_score表: 一.内连接(INNER JOIN) 1.等值连接 概述:指使用等

mysql高级查询

高级查询: 1.连接查询 select * from Info,Nation #得出的结果称为笛卡尔积select * from Info,Nation where Info.Nation = Nation.Code join on连接 select * from Info join Nation #join连接select * from Info join Nation on Info.Nation = Nation.Code 2.联合查询 select Code,Name from Info

MySQL学习之路(五)MySQL高级查询

MySQL统计函数 count():统计数量: max():统计最大值: min():统计最小值: avg():统计平均数: sum():统计和: Select count(*) from student; MySQL排序 group by: order by: 默认是升序排序: Select * from student group by sid asc;--升序排序 Select * from student group by sid DESC;--降序排序 Select * from st

MySQL高级查询和编程基础

第一章 数据库设计 一.数据需求分析: 数据需求分析是为后续概念设计和逻辑结构设计做准备. 结构:(1)对现实世界要处理的对象进行详细的调查. (2)收集基础数.据. (3)对所收集的数据进行处理. (4)确定新的功能. 二.概念结构设计: 主要的五项概念:实体.属性.域.码.实体间联系. 实体之间的联系:(1)1:1 在任意一方建立另外一方的外键. (2)1:m 在多的一方建立一的外键. (3)m:n 建立第三张表,双方的主键在第三张表中作为外键. 三.使用E-R模型进行概念结构设计: E-R

MySQL高级查询(一)

修改表 修改表名 语法: ALTER  TABLE<旧表名> RENAME  [TO] <新表名>; 添加字段 语法: ALTER  TABLE 表名 ADD 字段名 数据类型 [属性]; 修改字段 语法: ALTER  TABLE 表名 CHANGE 原字段名 新字段名 数据类型 [属性]; 删除字段 语法: ALTER TABLE 表名 DROP 字段名; 添加主外键 1.添加主键约束 语法: ALTER TABLE 表名 ADD CONSTRAINT 主键名 PRIMARY

05: MySQL高级查询

目录 1.1 GROUP BY分组使用 1.2 mysql中NOW(),CURDATE(),CURTIME()的使用 1.3 DATEDIFF() 函数 1.4 DATE_FORMAT() 以不同格式显示时间 1.5 MySQL 正则表达式 1.1 GROUP BY分组使用 GROUP BY介绍 1. GROUP BY 语句根据一个或多个列对结果集进行分组,在分组的列上我们可以使用 COUNT, SUM, AVG,等函数. 2. 涉及到的操作符:GROUP BY,HAVING,ORDER BY,

MySQL高级查询函数(单行函数)

函数的分类:1,单行函数:对每一条记录输入值进行计算,得到相应的计算结果,返回给用户,也就是说,每条记录作为一个输入参数,经过函数计算得到每条记录的计算结果.2,多行函数:对多条记录输入值进行计算,得到多条记录对应的单个结果. 单行函数: ①:字符串函数(用户处理单行的字符数据,比如大小写转换,字符串截取,拼装等) a.LOWER/UPPER(LOWER(str):返回字符串str变为小写字母的字符串.UPPER(str):返回字符串str变为大写字母的字符串) SELECT UPPER(nam