本节重点:

  单表查询

语法:

  1. 一、单表查询的语法
  2. SELECT 字段1,字段2... FROM 表名
  3. WHERE 条件
  4. GROUP BY field
  5. HAVING 筛选
  6. ORDER BY field
  7. LIMIT 限制条数
  8. 二、关键字的执行优先级(重点)
  9.  
  10. 重点中的重点:关键字的执行优先级
  11. from
  12. where
  13. group by
  14. having
  15. select
  16. distinct
  17. order by
  18. limit

1.找到表:from

  1.  

2.拿着where指定的约束条件,去文件/表中取出一条条记录

  1.  

3.将取出的一条条记录进行分组group by,如果没有group by,则整体作为一组

  1.  

4.将分组的结果进行having过滤

  1.  

5.执行select

  1.  

6.去重

  1.  

7.将结果按条件排序:order by

  1.  

8.限制结果的显示条数

  1.  

创建公司员工表,表的字段和数据类型

  1. company.employee
  2. 员工id id int
  3. 姓名 name varchar
  4. 性别 sex enum
  5. 年龄 age int
  6. 入职日期 hire_date date
  7. 岗位 post varchar
  8. 职位描述 post_comment     varchar
  9. 薪水 salary     double
  10. 办公室 office int
  11. 部门编号 depart_id int
  1. #创建表,设置字段的约束条件
  2. create table employee(
  3. id int primary key auto_increment,
  4. name varchar(20) not null,
  5. sex enum('male','female') not null default 'male', #大部分是男的
  6. age int(3) unsigned not null default 28,
  7. hire_date date not null,
  8. post varchar(50),
  9. post_comment varchar(100),
  10. salary double(15,2),
  11. office int,#一个部门一个屋
  12. depart_id int
  13. );
  14. # 查看表结构
  15. mysql> desc employee;
  16. +--------------+-----------------------+------+-----+---------+----------------+
  17. | Field | Type | Null | Key | Default | Extra |
  18. +--------------+-----------------------+------+-----+---------+----------------+
  19. | id | int(11) | NO | PRI | NULL | auto_increment |
  20. | emp_name | varchar(20) | NO | | NULL | |
  21. | sex | enum('male','female') | NO | | male | |
  22. | age | int(3) unsigned | NO | | 28 | |
  23. | hire_date | date | NO | | NULL | |
  24. | post | varchar(50) | YES | | NULL | |
  25. | post_comment | varchar(100) | YES | | NULL | |
  26. | salart | double(15,2) | YES | | NULL | |
  27. | office | int(11) | YES | | NULL | |
  28. | depart_id | int(11) | YES | | NULL | |
  29. +--------------+-----------------------+------+-----+---------+----------------+
  30. 10 rows in set (0.08 sec)
  31.  
  32. #插入记录
  33. #三个部门:教学,销售,运营
  34. insert into employee(name ,sex,age,hire_date,post,salary,office,depart_id) values
  35. ('egon','male',18,'20170301','老男孩驻沙河办事处外交大使',7300.33,401,1), #以下是教学部
  36. ('alex','male',78,'20150302','teacher',1000000.31,401,1),
  37. ('wupeiqi','male',81,'20130305','teacher',8300,401,1),
  38. ('yuanhao','male',73,'20140701','teacher',3500,401,1),
  39. ('liwenzhou','male',28,'20121101','teacher',2100,401,1),
  40. ('jingliyang','female',18,'20110211','teacher',9000,401,1),
  41. ('jinxin','male',18,'19000301','teacher',30000,401,1),
  42. ('xiaomage','male',48,'20101111','teacher',10000,401,1),
  43.  
  44. ('歪歪','female',48,'20150311','sale',3000.13,402,2),#以下是销售部门
  45. ('丫丫','female',38,'20101101','sale',2000.35,402,2),
  46. ('丁丁','female',18,'20110312','sale',1000.37,402,2),
  47. ('星星','female',18,'20160513','sale',3000.29,402,2),
  48. ('格格','female',28,'20170127','sale',4000.33,402,2),
  49.  
  50. ('张野','male',28,'20160311','operation',10000.13,403,3), #以下是运营部门
  51. ('程咬金','male',18,'19970312','operation',20000,403,3),
  52. ('程咬银','female',18,'20130311','operation',19000,403,3),
  53. ('程咬铜','male',18,'20150411','operation',18000,403,3),
  54. ('程咬铁','female',18,'20140512','operation',17000,403,3)
  55. ;

