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}]
]
 
 
【赋予别名】
使用多表链接时候,会有多表存在相同的字段,届时查询则需要具体到某表的某字段来查,比如: 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;
 
 

转载于:https://www.cnblogs.com/nbnuan/articles/10695356.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值