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;