创建员工表,并插入记录

(1)where 约束 

  1. where子句中可以使用
  2. 1.比较运算符:>、<、>=、<=、<>、!=
  3. 2.between 80 and 100 :值在80100之间
  4. 3.in(80,90,100)值是102030
  5. 4.like 'xiaomagepattern': pattern可以是%或者_。%小时任意多字符,_表示一个字符
  6. 5.逻辑运算符:在多个条件直接可以使用逻辑运算符 and or not

验证结果:

  1. #1 :单条件查询
  2. mysql> select id,emp_name from employee where id > 5;
  3. +----+------------+
  4. | id | emp_name |
  5. +----+------------+
  6. | 6 | jingliyang |
  7. | 7 | jinxin |
  8. | 8 | xiaomage |
  9. | 9 | 歪歪 |
  10. | 10 | 丫丫 |
  11. | 11 | 丁丁 |
  12. | 12 | 星星 |
  13. | 13 | 格格 |
  14. | 14 | 张野 |
  15. | 15 | 程咬金 |
  16. | 16 | 程咬银 |
  17. | 17 | 程咬铜 |
  18. | 18 | 程咬铁 |
  19.  
  20. #2 多条件查询
  21. mysql> select emp_name from employee where post='teacher' and salary>10000;
  22. +----------+
  23. | emp_name |
  24. +----------+
  25. | alex |
  26. | jinxin |
  27. +----------+
  28.  
  29. #3.关键字BETWEEN AND
  30. SELECT name,salary FROM employee
  31. WHERE salary BETWEEN 10000 AND 20000;
  32.  
  33. SELECT name,salary FROM employee
  34. WHERE salary NOT BETWEEN 10000 AND 20000;
  35.  
  36. #注意''是空字符串,不是null
  37. SELECT name,post_comment FROM employee WHERE post_comment='';
  38. ps
  39. 执行
  40. update employee set post_comment='' where id=2;
  41. 再用上条查看,就会有结果了
  42. #5:关键字IN集合查询
  43. mysql> SELECT name,salary FROM employee WHERE salary=3000 OR salary=3500 OR salary=4000 OR salary=9000 ;
  44. +------------+---------+
  45. | name | salary |
  46. +------------+---------+
  47. | yuanhao | 3500.00 |
  48. | jingliyang | 9000.00 |
  49. +------------+---------+
  50. 2 rows in set (0.00 sec)
  51.  
  52. mysql> SELECT name,salary FROM employee WHERE salary IN (3000,3500,4000,9000) ;
  53. +------------+---------+
  54. | name | salary |
  55. +------------+---------+
  56. | yuanhao | 3500.00 |
  57. | jingliyang | 9000.00 |
  58. +------------+---------+
  59. mysql> SELECT name,salary FROM employee WHERE salary NOT IN (3000,3500,4000,9000) ;
  60. +-----------+------------+
  61. | name | salary |
  62. +-----------+------------+
  63. | egon | 7300.33 |
  64. | alex | 1000000.31 |
  65. | wupeiqi | 8300.00 |
  66. | liwenzhou | 2100.00 |
  67. | jinxin | 30000.00 |
  68. | xiaomage | 10000.00 |
  69. | 歪歪 | 3000.13 |
  70. | 丫丫 | 2000.35 |
  71. | 丁丁 | 1000.37 |
  72. | 星星 | 3000.29 |
  73. | 格格 | 4000.33 |
  74. | 张野 | 10000.13 |
  75. | 程咬金 | 20000.00 |
  76. | 程咬银 | 19000.00 |
  77. | 程咬铜 | 18000.00 |
  78. | 程咬铁 | 17000.00 |
  79. +-----------+------------+
  80. 16 rows in set (0.00 sec)
  81.  
  82. #6:关键字LIKE模糊查询
  83. 通配符’%’
  84. mysql> SELECT * FROM employee WHERE name LIKE 'jin%';
  85. +----+------------+--------+-----+------------+---------+--------------+----------+--------+-----------+
  86. | id | name | sex | age | hire_date | post | post_comment | salary | office | depart_id |
  87. +----+------------+--------+-----+------------+---------+--------------+----------+--------+-----------+
  88. | 6 | jingliyang | female | 18 | 2011-02-11 | teacher | NULL | 9000.00 | 401 | 1 |
  89. | 7 | jinxin | male | 18 | 1900-03-01 | teacher | NULL | 30000.00 | 401 | 1 |
  90. +----+------------+--------+-----+------------+---------+--------------+----------+--------+-----------+
  91. 2 rows in set (0.00 sec)
  92.  
  93. 通配符'_'
  94.  
  95. mysql> SELECT age FROM employee WHERE name LIKE 'ale_';
  96. +-----+
  97. | age |
  98. +-----+
  99. | 78 |
  100. +-----+
  101. 1 row in set (0.00 sec)
  102.  
  103. 练习:
  104. 1. 查看岗位是teacher的员工姓名、年龄
  105. 2. 查看岗位是teacher且年龄大于30岁的员工姓名、年龄
  106. 3. 查看岗位是teacher且薪资在9000-1000范围内的员工姓名、年龄、薪资
  107. 4. 查看岗位描述不为NULL的员工信息
  108. 5. 查看岗位是teacher且薪资是10000900030000的员工姓名、年龄、薪资
  109. 6. 查看岗位是teacher且薪资不是10000900030000的员工姓名、年龄、薪资
  110. 7. 查看岗位是teacher且名字是jin开头的员工姓名、年薪
  111.  
  112. #对应的sql语句
  113. select name,age from employee where post = 'teacher';
  114. select name,age from employee where post='teacher' and age > 30;
  115. select name,age,salary from employee where post='teacher' and salary between 9000 and 10000;
  116. select * from employee where post_comment is not null;
  117. select name,age,salary from employee where post='teacher' and salary in (10000,9000,30000);
  118. select name,age,salary from employee where post='teacher' and salary not in (10000,9000,30000);
  119. select name,salary*12 from employee where post='teacher' and name like 'jin%';

