数据库(五)单表、多表、连接查询

一、单表查询

  1. 查询特定字段
    语法:
    select <字段1,字段2,…> from <表名>;
    示例:查询会员表里所有用户的手机号码和用户类型
select phone, type from t_user;
  1. 查询所有字段
    语法:
    select * from <表名>;
    示例:查询会员表的所有用户信息
select * from t_user;
  1. 按条件查询,多个条件需要同时成立
    语法:
    select … from <表名> where 表达式A and 表达式B and … and 表达式N;
    示例:查询会员表中类型为物业、且注册时间大于2021年4月21日
select * from t_user where type=3 and reg_time > '2021-04-21';
  1. 按条件查询,多个条件不需要同时成立,只需满足其中一个或多个
    语法:
    select … from 表名 where 字段a = 值a or 字段b=值b or 字段c=值c;
    示例:查询会员表里用户id为1或者2或用户名为Nick 的用户信息
select * from t_user where id=1 or id=2 or user_name='nick ';

二、多表查询

语法:
select 要查询的字段 from 表1,表2 … where 关联条件和过滤条件
示例:查询id为12的用户的用户名、手机号码、创建时间以及该用户的商户编号、商户名称、成立日期
分析:
审题查询字段/筛选字段来自几张表:用户名、手机号码、创建时间(t_user) ,商户编号、商户名称、成立日期(t_merchant)
关联关系:t_user.id = t_merchant.user_id
过滤条件:t_user.id = 12

select t_user.user_name,t_user.phone,t_user.reg_time,t_merchant.merchant_id,t_merchant.merchant_name,t_merchant.establish_date from t_user,t_merchant where t_user.id = t_merchant.user_id and t_user.id =12;

使用别名,别名用 as 或者 空格 表示

select u.user_name,u.phone,u.reg_time,m.merchant_id,m.merchant_name,m.establish_date from t_user as u ,t_merchant as m where u.id = m.user_id and u.id =12;

select u.user_name,u.phone,u.reg_time,m.merchant_id,m.merchant_name,m.establish_date from t_user u ,t_merchant m where u.id = m.user_id and u.id =12;

select u.user_name,u.phone,u.reg_time,m.merchant_id,m.merchant_name,m.establish_date '成立日期' from t_user u ,t_merchant m where u.id = m.user_id and u.id =12;

三、连接查询

语法
INNER JOIN内连接又称为等值连接,获取两个表中字段匹配关系的记录
LEFT JOIN左连接读取左表全部数据,即使右表没有关联数据,左连接会从左表产生一套完整的记录,和右表匹配的记录。如果右边没有匹配记录,则右侧结果集字段为null
RIGHT JOIN右连接以右表为基础,与LEFT JOIN 相反

在这里插入图片描述
案例:
用户信息表user
在这里插入图片描述
用户对象信息表user_lover
在这里插入图片描述

1.内连接:inner join … on

select * from user inner join user_lover on user.id = user_lover.u_id;

在这里插入图片描述

2.左连接: left join … on

select * from user left join user_lover on user.id = user_lover.u_id;

在这里插入图片描述

  1. 右连接:right join … on
select * from user left join user_lover on user.id = user_lover.u_id;

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值