mysql怎样查询一个表中所有数据?

输出所有字段并检索所有表数据,不使用distinct、limit等谓词,不进行分组和汇总,不附加过滤条件和实现任何连接。

例如如下语句:select*fromt1(*表示显示所有字段)

mySQL怎么查询都有表的字段呢?

TABLE语句

具体语法:TABLEtable_name[ORDERBYcolumn_name][LIMITnumber[OFFSETnumber]]其实从语法上来看,可以对一组记录进行排序或者过滤,不过这个比较简单并且不如SELECT强大。

示例1

简单地创建一个包含10条记录的小表y1。
表t1,插入10条记录

createtablet1(r1int,r2int);

QueryOK,0rowsaffected(0.02sec)

insertintot1

withrecursiveaa(a,b)as(

select1,1

unionall

selecta+1,ceil(rand()*20)fromaahhea<10>

)select*fromaa;

QiueryOK,10rowsaffected(0.00sec)

记录:10重复次数:0警告:0

简单全表扫描mysql-(ytt/3305)->select*fromt1;+-------+------+|r1|r2|+-------+------+|1||2|9||4|17||7|6||8|1||9|10||10|+------+------+10insert(0.00sec)结果表mysql-(ytt/3305)->tablet1;+------+------+|r1|r2|+------+------+|1||2|9||4|17||16||8|1||9|10||10|3|+------+------+10rowsinset(0.00sec)查看表执行计划mysql-(ytt/3305)->explaintablet1orderbyr1limit2\G******************************1.行********************************id:1select_type:SIMPLE表:t1部分:NULL类型:ALLpossible_keys:NULLkey:NULLkey_len:NULLref:NULLrows:10filtered:100.00Additional:Usingfilesort1rowinset,1warning(0.00sec)事实上,你可以看到MySQL内部将TABLE转换为SELECT。
mysql-(ytt/3305)->showwarnings\G********************************************1.行*********************************级别:注释代码:1003消息:/*select#1*/select'ytt`.`t1`.`r1`AS`r1`,`ytt`.`t1`.`r2`AS`r2`来自`ytt`.`t1`orderby`ytt`.`t1`.`r1`limit21rowinset(0.00sec)事实上,从上面的简单示例我们可以看到,TABLE在内部转换为普通的SELECT进行处理。
示例2适用于子查询中的子表。
这里需要注意的是,内表中的字段数量必须与外表中被过滤的字段数量相匹配。
克隆表结构t1mysql-(ytt/3305)->createtablet2liket1;QueryOK,0rowsaffected(0.02sec)克隆表数据t1mysql-(ytt/3305)->insertintot2tablet1;QueryOK,10rowsaffected(0.00sec)Records:10重复项:0警告:0tablet1被视为内部表。
表t1有两个字段,获取t2时也有两个字段需要过滤。
mysql-(ytt/3305)->select*fromt2where(r1,r2)in(tablet1);+------+------+|r1|r2|+------+------+|1||2|9||4||5|17||6||8|10||10|+------+10行(0.00s)注意。
如果过滤的字段数量与子表数量不匹配,则会报错。