where约束

(2)group by 分组查询

  1. #1、首先明确一点:分组发生在where之后,即分组是基于where之后得到的记录而进行的
  2.  
  3. #2、分组指的是:将所有记录按照某个相同字段进行归类,比如针对员工信息表的职位分组,或者按照性别进行分组等
  4.  
  5. #3、为何要分组呢?
  6. 取每个部门的最高工资
  7. 取每个部门的员工数
  8. 取男人数和女人数
  9.  
  10. 小窍门:‘每’这个字后面的字段,就是我们分组的依据
  11.  
  12. #4、大前提:
  13. 可以按照任意字段分组,但是分组完毕后,比如group by post,只能查看post字段,如果想查看组内信息,需要借助于聚合函数

当执行以下sql语句的时候,是以post字段查询了组中的第一条数据,没有任何意义,因为我们现在想查出当前组的多条记录。

  1. mysql> select * from employee group by post;
  2. +----+--------+--------+-----+------------+-----------------------------------------+--------------+------------+--------+-----------+
  3. | id | name | sex | age | hire_date | post | post_comment | salary | office | depart_id |
  4. +----+--------+--------+-----+------------+-----------------------------------------+--------------+------------+--------+-----------+
  5. | 14 | 张野 | male | 28 | 2016-03-11 | operation | NULL | 10000.13 | 403 | 3 |
  6. | 9 | 歪歪 | female | 48 | 2015-03-11 | sale | NULL | 3000.13 | 402 | 2 |
  7. | 2 | alex | male | 78 | 2015-03-02 | teacher | | 1000000.31 | 401 | 1 |
  8. | 1 | egon | male | 18 | 2017-03-01 | 老男孩驻沙河办事处外交大使 | NULL | 7300.33 | 401 | 1 |
  9. +----+--------+--------+-----+------------+-----------------------------------------+--------------+------------+--------+-----------+
  10. 4 rows in set (0.00 sec)
  11.  
  12. #由于没有设置ONLY_FULL_GROUP_BY,于是也可以有结果,默认都是组内的第一条记录,但其实这是没有意义的
  13. 如果想分组,则必须要设置全局的sql的模式为ONLY_FULL_GROUP_BY
  14. mysql> set global sql_mode='ONLY_FULL_GROUP_BY';
  15. Query OK, 0 rows affected (0.00 sec)
  16.  
  17. #查看MySQL 5.7默认的sql_mode如下:
  18. mysql> select @@global.sql_mode;
  19. +--------------------+
  20. | @@global.sql_mode |
  21. +--------------------+
  22. | ONLY_FULL_GROUP_BY |
  23. +--------------------+
  24. 1 row in set (0.00 sec)
  25.  
  26. mysql> exit;#设置成功后,一定要退出,然后重新登录方可生效
  27. Bye

