mysql基础-数据库多表查询-记录(六)

0x01

MySQL多表查询和子查询

联结查询:事先将两张或者多张表join,根据join的结果进行查询

cross join:交叉联结  用的少, 相当于 (a+b)*(c+d+e) 所得结果的形式   用的少

自然联结  --- 只能在两者相等的情况下才能建立连接
  等值联结:把相同的字段进行等值连接

外联结:
  左外联接:只保留出现在左外连接元算之前(左边)的关系中的元组(以左表为准,)
    left_tb LEFT JOIN right_tb ON 条件
  右外联接:只保留出现在右外连接元算之后(右边)的关系中的元组(以右表为准)
    left_tb RIGHT JOIN right_tb ON 条件
全外联接:  --- 用的少

自联结:

别名:AS
表别名:
字段别名

子查询:在查询中嵌套的查询       ------   用于WHERE中的子查询
1.用于比较表达式中的子查询
  子查询的返回值只能有一个
2.用于EXISTS中的子查询
  判断存在与否
3.用于IN中的子查询
  判断存在于指定列表中
  用于FROM中子查询
select alias.col,....FROM(SELECT CLUSE) alias WHERE condition

  MYSQL不擅长于子查询,应该避免使用子查询

总结:mysql的连接查询与子查询
联结:
交叉联结:
内联结:
外联结:
左外
右外
自联结
子查询:
用于where中的子查询
用于条件比较:
用于exists
用于IN中
用于FROM

MYSQL的联合查询:
把两个或多个查询语句的结果合并成一个结果进行输出
select clauase union select clause union.....
索引
show indexs from tb_name 查看索引

show indexes from students\G;

alter table tb_name add index(字段)  --- 更改为索引
创建索引

explain 解释命令,查看命令的执行过程

MYSQL视图(虚表)
存储下来的select语句
创建:
create view 视图名 as select语句

create view stud as select name,age,gender from students;
删除:
drop view 视图名

时间: 2024-12-24 06:02:02

mysql基础-数据库多表查询-记录(六)的相关文章

MySQL基础/数据库和表的设计

MySQL基础 一:安装MySQL(按步骤操作,如果下载后使用不了,试着用360安全卫士卸载MySQL,清除残留的,方便在下载造成不必要的麻烦:如果这样也不行,那就需要重做系统在进行下载) 二:创建数据库/表 黑窗口:1:输入密码 2:show databases:查看数据库 3:create database 库名:创建库 4:use 库名:使用库 5:create table 表名:创建表( 列名数据类型(约束条件),    //用逗号隔开 ): 6:show tables:查看库里有哪些表

【MySQL】2、MySQL 创建数据库和表

2.MySQL 创建数据库和表 2.1.创建数据库 CREATE DATABASE 语句用于在 MySQL 中创建数据库. CREATE DATABASE database_name 为了让 PHP 执行上面的语句,我们必须使用 mysql_query() 函数(用于向 MySQL 连接发送查询或命令). 2.2.创建表 CREATE TABLE 用于在 MySQL 中创建数据库表. CREATE TABLE table_name ( column_name1 data_type, column

MySQL基础学习之数据查询

一般查询 SELECT * FROM 表名 SELECT 属性名  FROM  表名 条件查询 SELECT 属性名 FROM 表名  WHERE 条件表达式 查询数据值1,数据值2的表单 SELECT *  FROM  表名  WHERE  属性名 [NOT] IN(数据值1,数据值2....) 查询数值1,数据2的表单 SELECT *  FROM  表名  WHERE  属性=值  AND 属性1=值1 查询数值1到数值2之间的表单 SELECT *  FROM  表名  WHERE  属

mysql简单的单表查询详解

mysql简单的单表查询详解 MySQL的查询操作: 单表查询:简单查询 多表查询:连续查询 联合查询: 选择和投影: 投影:挑选要显示的字段 选择:挑选符合条件的行 投影:SELECT 字段1, 字段2, ... FROM tb_name;  SELECT * FROM tb_name; 选择:SELECT 字段1, ... FROM tb_name WHERE 子句; 布尔条件表达式 mysql> CREATE TABLE students (SID INT UNSIGNED AUTO_IN

mysql 数据操作 多表查询 目录

mysql 数据操作 多表查询 准备 mysql 数据操作 多表查询 多表连接查询 笛卡尔积 mysql 数据操作 多表查询 多表连接查询 内连接 mysql 数据操作 多表查询 多表连接查询 外链接之左连接 右连接 mysql 数据操作 多表查询 多表连接查询 全外连接 原文地址:https://www.cnblogs.com/mingerlcm/p/10523097.html

MySQL分组与连表查询

MySQL分组与连表查询 2019-08-23 1.MySQL分组 按照某一个属性降数据进行分组,通过关键字:group by:通常分组会与聚合函数联合使用. 聚合函数常用的有:min,max,sum,avg,count. 比如统计男女生人数 --性别表 create table gendertable( id int auto_increment primary key, gender char(10) )engine=innodb default charset=utf8; insert i

mysql基础 FIND_IN_SET 代替 or 查询 ,where 条件查询 代替 or

select * from table sin where FIND_IN_SET('FAL5',CONCAT_WS(',', sin.DISPLAY_NAME,sin.ROUTE_CODE)) -- 查  DISPLAY_NAME 有FAL5  或者 ROUTE_CODE 有 FAL5 mysql基础 FIND_IN_SET 代替 or 查询 ,where 条件查询 代替 or 原文地址:https://www.cnblogs.com/angdh/p/11822969.html

Mysql数据库多表查询

一.介绍 首先说一下,我们写项目一般都会建一个数据库,那数据库里面是不是存了好多张表啊,不可能把所有的数据都放到一张表里面,肯定要分表来存数据,这样节省空间,数据的组织结构更清晰,解耦和程度更高,但是这些表本质上是不是还是一个整体啊,是一个项目所有的数据,那既然分表存了,就要涉及到多个表连接查询了,比如说员工信息一张表,部门信息一张表,那如果我想让你帮我查一下技术部门有哪些员工的姓名,你怎么办,单独找员工表能实现吗,不能,单独找部门表也无法实现,因为部门表里面没有员工的信息,对不对,所以就涉及到

19 MySQL概念 数据库 数据表 数据类型 增加删除修改查询 WHERE Order By Limit

数据库管理系统DBMS 数据库中相关概念 数据库 数据表 记录 字段 数据 登录和退出MySQL客户端 查询自己的MySQL服务器有几个数据库 二.退出MySQL客户端的命令 修改root用户的密码 在MySQL客户端来修改密码(当前账号的密码) 数据库操作 创建数据库 显示所有数据库 删除数据库 选择数据库 更改数据库默认字符集 数据表操作 显示当前数据库中的所有表 创建数据表 显示表的创建 列的常用属性 修改数据表 删除数据表 显示表结构 MySQL数据类型 整型 浮点型 字符型 文本型 日