SQL语言-DML和DQL

本文介绍了MySQL中的DQL数据查询语言,包括基本查询如选择所有或部分列,条件查询如WHERE、AND/OR、BETWEEN、ISNULL、LIKE等,以及排序、限制和多表查询,如内连接、外连接和子查询。这些内容涵盖了数据库操作的核心概念和常用方法。
摘要由CSDN通过智能技术生成

DQL数据查询语言 mysql字段只有当内容为null时才是空

简单查询

select * from 表名; 全部内容

select 列名,列名... from 表名;查部分列的内容

select 列名,列名+/-/*/%... from 表名;通过四则运算查询

条件查询

where单条件查询、and/or多条件查询、between and关键字,在什么之间、not between and 不在什么之间、in集合查询、关键字is null、关键字like模糊查询

select 列名 from 表名 where condition;

select 列名 from 表名 where condition and condition;

select 列名 from 表名 where 列名 between xxx and xxx

select 列名 from 表名 where 列名 in(xxx,xxx,xxx...);

select 列名 from 表名 where 列名 is null;

select 列名 from 表名 where 列名='';查询带空格的字段

select 列名 from 表名 where 列名 like 'x%';以x开头

select 列名 from 表名 where 列名 立刻 'x___';几个_代表几个字符,如abcd就是a___(三个_)

查询排序(默认是升序)limit限制,只看几行

select 列名 from 表名 order by 列名 asc limit x;升序前x行

select 列名 from 表名 order by 列名 desc;降序

多表查询

复合条件查询

根据查询结果查询

多表连接查询:交叉连接(生成笛卡尔积,它不使用任何匹配条件)、内连接(只连接匹配的行)、外连接(左连接,会显示左边表内所有的值,不论

交叉连接:touch {a..c}{1..3}

select 表名.列名1,表名.列名2.. ,表名2.列名1,表名2.列名2...from 表名,表名2;

内连接(两列相同时才会显示):where后面条件必须匹配

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

外连接(两列相同时显示,并以左/右表为主):左连接left join on、有链接right join on

select 表名.列名,表名.列名2,...,表名2.列名1,表名2.列名2,... from 表名 left join 表名2 on 表名1.列名1 = 表名2.列名2; 以左表为主(左表全部内容和右表匹配的内容)

select 表名.列名1,表名.列名2,...,表名2.列名1,表名2.列名2,... from 表名 right join 表名2 on 表名.列名 = 表名2.列名2;以右表为主

select 表名.列名1,表名.列名2,...,表名2.列名1,表名2.列名2,... from 表名 right join 表名2 on 表名.列名1 = 表名2.列名2 and condition;

select 表名.列名1,表名.列名2,...,表名2.列名1,表名2.列名2,... from 表名 right join 表名2 on 表名.列名1 = 表名2.列名2 order by 列名 desc/asc;

子查询:父查询需要依赖子查询的结果。子查询可以包含关键字和比较运算符。

带in关键字的子查询:以in前的查询结果作为in后查询的范围

select 列名,列名2 from 表名 where 列名 in (select distinct(去重) 列名 from 表名2 where 列名>=); in前父表in后子表

带exist关键字的查询:exist关键字表示存在。子查询若有结果则显示父查询的结果,若子查询未查询到结果,则父查询的结果也不会显示

select * from 表名 where exists (select * from 表名2 where condition)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值