继续验证通过group by分组之后,只能查看当前字段,如果想查看组内信息,需要借助于聚合函数

  1. mysql> select * from emp group by post;# 报错
  2. ERROR 1054 (42S22): Unknown column 'post' in 'group statement'
  3.  
  4. mysql> select post from employee group by post;
  5. +-----------------------------------------+
  6. | post |
  7. +-----------------------------------------+
  8. | operation |
  9. | sale |
  10. | teacher |
  11. | 老男孩驻沙河办事处外交大使 |
  12. +-----------------------------------------+
  13. 4 rows in set (0.00 sec)

(3)聚合函数

  1. max()求最大值
  2. min()求最小值
  3. avg()求平均值
  4. sum() 求和
  5. count() 求总个数
  6.  
  7. #强调:聚合函数聚合的是组的内容,若是没有分组,则默认一组
  8. # 每个部门有多少个员工
  9. select post,count(id) from employee group by post;
  10. # 每个部门的最高薪水
  11. select post,max(salary) from employee group by post;
  12. # 每个部门的最低薪水
  13. select post,min(salary) from employee group by post;
  14. # 每个部门的平均薪水
  15. select post,avg(salary) from employee group by post;
  16. # 每个部门的所有薪水
  17. select post,sum(age) from employee group by post;
  1. 1. 查询岗位名以及岗位包含的所有员工名字
  2. 2. 查询岗位名以及各岗位内包含的员工个数
  3. 3. 查询公司内男员工和女员工的个数
  4. 4. 查询岗位名以及各岗位的平均薪资
  5. 5. 查询岗位名以及各岗位的最高薪资
  6. 6. 查询岗位名以及各岗位的最低薪资
  7. 7. 查询男员工与男员工的平均薪资,女员工与女员工的平均薪资

小练习

(4)HAVING过滤

  

  1. HAVINGWHERE不一样的地方在于
  2.  
  3. #!!!执行优先级从高到低:where > group by > having
  4. #1. Where 发生在分组group by之前,因而Where中可以有任意字段,但是绝对不能使用聚合函数。
  5.  
  6. #2. Having发生在分组group by之后,因而Having中可以使用分组的字段,无法直接取到其他字段,可以使用聚合函数

验证:

  1. 验证:
  2. mysql> select * from employee where salary>1000000;
  3. +----+------+------+-----+------------+---------+--------------+------------+--------+-----------+
  4. | id | name | sex | age | hire_date | post | post_comment | salary | office | depart_id |
  5. +----+------+------+-----+------------+---------+--------------+------------+--------+-----------+
  6. | 2 | alex | male | 78 | 2015-03-02 | teacher | | 1000000.31 | 401 | 1 |
  7. +----+------+------+-----+------------+---------+--------------+------------+--------+-----------+
  8. 1 row in set (0.00 sec)
  9.  
  10. mysql> select * from employee having salary>1000000;
  11. ERROR 1463 (42000): Non-grouping field 'salary' is used in HAVING clause
  12.  
  13. # 必须使用group by才能使用group_concat()函数,将所有的name值连接
  14. mysql> select post,group_concat(name) from emp group by post having salary > 10000; ##错误,分组后无法直接取到salary字段
  15. ERROR 1054 (42S22): Unknown column 'post' in 'field list'

