level 2
xmvip01
楼主
DML数据操作语言 http://click.aliyun.com/m/27828/更多语言标签应用实例
关键字:SELECT
1、查询表中所有的记录。
mysql> select * from 表名; //*指代表中所有的列
mysql> select 列1,列2,... from 表名; //将表中所有的列都写出来和上面效果相同。
例:查询dept表中的所有数据
mysql> select * from dept; 或者 select deptno,deptname from dept;
2、查询表中的某一条记录。
mysql>select * from 表名 where 列名=字段值;
例:查询学生表(student)中名字(sname)叫'张三'的学生的学号(sno)、成绩(grade)信息。
mysql>select sno,grade from student where sname='张三';//当指定了要查询的信息,就不要用*号代替所有了。
3、过滤表中重复的数据(关键字distinct)
mysql>select distinct 列名 from 表名; //返回该字段下的所有字段值,若有相同字段值,则只返回一个。
4、排序(关键字order by)。
mysql>select * from 表名 order by 列名 asc; //升序(默认),asc可省略不写。
mysql>select * from 表名 order by 列名 desc; //降序
例:按照学生表(student)中学生成绩(grade)的由高到低顺序输出学生的学号(sno)、姓名(sname)和成绩(grade).
mysql>select sno,sname,grade from student order by grade desc;
5、分页查询(关键字limit)。
mysql>select * from 表名 limit (pageNo-1)*pagesize,pagesize; // pageNo-->要查询的页数,pageSize-->每页显示的记录数
例:查询dept表中第一页(每页2条数据)的记录。
mysql>select * from 表名 limit 0,2;
6、模糊查询(关键字like)。
mysql>select * from 表名 where 列名 like ' % '; //%指代任意字符
例:查询学生表(student)中姓刘的学生的信息。
mysql>select * from student where sname like '刘%';
例:查询学生表中姓名第二个字为阳的学生信息。
mysql>select * from student where sname like '_阳%'; //_指代一个字符
7、范围查询(关键字between .. and .. , in())。
mysql>select * from 表名 where 列名 between 字段值(小) and 字段值(大);//包含两端的字段值
mysql>select * from 表名 where 列名 in (字段值1,字段值2,......);
例如:查询学生表(student)中语文成绩chinese在80~90分之间的所有学生信息(包含80和90)
mysql>select * from student where chinese between 80 and 90;
例如:查询学生表(student)中数学成绩math为60分,70分,80分和90分的所有学生信息。
mysql>select * from student where math in (60,70,80,90);
8、使用别名。
mysql>select 字段名 <as> 别名,字段名 别名,... from 表名; //as可省略
例如:查询学生成绩表(sc)中学生姓名(sname)及总成绩,sname字段用姓名表示,所有科目得分总和用总分表示。
mysql>select sname as 姓名,chinese+math+english 总分 from sc;
9、分组查询(关键字group by)。
mysql>select 列名,count(列名) from 表名 group by 列名;
例如:查询每个部门的员工人数,根据部门编号(deptno)对员工进行分组,返回各部门员工人数。
mysql>select deptno,count(empno) from emp group by deptno; //empno--员工编号,emp--员工表
having:对分组后的结果进行条件限制
例如:查询每个部门员工人数大于2的所有记录,返回人数大于2人的部门编号及其部门人数。
mysql>select deptno,count(empno) from emp group by deptno having count(empno)>2;
10、表连接查询(同时涉及多个表的查询称为连接查询,用来连接两个表的条件称为连接条件)。
内连接:表1 join 表2 on 表1.列名=表2.咧名;
例:查询员工表(emp)中的员工号(empno)、员工姓名(empname)、部门号(deptno)和部门名称(deptname),部门名称字段在部门表(dept)中.
mysql> select empno,empname,emp.deptno,deptname from emp join dept on emp.deptno=dept.deptno;http://click.aliyun.com/m/27828/更多语言标签应用实例
左外连接:表1 left join 表2 on 表1.列名=表2.列名;
表1作为主表,主表中的所有记录都会输出,和从表匹配不上的字段用null进行补齐。
例:以员工表(emp)为主表实现上述查询。
mysql> select empno,empname,emp.deptno,deptname from emp left join dept on emp.deptno=dept.deptno;
右外连接:表1 right join 表2 on 表1.列名=表2.列名;
表2为主表,主表中的所有记录都会输出,和从表匹配不上的字段用null进行补齐。
例:以部门表(dept)为主表实现上述查询。
mysql> select empno,empname,emp.deptno,deptname from emp right join dept on emp.deptno=dept.deptno;
http://click.aliyun.com/m/27828/更多语言标签应用实例
2018年04月19日 03点04分
1
关键字:SELECT
1、查询表中所有的记录。
mysql> select * from 表名; //*指代表中所有的列
mysql> select 列1,列2,... from 表名; //将表中所有的列都写出来和上面效果相同。
例:查询dept表中的所有数据
mysql> select * from dept; 或者 select deptno,deptname from dept;
2、查询表中的某一条记录。
mysql>select * from 表名 where 列名=字段值;
例:查询学生表(student)中名字(sname)叫'张三'的学生的学号(sno)、成绩(grade)信息。
mysql>select sno,grade from student where sname='张三';//当指定了要查询的信息,就不要用*号代替所有了。
3、过滤表中重复的数据(关键字distinct)
mysql>select distinct 列名 from 表名; //返回该字段下的所有字段值,若有相同字段值,则只返回一个。
4、排序(关键字order by)。
mysql>select * from 表名 order by 列名 asc; //升序(默认),asc可省略不写。
mysql>select * from 表名 order by 列名 desc; //降序
例:按照学生表(student)中学生成绩(grade)的由高到低顺序输出学生的学号(sno)、姓名(sname)和成绩(grade).
mysql>select sno,sname,grade from student order by grade desc;
5、分页查询(关键字limit)。
mysql>select * from 表名 limit (pageNo-1)*pagesize,pagesize; // pageNo-->要查询的页数,pageSize-->每页显示的记录数
例:查询dept表中第一页(每页2条数据)的记录。
mysql>select * from 表名 limit 0,2;
6、模糊查询(关键字like)。
mysql>select * from 表名 where 列名 like ' % '; //%指代任意字符
例:查询学生表(student)中姓刘的学生的信息。
mysql>select * from student where sname like '刘%';
例:查询学生表中姓名第二个字为阳的学生信息。
mysql>select * from student where sname like '_阳%'; //_指代一个字符
7、范围查询(关键字between .. and .. , in())。
mysql>select * from 表名 where 列名 between 字段值(小) and 字段值(大);//包含两端的字段值
mysql>select * from 表名 where 列名 in (字段值1,字段值2,......);
例如:查询学生表(student)中语文成绩chinese在80~90分之间的所有学生信息(包含80和90)
mysql>select * from student where chinese between 80 and 90;
例如:查询学生表(student)中数学成绩math为60分,70分,80分和90分的所有学生信息。
mysql>select * from student where math in (60,70,80,90);
8、使用别名。
mysql>select 字段名 <as> 别名,字段名 别名,... from 表名; //as可省略
例如:查询学生成绩表(sc)中学生姓名(sname)及总成绩,sname字段用姓名表示,所有科目得分总和用总分表示。
mysql>select sname as 姓名,chinese+math+english 总分 from sc;
9、分组查询(关键字group by)。
mysql>select 列名,count(列名) from 表名 group by 列名;
例如:查询每个部门的员工人数,根据部门编号(deptno)对员工进行分组,返回各部门员工人数。
mysql>select deptno,count(empno) from emp group by deptno; //empno--员工编号,emp--员工表
having:对分组后的结果进行条件限制
例如:查询每个部门员工人数大于2的所有记录,返回人数大于2人的部门编号及其部门人数。
mysql>select deptno,count(empno) from emp group by deptno having count(empno)>2;
10、表连接查询(同时涉及多个表的查询称为连接查询,用来连接两个表的条件称为连接条件)。
内连接:表1 join 表2 on 表1.列名=表2.咧名;
例:查询员工表(emp)中的员工号(empno)、员工姓名(empname)、部门号(deptno)和部门名称(deptname),部门名称字段在部门表(dept)中.
mysql> select empno,empname,emp.deptno,deptname from emp join dept on emp.deptno=dept.deptno;http://click.aliyun.com/m/27828/更多语言标签应用实例
左外连接:表1 left join 表2 on 表1.列名=表2.列名;
表1作为主表,主表中的所有记录都会输出,和从表匹配不上的字段用null进行补齐。
例:以员工表(emp)为主表实现上述查询。
mysql> select empno,empname,emp.deptno,deptname from emp left join dept on emp.deptno=dept.deptno;
右外连接:表1 right join 表2 on 表1.列名=表2.列名;
表2为主表,主表中的所有记录都会输出,和从表匹配不上的字段用null进行补齐。
例:以部门表(dept)为主表实现上述查询。
mysql> select empno,empname,emp.deptno,deptname from emp right join dept on emp.deptno=dept.deptno;
http://click.aliyun.com/m/27828/更多语言标签应用实例