mysql查4个表_mysql(4)对数据表的查询-- SELECT

【select】----查找记录

SELECT select_expr [,select_expr ...]

[

FROM table_references

[WHERE where_condition]

[GROUP BY {col_name | position} [ASC | DESC],...]

[HAVING where_condition]

[ORDER BY {col_name | expr | position} [ASC | DESC],...]

[LIMIT{[offset,] row_count | row_count OFFSET offset}]

]

c8c3ac3fe2f92cd688db04e695b1c8b7.png

【赋予别名】

使用多表链接时候,会有多表存在相同的字段,届时查询则需要具体到某表的某字段来查,比如: tb1_name.* //----命名表的所有列,可以在列的前边加上所属表的名字

例 子:SELECT users.id,users.username FROM users;

别名例子:SELECT id AS userid,username AS uname FROM users;//赋予别名

SELECT语句中:(1)字段的别名也将影响到以后结果集中字段的别名;(2)字段的出现的顺序将影响结果集出现的顺序;

【where语句】---条件表达式

对记录进行过滤,如果没有指定的where子句,则显示所有记录;

在WHERE表达式中,可以使用MYSQL支持的函数或运算符。

【GROUP BY 语句】----查询结果分组

[GROUP BY {col_name | position} [ASC | DESC],...]     //----ASC:升序,为默认的;DESC:降序

//-----既可以指定列的列名,也可以指定列的位置;尽量指定字段的名称

例子1:SELECT sex FRON users GROUP BY sex;   //------按照性别进行分组

例子2:SELECT sex FRON users GROUP BY 1;    //---select语句当中第一个所出现的字段

【HAVing语句】------分组的条件

[HAVing where_condition]      //---------只对于某一部分记录进行分组

例:SELECT sex FRON users GROUP BY 1 HAVing age>35;     //---会报错

例:SELECT sex,age FRON users GROUP BY 1 HAVing count(id)>=2;    // 语法结构正确,但会搜索不到

例子:SELECT sex,age FRON users GROUP BY 1 HAVing age>35;

注意:如果采用having进行分组条件的指定的时候,一定要保证分组的条件要么为一个聚合函数,要么字段必须出现在当前的select语句当中,否则会出现错误。

聚合函数:max、min、count(统计)、avg(求平均值)、sum(求和)、    //----永远只有一个返回结果

【ORDER BY语句】------对查询结果进行排序

[ORDER BY {col_name | expr | position} [ASC | DESC],...]     //-ASC:升序,为默认的;DESC:降序

备注:也可以同时以两个字段来排序,排序时首先来看第一个字段能否排出想要的结果,如果可以则直接忽略掉2字段;如果否,则遵守第二字段、第三字段...

例子:SELECT*FROM users ORDER BY id DESC;     //-------显示结果为id倒叙排列的表

例子2:SELECT*FROM users ORDER BY age DESC;    //-------显示结果为age倒叙排列的表

如果age中的值有相同的,还可以定义第二个参数进行二次排列

例子3:SELECT*FROM users ORDER BY age,id DESC;   //--显示结果为age、id倒叙排列的表

【limit 】-----限制查询结果返回的数量

[LIMIT {[offset,] row_count | row_count OFFSET offset}]

例子:1:SELECT * FROM USERS LIMIT 2;     //----返回第1、2共两条记录

例子2:SELECT * FROM USERS LIMIT 2,2;     //----返回第3、4共两条记录,

如果只填一个数字,指从第一条开始返回,返回x条记录;

如果想指定查询(不从第一天开始的)中间的几条记录,则需设置两个参数来指定从第几条开始返回,返回几条;且从“0”开始编号的(第1条记录即为0编号);

在限制查询里,id号与结果集中的顺序没有任何联系;

2、【INSERT】---表里插入数据方法之2------将查询结果写入到指定的数据表

INSERT[INTO] 表名 SET col_name={expr | DEFAULT},...

例子:创建一个test表,里面包含id、username两个字段,id为自动标号故只存在username一个字段;所以只能查username这个字段,现打算将其他表中限制查询出来的数据插入到test表中...

INSERT test(usermane) SELECT username FROM users WHERE age>=30;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值