小练习:

  1. 1. 查询各岗位内包含的员工个数小于2的岗位名、岗位内包含员工名字、个数
  2. 2. 查询各岗位平均薪资大于10000的岗位名、平均工资
  3. 3. 查询各岗位平均薪资大于10000且小于20000的岗位名、平均工资

小练习答案:

  1. # 题1:
  2. mysql> select post,group_concat(name),count(id) from employee group by post;
  3. +-----------------------------------------+-----------------------------------------------------------+-----------+
  4. | post | group_concat(name) | count(id) |
  5. +-----------------------------------------+-----------------------------------------------------------+-----------+
  6. | operation | 程咬铁,程咬铜,程咬银,程咬金,张野 | 5 |
  7. | sale | 格格,星星,丁丁,丫丫,歪歪 | 5 |
  8. | teacher | xiaomage,jinxin,jingliyang,liwenzhou,yuanhao,wupeiqi,alex | 7 |
  9. | 老男孩驻沙河办事处外交大使 | egon | 1 |
  10. +-----------------------------------------+-----------------------------------------------------------+-----------+
  11. 4 rows in set (0.00 sec)
  12.  
  13. mysql> select post,group_concat(name),count(id) from employee group by post having count(id)<2;
  14. +-----------------------------------------+--------------------+-----------+
  15. | post | group_concat(name) | count(id) |
  16. +-----------------------------------------+--------------------+-----------+
  17. | 老男孩驻沙河办事处外交大使 | egon | 1 |
  18. +-----------------------------------------+--------------------+-----------+
  19. 1 row in set (0.00 sec)
  20.  
  21. #题2:
  22. mysql> select post,avg(salary) from employee group by post having avg(salary) > 10000;
  23. +-----------+---------------+
  24. | post | avg(salary) |
  25. +-----------+---------------+
  26. | operation | 16800.026000 |
  27. | teacher | 151842.901429 |
  28. +-----------+---------------+
  29. 2 rows in set (0.00 sec)
  30.  
  31. #题3:
  32. mysql> select post,avg(salary) from employee group by post having avg(salary) > 10000 and avg(salary) <20000;
  33. +-----------+--------------+
  34. | post | avg(salary) |
  35. +-----------+--------------+
  36. | operation | 16800.026000 |
  37. +-----------+--------------+
  38. 1 row in set (0.00 sec)

