Mysql 基础 高级查询

在西面内容中    car  和  nation   都表示 表名

1.无论 高级查询还是简单查询   都用  select.. from..语句   from  后面 加表名  可以使一张表也可以是多张表   表和表之间用逗号隔开

2. 简单查询和高级查询 不是 独立的   高级查询里面 同样可以用到 简单查询  

3.简单查询与复杂查询的联系: 简单查询里面 后面的条件 未知时 需要用另一个 查询来代替  这样就变成了高级查询

4.链接查询  和  联合查询的区别:1. 链接查询 连接两张以上的表  输出时 显示在一张表里 ; 联合查询 以另一张表为条件  只输出 一张表的内容 

                                               联合查询时 注意 相关查询  : 子查询  和父查询 的关系  父查询  的条件 时子查询  子查询的条件同样引用子查询

                                                2.相同点 关联在一起时 表示必须建立外键关系;

一.链接查询

1.链接查询 对结果集列的扩展

select*from  表名

查询多张表 查询结果 在一张表中显示

select * from info,nation  #形成笛卡尔积   缺点  查询速度慢(产生大量冗余数据)

select * from 表1名, 表1名where 表1名.列名=表2名.列名

select * from info,nation where info.code=nation.code

select info.code, info. name, birthday  from info,nation where info.code=nation.code

因为 birthday 在两张表里  没有重复  所以可以直接写  (比如简单查询里面)

select * from info join nation on info.nation=nation.code

二.联合查询   union

select 列名列名 from 表1名

union

select 列名列名 from 表2名

三.  子查询(查询效率高 重要)

父查询 : 外层查询

子查询: 里层查询

子查询 查询出的结果作为父查询的条件

  1. 无关子查询

子查询和父查询没有关系  子查询可以单独执行

父查询:select *from info where nation=()

子查询: select code from nation where name=’汉族’

select *from info where nation=(select code from nation where name=’汉族’)

②.查询系列名为‘宝马5系’的所有汽车信息
select * from car where brand=(select brand_code from brand where brand_name=‘宝马5系‘)

  1. 相关子查询

子查询在执行的时候 和父查询有关系   子查询不能单独执行

1.查询汽车表中 油耗小于平均油耗的所有汽车信息

父查询: 汽车的信息: select * from car where oil<平均油耗

子查询: 平均油耗;  select avg(oil) from car where brand =该系列

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

时间: 2024-10-10 23:59:54

Mysql 基础 高级查询的相关文章

MySQL数据库 高级查询(二)

高级查询(二)  EXISTS 子查询 语法: SELECT ..... FROM  表名 WHERE EXISTS (子查询); EXISTS 关键字后面的参数是一个任意的子查询,如果该子查询有返回值,则EXISTS 子查询的结果为true,此时再执行外层查询语句.如果没有返回行,则EXISTS 子查询 的结果为false,此时外层语句不再执行查询.  NOT EXISTS 子查询 EXISTS 子查询和NOT EXISTS 子查询的结果只取决于是否有返回记录,不取决于这些记录的内容,所以EX

MYSQL基础02(查询)

查询是很大的一块,所以这里我只会写mysql的特点,就我目前使用的情况,MYSQL对标准SQL是比较支持,如果是新手的话,建议去w3school 学习标准SQL. 1.DUAL DUAL是一个虚拟表,即该表是不存在的,用于直接select 标量时,使语句看起来符合sql规范 -- MSSQL select 1,'A' -- Oracle中dual 不可缺少 select 1,'A' from DUAL -- mysql 以下2种格式都支持 select 1,'A'; select 1,'A' f

MySQL数据库 高级查询(一)

常用函数 常用聚合函数: AVG() 返回某字段的平均值 COUNT() 返回某字段的行数 MAX() 返回某字段的最大值 MIN( ) 返回某字段的最小值 SUM( ) 返回某字段的和 函数名 作用 常用的字符串函数 函数名 作用 举例 CONCAT(str1,str2,...,strn) 连接字符串str1,str2,...,strn为一个完整字符串 SELECT CONCAT('My','S','QL'); 返回:MySQL INSERT(str,pos,len,newstr) 将字符串s

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 Infounionselect Code,Na

mysql 基础 交集查询

原文地址:https://www.cnblogs.com/angdh/p/11538018.html

MySQL常见连接查询

在实际应用中,由于不同的业务需求,一般的select查询语句无法满足要求.所以就需要了解一些MySQL的高级查询方式 内连接 inner join 典型的连接查询,有相等(=)连接和不等(<>)连接.如:现在有产品表及供应商表 产品表: 供应商表: 如果现在有个需求:查询产品表中产品对应的供应商公司名称及地址.那么就可以根据产品表中的供应商ID进行连接查询 这样根据两个表中供应商ID相同的条件,就查询出想要的数据.注:连接查询默认为inner join,所以inner可省略不写 左连接 lef

MySql高级查询--连接查询

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

数据库——基础(数据库操作,表格操作)——增加高级查询

笔记 LAMP:Linx(操作系统) A(阿帕奇)——网页的应用程序 M(Mysql):体积小,应用简单 P(PHP) 第一步:搭建网页环境——A\M\P WAMP:用WAMP搭建环境 DW:更好的显示 数据库的基本操作: 数据库——表结构——字段(列) 每一行数据成为一条数据(记录) 特点:关系型数据库,有严格的规范 1.必须有主键:能够唯一标识一条数据的字段 2 T-SQL:通用的数据库操作语句 自增长列code(主键列) ;连接键表 最后一个字段不加 ,#注释 创建表:create tab

数据库基础学习4--表格的 增 删 改 查(简单查询与高级查询)

一.增 C:create 增加,创建,向数据库里面添加数据. insert into Fruit values('K009','苹果',3.0,'高青',90,'') insert into Fruit(Ids,Name,Price,Source,Numbers) values('K010','苹果',3.0,'高青',90) 二.改 U:update修改,从数据库表里面修改数据. update Fruit set Source='烟台' where Ids='K001' 三.删 D:delet