(5)order by 查询排序

  1. 按单列排序
  2. SELECT * FROM employee ORDER BY age;
  3. SELECT * FROM employee ORDER BY age ASC;
  4. SELECT * FROM employee ORDER BY age DESC;
  5. 按多列排序:先按照age升序排序,如果年纪相同,则按照id降序
  6. SELECT * from employee
  7. ORDER BY age ASC,
  8. id DESC;
  1. 验证多列排序:
  2. SELECT * from employee ORDER BY age ASC,id DESC;
  3. mysql> SELECT * from employee ORDER BY age ASC,id DESC;
  4. +----+------------+--------+-----+------------+-----------------------------------------+--------------+------------+--------+-----------+
  5. | id | name | sex | age | hire_date | post | post_comment | salary | office | depart_id |
  6. +----+------------+--------+-----+------------+-----------------------------------------+--------------+------------+--------+-----------+
  7. | 18 | 程咬铁 | female | 18 | 2014-05-12 | operation | NULL | 17000.00 | 403 | 3 |
  8. | 17 | 程咬铜 | male | 18 | 2015-04-11 | operation | NULL | 18000.00 | 403 | 3 |
  9. | 16 | 程咬银 | female | 18 | 2013-03-11 | operation | NULL | 19000.00 | 403 | 3 |
  10. | 15 | 程咬金 | male | 18 | 1997-03-12 | operation | NULL | 20000.00 | 403 | 3 |
  11. | 12 | 星星 | female | 18 | 2016-05-13 | sale | NULL | 3000.29 | 402 | 2 |
  12. | 11 | 丁丁 | female | 18 | 2011-03-12 | sale | NULL | 1000.37 | 402 | 2 |
  13. | 7 | jinxin | male | 18 | 1900-03-01 | teacher | NULL | 30000.00 | 401 | 1 |
  14. | 6 | jingliyang | female | 18 | 2011-02-11 | teacher | NULL | 9000.00 | 401 | 1 |
  15. | 1 | egon | male | 18 | 2017-03-01 | 老男孩驻沙河办事处外交大使 | NULL | 7300.33 | 401 | 1 |
  16. | 14 | 张野 | male | 28 | 2016-03-11 | operation | NULL | 10000.13 | 403 | 3 |
  17. | 13 | 格格 | female | 28 | 2017-01-27 | sale | NULL | 4000.33 | 402 | 2 |
  18. | 5 | liwenzhou | male | 28 | 2012-11-01 | teacher | NULL | 2100.00 | 401 | 1 |
  19. | 10 | 丫丫 | female | 38 | 2010-11-01 | sale | NULL | 2000.35 | 402 | 2 |
  20. | 9 | 歪歪 | female | 48 | 2015-03-11 | sale | NULL | 3000.13 | 402 | 2 |
  21. | 8 | xiaomage | male | 48 | 2010-11-11 | teacher | NULL | 10000.00 | 401 | 1 |
  22. | 4 | yuanhao | male | 73 | 2014-07-01 | teacher | NULL | 3500.00 | 401 | 1 |
  23. | 2 | alex | male | 78 | 2015-03-02 | teacher | | 1000000.31 | 401 | 1 |
  24. | 3 | wupeiqi | male | 81 | 2013-03-05 | teacher | NULL | 8300.00 | 401 | 1 |
  25. +----+------------+--------+-----+------------+-----------------------------------------+--------------+------------+--------+-----------+
  26. 18 rows in set (0.01 sec)
  27.  
  28. mysql>

验证多列排序

小练习:

  1. 1. 查询所有员工信息,先按照age升序排序,如果age相同则按照hire_date降序排序
  2. 2. 查询各岗位平均薪资大于10000的岗位名、平均工资,结果按平均薪资升序排列
  3. 3. 查询各岗位平均薪资大于10000的岗位名、平均工资,结果按平均薪资降序排列 
  1. # 题目1
  2. select * from employee ORDER BY age asc,hire_date desc;
  3.  
  4. # 题目2
  5. mysql> select post,avg(salary) from employee group by post having avg(salary) > 10000 order by avg(salary) asc;
  6. +-----------+---------------+
  7. | post | avg(salary) |
  8. +-----------+---------------+
  9. | operation | 16800.026000 |
  10. | teacher | 151842.901429 |
  11. +-----------+---------------+
  12. 2 rows in set (0.00 sec)
  13.  
  14. # 题目3
  15. mysql> select post,avg(salary) from employee group by post having avg(salary) > 10000 order by avg(salary) desc;
  16. +-----------+---------------+
  17. | post | avg(salary) |
  18. +-----------+---------------+
  19. | teacher | 151842.901429 |
  20. | operation | 16800.026000 |
  21. +-----------+---------------+
  22. 2 rows in set (0.00 sec)
  23.  
  24. mysql>

小练习答案

(5)limit  限制查询的记录数:

  1. 示例:
  2. SELECT * FROM employee ORDER BY salary DESC
  3. LIMIT 3; #默认初始位置为0
  4.  
  5. SELECT * FROM employee ORDER BY salary DESC
  6. LIMIT 0,5; #从第0开始,即先查询出第一条,然后包含这一条在内往后查5条
  7.  
  8. SELECT * FROM employee ORDER BY salary DESC
  9. LIMIT 5,5; #从第5开始,即先查询出第6条,然后包含这一条在内往后查5条

小练习:
分页显示,每页5条

  1. # 第1页数据
  2. mysql> select * from employee limit 0,5;
  3. +----+-----------+------+-----+------------+-----------------------------------------+--------------+------------+--------+-----------+
  4. | id | name | sex | age | hire_date | post | post_comment | salary | office | depart_id |
  5. +----+-----------+------+-----+------------+-----------------------------------------+--------------+------------+--------+-----------+
  6. | 1 | egon | male | 18 | 2017-03-01 | 老男孩驻沙河办事处外交大使 | NULL | 7300.33 | 401 | 1 |
  7. | 2 | alex | male | 78 | 2015-03-02 | teacher | | 1000000.31 | 401 | 1 |
  8. | 3 | wupeiqi | male | 81 | 2013-03-05 | teacher | NULL | 8300.00 | 401 | 1 |
  9. | 4 | yuanhao | male | 73 | 2014-07-01 | teacher | NULL | 3500.00 | 401 | 1 |
  10. | 5 | liwenzhou | male | 28 | 2012-11-01 | teacher | NULL | 2100.00 | 401 | 1 |
  11. +----+-----------+------+-----+------------+-----------------------------------------+--------------+------------+--------+-----------+
  12. 5 rows in set (0.00 sec)
  13. # 第2页数据
  14. mysql> select * from employee limit 5,5;
  15. +----+------------+--------+-----+------------+---------+--------------+----------+--------+-----------+
  16. | id | name | sex | age | hire_date | post | post_comment | salary | office | depart_id |
  17. +----+------------+--------+-----+------------+---------+--------------+----------+--------+-----------+
  18. | 6 | jingliyang | female | 18 | 2011-02-11 | teacher | NULL | 9000.00 | 401 | 1 |
  19. | 7 | jinxin | male | 18 | 1900-03-01 | teacher | NULL | 30000.00 | 401 | 1 |
  20. | 8 | xiaomage | male | 48 | 2010-11-11 | teacher | NULL | 10000.00 | 401 | 1 |
  21. | 9 | 歪歪 | female | 48 | 2015-03-11 | sale | NULL | 3000.13 | 402 | 2 |
  22. | 10 | 丫丫 | female | 38 | 2010-11-01 | sale | NULL | 2000.35 | 402 | 2 |
  23. +----+------------+--------+-----+------------+---------+--------------+----------+--------+-----------+
  24. 5 rows in set (0.00 sec)
  25. # 第3页数据
  26. mysql> select * from employee limit 10,5;
  27. +----+-----------+--------+-----+------------+-----------+--------------+----------+--------+-----------+
  28. | id | name | sex | age | hire_date | post | post_comment | salary | office | depart_id |
  29. +----+-----------+--------+-----+------------+-----------+--------------+----------+--------+-----------+
  30. | 11 | 丁丁 | female | 18 | 2011-03-12 | sale | NULL | 1000.37 | 402 | 2 |
  31. | 12 | 星星 | female | 18 | 2016-05-13 | sale | NULL | 3000.29 | 402 | 2 |
  32. | 13 | 格格 | female | 28 | 2017-01-27 | sale | NULL | 4000.33 | 402 | 2 |
  33. | 14 | 张野 | male | 28 | 2016-03-11 | operation | NULL | 10000.13 | 403 | 3 |
  34. | 15 | 程咬金 | male | 18 | 1997-03-12 | operation | NULL | 20000.00 | 403 | 3 |
  35. +----+-----------+--------+-----+------------+-----------+--------------+----------+--------+-----------+
  36. 5 rows in set (0.00 sec)

小练习答案

  

11-Mysql数据库----单表查询的更多相关文章

  1. Mariadb/MySQL数据库单表查询基本操作及DML语句

    Mariadb/MySQL数据库单表查询基本操作及DML语句 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一数据库及表相关概述 1>.数据库操作 创建数据库: CREATE ...

  2. Mysql数据库单表查询

    1.单表查询语法 #查询数据的本质:mysql会到你本地的硬盘上找到对应的文件,然后打开文件,按照你的查询条件来找出你需要的数据.下面是完整的一个单表查询的语法 select * from,这个sel ...

  3. MySQL数据库----单表查询

    先创建表 #创建表 create table employee( id int not null unique auto_increment, name varchar(20) not null, s ...

  4. MySQL之单表查询 一 单表查询的语法 二 关键字的执行优先级(重点) 三 简单查询 四 WHERE约束 五 分组查询:GROUP BY 六 HAVING过滤 七 查询排序:ORDER BY 八 限制查询的记录数:LIMIT 九 使用正则表达式查询

    MySQL之单表查询 阅读目录 一 单表查询的语法 二 关键字的执行优先级(重点) 三 简单查询 四 WHERE约束 五 分组查询:GROUP BY 六 HAVING过滤 七 查询排序:ORDER B ...

  5. day 38 MySQL之单表查询

    MySQL之单表查询   阅读目录 一 单表查询的语法 二 关键字的执行优先级(重点) 三 简单查询 四 WHERE约束 五 分组查询:GROUP BY 六 HAVING过滤 七 查询排序:ORDER ...

  6. mysql数据库单表只有一个主键自增id字段,ibatis实现id自增

    mysql数据库单表只有一个主键自增id字段,ibatis实现id自增 <insert id="autoid">        insert into user_id ...

  7. Vc数据库编程基础MySql数据库的表查询功能

    Vc数据库编程基础MySql数据库的表查询功能 一丶简介 不管是任何数据库.都会有查询功能.而且是很重要的功能.上一讲知识简单的讲解了表的查询所有. 那么这次我们需要掌握的则是. 1.使用select ...

  8. mysql数据库单表增删改查命令

    数据库DB-database-mysql 课程安排 第一天: 1.数据库定义以及设计 2.mysql服务端的安装 3.mysql-dos操作 库的操作 表的操作 4.mysql客户端navicate工 ...

  9. MySQL之单表查询、多表查询

    一.单表查询: 单个表的查询方法及语法顺序需要通过实际例子来熟悉 先将表数据创建下: mysql> create database singe_t1; # 建个数据库singe_t1 Query ...

  10. mysql(单表查询,多表查询,MySQl创建用户和授权,可视化工具Navicat的使用)

    单表查询 语法: 一.单表查询的语法 SELECT 字段1,字段2... FROM 表名 WHERE 条件 GROUP BY field HAVING 筛选 ORDER BY field LIMIT ...

随机推荐

  1. SQL Error: 1064, SQLState: 42000 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version

    -- ::, WARN [org.hibernate.util.JDBCExceptionReporter:] - SQL Error: , SQLState: -- ::, ERROR [org.h ...

  2. 我的wmware

    1.vmware 网络连接方式 NAT 模式: 虚拟机的IP 是由NAT分配的,电脑环境无论如何变化,都不会影响虚拟机 好处:在家.学校.公司,连接虚拟机都可以使用相同的ip地址 桥接模式: 只要更换 ...

  3. vue2.0+node.js+mongodb全栈打造商城

    Github地址:https://github.com/ccyinghua/vue-node-mongodb-project 一.构建项目所用: vue init webpack vue-node-m ...

  4. JDBCUtils工具类(转)

    JdbcUtils.java import java.sql.Connection; import java.sql.SQLException; import javax.sql.DataSource ...

  5. DOM查询

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/stri ...

  6. yum仓库客户端搭建和NTP时间同步客户端配置

    一.yum仓库客户端搭建 yum源仓库搭建分为服务器端和客户端. 服务端主要提供软件(rpm包)和yumlist.也就是提供yum源的位置.一般是通过http或者ftp提供位置. 客户端的配置:yum ...

  7. Mina 组件介绍之 IoBuffer

    在Java NIO 中,ByteBuffer通常作为通信中传递消息的载体.而在Mina中,采用了IoBuffer代替ByteBuffer.Mina给出了不用ByteBuffer的两个主要理由: 1.  ...

  8. thinkphp5阿里大于短信接口

    function autumn_sendsms($tel,$stype){ $pd_go=true; if($tel==''){ $msg='手机号不能为空'; $pd_go=false; } if( ...

  9. mac 安装requests

    首先mac上已经安装了python,我的是python2x,我自己安装了python3,python3安装requests,控制台,输入,pip3 install requests 下面就已经安装完成 ...

  10. Scrapy核心组件

    • 引擎(Scrapy)用来处理整个系统的数据流处理, 触发事务(框架核心) • 调度器(Scheduler)用来接受引擎发过来的请求, 压入队列中, 并在引擎再次请求的时候返回. 可以想像成一个UR ...