mysql四-1:单表查询

一、单表查询的语法
SELECT 字段1,字段2... FROM 表名
                  WHERE 条件
                  GROUP BY field
                  HAVING 筛选
                  ORDER BY field
                  LIMIT 限制条数
二、关键字的执行优先级(重点)

1、from  库.表——找到表

2、where  条件——按照where指定的约束条件,去表中取出一条条记录

3、group by  分组条件——对取出的一条条记录分组,如果没有group by,整体作为一组

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

5、select——从虚拟表选择出需要的内容

6、distinct——去重,如果在查询中指定了DISTINCT子句,则会创建一张内存临时表(如果内存放不下,就需要存放在硬盘了)。这张临时表的表结构和上一步产生的虚拟表VT7是一样的,不同的是对进行DISTINCT操作的列增加了一个唯一索引,以此来除重复数据。

7、order by 排序字段——对虚拟表中的内容按照指定的列进行排序,然后返回一个新的虚拟表

8、limit n;——限制结果的显示条数,LIMIT子句从上一步得到的VT8虚拟表中选出从指定位置开始的指定行数据。对于没有应用ORDER BY的LIMIT子句,得到的结果同样是无序的,所以,很多时候,我们都会看到LIMIT子句会和ORDER BY子句一起使用。

详细见:http://www.cnblogs.com/linhaifeng/articles/7372774.html

三、简单查询

company.employee
    员工id      id                  int
    姓名        emp_name            varchar
    性别        sex                 enum
    年龄        age                 int
    入职日期     hire_date           date
    岗位        post                varchar
    职位描述     post_comment        varchar
    薪水        salary              double
    办公室       office              int
    部门编号     depart_id           int

#创建表
create table employee(
id int not null unique auto_increment,
name varchar(20) not null,
sex enum(‘male‘,‘female‘) not null default ‘male‘, #大部分是男的
age int(3) unsigned not null default 28,
hire_date date not null,
post varchar(50),
post_comment varchar(100),
salary double(15,2),
office int, #一个部门一个屋子
depart_id int
);

#查看表结构
mysql> desc employee;
+--------------+-----------------------+------+-----+---------+----------------+
| Field        | Type                  | Null | Key | Default | Extra          |
+--------------+-----------------------+------+-----+---------+----------------+
| id           | int(11)               | NO   | PRI | NULL    | auto_increment |
| name         | varchar(20)           | NO   |     | NULL    |                |
| sex          | enum(‘male‘,‘female‘) | NO   |     | male    |                |
| age          | int(3) unsigned       | NO   |     | 28      |                |
| hire_date    | date                  | NO   |     | NULL    |                |
| post         | varchar(50)           | YES  |     | NULL    |                |
| post_comment | varchar(100)          | YES  |     | NULL    |                |
| salary       | double(15,2)          | YES  |     | NULL    |                |
| office       | int(11)               | YES  |     | NULL    |                |
| depart_id    | int(11)               | YES  |     | NULL    |                |
+--------------+-----------------------+------+-----+---------+----------------+

#插入记录
#三个部门:教学,销售,运营
insert into employee(name,sex,age,hire_date,post,salary,office,depart_id) values
(‘egon‘,‘male‘,18,‘20170301‘,‘老男孩驻沙河办事处外交大使‘,7300.33,401,1), #以下是教学部
(‘alex‘,‘male‘,78,‘20150302‘,‘teacher‘,1000000.31,401,1),
(‘wupeiqi‘,‘male‘,81,‘20130305‘,‘teacher‘,8300,401,1),
(‘yuanhao‘,‘male‘,73,‘20140701‘,‘teacher‘,3500,401,1),
(‘liwenzhou‘,‘male‘,28,‘20121101‘,‘teacher‘,2100,401,1),
(‘jingliyang‘,‘female‘,18,‘20110211‘,‘teacher‘,9000,401,1),
(‘jinxin‘,‘male‘,18,‘19000301‘,‘teacher‘,30000,401,1),
(‘成龙‘,‘male‘,48,‘20101111‘,‘teacher‘,10000,401,1),

(‘歪歪‘,‘female‘,48,‘20150311‘,‘sale‘,3000.13,402,2),#以下是销售部门
(‘丫丫‘,‘female‘,38,‘20101101‘,‘sale‘,2000.35,402,2),
(‘丁丁‘,‘female‘,18,‘20110312‘,‘sale‘,1000.37,402,2),
(‘星星‘,‘female‘,18,‘20160513‘,‘sale‘,3000.29,402,2),
(‘格格‘,‘female‘,28,‘20170127‘,‘sale‘,4000.33,402,2),

(‘张野‘,‘male‘,28,‘20160311‘,‘operation‘,10000.13,403,3), #以下是运营部门
(‘程咬金‘,‘male‘,18,‘19970312‘,‘operation‘,20000,403,3),
(‘程咬银‘,‘female‘,18,‘20130311‘,‘operation‘,19000,403,3),
(‘程咬铜‘,‘male‘,18,‘20150411‘,‘operation‘,18000,403,3),
(‘程咬铁‘,‘female‘,18,‘20140512‘,‘operation‘,17000,403,3)
;

#ps:如果在windows系统中,插入中文字符,select的结果为空白,可以将所有字符编码统一设置成gbk

准备表和记录

#简单查询
    SELECT id,name,sex,age,hire_date,post,post_comment,salary,office,depart_id
    FROM employee;

    SELECT * FROM employee;

    SELECT name,salary FROM employee;

#避免重复DISTINCT
    SELECT DISTINCT post FROM employee;    

#通过四则运算查询
    SELECT name, salary*12 FROM employee;
    SELECT name, salary*12 AS Annual_salary FROM employee;
    SELECT name, salary*12 Annual_salary FROM employee;

#定义显示格式
   CONCAT() 函数用于连接字符串
   SELECT CONCAT(‘姓名: ‘,name,‘  年薪: ‘, salary*12)  AS Annual_salary
   FROM employee;

   CONCAT_WS() 第一个参数为分隔符
   SELECT CONCAT_WS(‘:‘,name,salary*12)  AS Annual_salary
   FROM employee;

   结合CASE语句:
   SELECT
       (
           CASE
           WHEN NAME = ‘egon‘ THEN
               NAME
           WHEN NAME = ‘alex‘ THEN
               CONCAT(name,‘_BIGSB‘)
           ELSE
               concat(NAME, ‘SB‘)
           END
       ) as new_name
   FROM
       emp;

mysql> select * from employee;                                                                                                                       +----+------------+--------+-----+------------+-----------------------------------------+--------------+------------+--------+-----------+
| id | name       | sex    | age | hire_date  | post                                    | post_comment | salary     | office | depart_id |
+----+------------+--------+-----+------------+-----------------------------------------+--------------+------------+--------+-----------+
|  1 | egon       | male   |  18 | 2017-03-01 | 老男孩驻沙河办事处外交大使              | NULL         |    7300.33 |    401 |         1 |
|  2 | alex       | male   |  78 | 2015-03-02 | teacher                                 | NULL         | 1000000.31 |    401 |         1 |
|  3 | wupeiqi    | male   |  81 | 2013-03-05 | teacher                                 | NULL         |    8300.00 |    401 |         1 |
|  4 | yuanhao    | male   |  73 | 2014-07-01 | teacher                                 | NULL         |    3500.00 |    401 |         1 |
|  5 | liwenzhou  | male   |  28 | 2012-11-01 | teacher                                 | NULL         |    2100.00 |    401 |         1 |
|  6 | jingliyang | female |  18 | 2011-02-11 | teacher                                 | NULL         |    9000.00 |    401 |         1 |
|  7 | jinxin     | male   |  18 | 1900-03-01 | teacher                                 | NULL         |   30000.00 |    401 |         1 |
|  8 | 成龙       | male   |  48 | 2010-11-11 | teacher                                 | NULL         |   10000.00 |    401 |         1 |
|  9 | 歪歪       | female |  48 | 2015-03-11 | sale                                    | NULL         |    3000.13 |    402 |         2 |
| 10 | 丫丫       | female |  38 | 2010-11-01 | sale                                    | NULL         |    2000.35 |    402 |         2 |
| 11 | 丁丁       | female |  18 | 2011-03-12 | sale                                    | NULL         |    1000.37 |    402 |         2 |
| 12 | 星星       | female |  18 | 2016-05-13 | sale                                    | NULL         |    3000.29 |    402 |         2 |
| 13 | 格格       | female |  28 | 2017-01-27 | sale                                    | NULL         |    4000.33 |    402 |         2 |
| 14 | 张野       | male   |  28 | 2016-03-11 | operation                               | NULL         |   10000.13 |    403 |         3 |
| 15 | 程咬金     | male   |  18 | 1997-03-12 | operation                               | NULL         |   20000.00 |    403 |         3 |
| 16 | 程咬银     | female |  18 | 2013-03-11 | operation                               | NULL         |   19000.00 |    403 |         3 |
| 17 | 程咬铜     | male   |  18 | 2015-04-11 | operation                               | NULL         |   18000.00 |    403 |         3 |
| 18 | 程咬铁     | female |  18 | 2014-05-12 | operation                               | NULL         |   17000.00 |    403 |         3 |
+----+------------+--------+-----+------------+-----------------------------------------+--------------+------------+--------+-----------+
18 rows in set (0.00 sec)

mysql> select id,name,salary from employee;
+----+------------+------------+
| id | name       | salary     |
+----+------------+------------+
|  1 | egon       |    7300.33 |
|  2 | alex       | 1000000.31 |
|  3 | wupeiqi    |    8300.00 |
|  4 | yuanhao    |    3500.00 |
|  5 | liwenzhou  |    2100.00 |
|  6 | jingliyang |    9000.00 |
|  7 | jinxin     |   30000.00 |
|  8 | 成龙       |   10000.00 |
|  9 | 歪歪       |    3000.13 |
| 10 | 丫丫       |    2000.35 |
| 11 | 丁丁       |    1000.37 |
| 12 | 星星       |    3000.29 |
| 13 | 格格       |    4000.33 |
| 14 | 张野       |   10000.13 |
| 15 | 程咬金     |   20000.00 |
| 16 | 程咬银     |   19000.00 |
| 17 | 程咬铜     |   18000.00 |
| 18 | 程咬铁     |   17000.00 |
+----+------------+------------+
18 rows in set (0.00 sec)

简单查询

  在需要去重查询时,可以利用distinct去除重复信息。

# distinct去除重复的职位信息
mysql> select distinct post from employee;
+-----------------------------------------+
| post                                    |
+-----------------------------------------+
| 老男孩驻沙河办事处外交大使              |
| teacher                                 |
| sale                                    |
| operation                               |
+-----------------------------------------+
4 rows in set (0.00 sec)

避免重复DISTINCT

  利用四则运算查询(加减乘除)得到需要的查询结果。针对四则运算的字段还可以取别名,以优化显示结果。

# 查看一个人的年薪
mysql> select name, salary*12 from employee;
+------------+-------------+
| name       | salary*12   |
+------------+-------------+
| egon       |    87603.96 |
| alex       | 12000003.72 |
| wupeiqi    |    99600.00 |
| yuanhao    |    42000.00 |
| liwenzhou  |    25200.00 |
| jingliyang |   108000.00 |
| jinxin     |   360000.00 |
| 成龙       |   120000.00 |
| 歪歪       |    36001.56 |
| 丫丫       |    24004.20 |
| 丁丁       |    12004.44 |
| 星星       |    36003.48 |
| 格格       |    48003.96 |
| 张野       |   120001.56 |
| 程咬金     |   240000.00 |
| 程咬银     |   228000.00 |
| 程咬铜     |   216000.00 |
| 程咬铁     |   204000.00 |
+------------+-------------+
18 rows in set (0.00 sec)

# 给年薪起一个别名
mysql> select name, salary*12 as Annual_salary from employee;
+------------+---------------+
| name       | Annual_salary |
+------------+---------------+
| egon       |      87603.96 |
| alex       |   12000003.72 |
| wupeiqi    |      99600.00 |
| yuanhao    |      42000.00 |
| liwenzhou  |      25200.00 |
| jingliyang |     108000.00 |
| jinxin     |     360000.00 |
| 成龙       |     120000.00 |
| 歪歪       |      36001.56 |
| 丫丫       |      24004.20 |
| 丁丁       |      12004.44 |
| 星星       |      36003.48 |
| 格格       |      48003.96 |
| 张野       |     120001.56 |
| 程咬金     |     240000.00 |
| 程咬银     |     228000.00 |
| 程咬铜     |     216000.00 |
| 程咬铁     |     204000.00 |
+------------+---------------+
18 rows in set (0.00 sec)

# 起别名不加as的方法
mysql> select name, salary*12 Annual_salary from employee;
+------------+---------------+
| name       | Annual_salary |
+------------+---------------+
| egon       |      87603.96 |
| alex       |   12000003.72 |
| wupeiqi    |      99600.00 |
| yuanhao    |      42000.00 |
| liwenzhou  |      25200.00 |
| jingliyang |     108000.00 |
| jinxin     |     360000.00 |
| 成龙       |     120000.00 |
| 歪歪       |      36001.56 |
| 丫丫       |      24004.20 |
| 丁丁       |      12004.44 |
| 星星       |      36003.48 |
| 格格       |      48003.96 |
| 张野       |     120001.56 |
| 程咬金     |     240000.00 |
| 程咬银     |     228000.00 |
| 程咬铜     |     216000.00 |
| 程咬铁     |     204000.00 |
+------------+---------------+
18 rows in set (0.00 sec)

四则运算及取别名方法

  利用concat和逗号自由定义显示格式

# concat()函数用于连接字符串
mysql> select concat(‘姓名:‘,name) from employee;
+------------------------+
| concat(‘姓名:‘,name)   |
+------------------------+
| 姓名:egon              |
| 姓名:alex              |
| 姓名:wupeiqi           |
| 姓名:yuanhao           |
| 姓名:liwenzhou         |
| 姓名:jingliyang        |
| 姓名:jinxin            |
| 姓名:成龙              |
| 姓名:歪歪              |
| 姓名:丫丫              |
| 姓名:丁丁              |
| 姓名:星星              |
| 姓名:格格              |
| 姓名:张野              |
| 姓名:程咬金            |
| 姓名:程咬银            |
| 姓名:程咬铜            |
| 姓名:程咬铁            |
+------------------------+
18 rows in set (0.00 sec)

mysql> select concat(‘姓名:‘,name,‘性别:‘,sex,‘年薪:‘,salary*12) as emp_info_salary from employee;   # as设置查询结果标题
+------------------------------------------------+
| emp_info_salary                                |
+------------------------------------------------+
| 姓名:egon性别:male年薪:87603.96                |
| 姓名:alex性别:male年薪:12000003.72             |
| 姓名:wupeiqi性别:male年薪:99600.00             |
| 姓名:yuanhao性别:male年薪:42000.00             |
| 姓名:liwenzhou性别:male年薪:25200.00           |
| 姓名:jingliyang性别:female年薪:108000.00       |
| 姓名:jinxin性别:male年薪:360000.00             |
| 姓名:成龙性别:male年薪:120000.00               |
| 姓名:歪歪性别:female年薪:36001.56              |
| 姓名:丫丫性别:female年薪:24004.20              |
| 姓名:丁丁性别:female年薪:12004.44              |
| 姓名:星星性别:female年薪:36003.48              |
| 姓名:格格性别:female年薪:48003.96              |
| 姓名:张野性别:male年薪:120001.56               |
| 姓名:程咬金性别:male年薪:240000.00             |
| 姓名:程咬银性别:female年薪:228000.00           |
| 姓名:程咬铜性别:male年薪:216000.00             |
| 姓名:程咬铁性别:female年薪:204000.00           |
+------------------------------------------------+
18 rows in set (0.00 sec)

# 想把薪资单独分出来,用concat和逗号拼接出想要的格式
mysql> select concat(‘姓名:‘,name,‘性别:‘,sex) as info, concat(‘年薪:‘, salary*12) as annual_salary from employee;
+--------------------------------+--------------------+
| info                           | annual_salary      |
+--------------------------------+--------------------+
| 姓名:egon性别:male             | 年薪:87603.96      |
| 姓名:alex性别:male             | 年薪:12000003.72   |
| 姓名:wupeiqi性别:male          | 年薪:99600.00      |
| 姓名:yuanhao性别:male          | 年薪:42000.00      |
| 姓名:liwenzhou性别:male        | 年薪:25200.00      |
| 姓名:jingliyang性别:female     | 年薪:108000.00     |
| 姓名:jinxin性别:male           | 年薪:360000.00     |
| 姓名:成龙性别:male             | 年薪:120000.00     |
| 姓名:歪歪性别:female           | 年薪:36001.56      |
| 姓名:丫丫性别:female           | 年薪:24004.20      |
| 姓名:丁丁性别:female           | 年薪:12004.44      |
| 姓名:星星性别:female           | 年薪:36003.48      |
| 姓名:格格性别:female           | 年薪:48003.96      |
| 姓名:张野性别:male             | 年薪:120001.56     |
| 姓名:程咬金性别:male           | 年薪:240000.00     |
| 姓名:程咬银性别:female         | 年薪:228000.00     |
| 姓名:程咬铜性别:male           | 年薪:216000.00     |
| 姓名:程咬铁性别:female         | 年薪:204000.00     |
+--------------------------------+--------------------+
18 rows in set (0.00 sec)

concat()函数连接字符串

# concat_ws()  第一个参数为分隔符,处理多条记录+分隔符更方便
mysql> select concat_ws(‘:‘, name, sex, salary) as emp_info from employee;
+---------------------------+
| emp_info                  |
+---------------------------+
| egon:male:7300.33         |
| alex:male:1000000.31      |
| wupeiqi:male:8300.00      |
| yuanhao:male:3500.00      |
| liwenzhou:male:2100.00    |
| jingliyang:female:9000.00 |
| jinxin:male:30000.00      |
| 成龙:male:10000.00        |
| 歪歪:female:3000.13       |
| 丫丫:female:2000.35       |
| 丁丁:female:1000.37       |
| 星星:female:3000.29       |
| 格格:female:4000.33       |
| 张野:male:10000.13        |
| 程咬金:male:20000.00      |
| 程咬银:female:19000.00    |
| 程咬铜:male:18000.00      |
| 程咬铁:female:17000.00    |
+---------------------------+
18 rows in set (0.00 sec)

concat_ws()优化处理记录和分隔符

  结合case语句,自定义复杂的显示格式。

# 结合CASE语句
mysql> SELECT
    -> (
    ->        CASE
    ->        WHEN NAME = ‘egon‘ THEN
    ->            NAME
    ->        WHEN NAME = ‘alex‘ THEN
    ->            CONCAT(name,‘_BIGSB‘)
    ->        ELSE
    ->            concat(NAME, ‘SB‘)
    ->        END
    ->    ) as new_name
    -> FROM
    ->    employee;
+--------------+
| new_name     |
+--------------+
| egon         |
| alex_BIGSB   |
| wupeiqiSB    |
| yuanhaoSB    |
| liwenzhouSB  |
| jingliyangSB |
| jinxinSB     |
| 成龙SB       |
| 歪歪SB       |
| 丫丫SB       |
| 丁丁SB       |
| 星星SB       |
| 格格SB       |
| 张野SB       |
| 程咬金SB     |
| 程咬银SB     |
| 程咬铜SB     |
| 程咬铁SB     |
+--------------+
18 rows in set (0.00 sec)

CASE语句自定义查询结果

小练习:

  1、查出所有员工的名字,薪资,格式为  <名字:egon>  <薪资:3000>

  2、查出所有岗位(去掉重复)

  3、查出所有员工名字,以及他们的年薪,年薪字段名为annual_year

mysql> select concat("<名字:",name,">") as NAME, concat("<薪资:",salary,">") as SALARY from employee;
+---------------------+---------------------+
| NAME                | SALARY              |
+---------------------+---------------------+
| <名字:egon>         | <薪资:7300.33>      |
| <名字:alex>         | <薪资:1000000.31>   |
| <名字:wupeiqi>      | <薪资:8300.00>      |
| <名字:yuanhao>      | <薪资:3500.00>      |
| <名字:liwenzhou>    | <薪资:2100.00>      |
| <名字:jingliyang>   | <薪资:9000.00>      |
| <名字:jinxin>       | <薪资:30000.00>     |
| <名字:成龙>         | <薪资:10000.00>     |
| <名字:歪歪>         | <薪资:3000.13>      |
| <名字:丫丫>         | <薪资:2000.35>      |
| <名字:丁丁>         | <薪资:1000.37>      |
| <名字:星星>         | <薪资:3000.29>      |
| <名字:格格>         | <薪资:4000.33>      |
| <名字:张野>         | <薪资:10000.13>     |
| <名字:程咬金>       | <薪资:20000.00>     |
| <名字:程咬银>       | <薪资:19000.00>     |
| <名字:程咬铜>       | <薪资:18000.00>     |
| <名字:程咬铁>       | <薪资:17000.00>     |
+---------------------+---------------------+
18 rows in set (0.00 sec)

mysql> select distinct post from employee;
+-----------------------------------------+
| post                                    |
+-----------------------------------------+
| 老男孩驻沙河办事处外交大使              |
| teacher                                 |
| sale                                    |
| operation                               |
+-----------------------------------------+
4 rows in set (0.00 sec)

mysql> select name, salary*12 as annual_year from employee;
+------------+-------------+
| name       | annual_year |
+------------+-------------+
| egon       |    87603.96 |
| alex       | 12000003.72 |
| wupeiqi    |    99600.00 |
| yuanhao    |    42000.00 |
| liwenzhou  |    25200.00 |
| jingliyang |   108000.00 |
| jinxin     |   360000.00 |
| 成龙       |   120000.00 |
| 歪歪       |    36001.56 |
| 丫丫       |    24004.20 |
| 丁丁       |    12004.44 |
| 星星       |    36003.48 |
| 格格       |    48003.96 |
| 张野       |   120001.56 |
| 程咬金     |   240000.00 |
| 程咬银     |   228000.00 |
| 程咬铜     |   216000.00 |
| 程咬铁     |   204000.00 |
+------------+-------------+
18 rows in set (0.00 sec)

练习题答案

四、WHERE约束

原文地址:https://www.cnblogs.com/xiugeng/p/9028541.html

时间: 2024-10-04 21:26:00

mysql四-1:单表查询的相关文章

mysql四-1:单表查询

阅读目录 一 单表查询的语法 二 关键字的执行优先级(重点) 三 简单查询 四 WHERE约束 五 分组查询:GROUP BY 六 HAVING过滤 七 查询排序:ORDER BY 八 限制查询的记录数:LIMIT 九 使用正则表达式查询 一 单表查询的语法 SELECT 字段1,字段2... FROM 表名 WHERE 条件 GROUP BY field HAVING 筛选 ORDER BY field LIMIT 限制条数 二 关键字的执行优先级(重点) 重点中的重点:关键字的执行优先级 f

Mysql(四)-1:单表查询

一 单表查询的语法 SELECT 字段1,字段2... FROM 表名 WHERE 条件 GROUP BY field HAVING 筛选 ORDER BY field LIMIT 限制条数 二 关键字的执行优先级(重点) 重点中的重点:关键字的执行优先级 from where group by having select distinct order by limit 1.找到表:from 2.拿着where指定的约束条件,去文件/表中取出一条条记录 3.将取出的一条条记录进行分组group

mysql简单的单表查询详解

mysql简单的单表查询详解 MySQL的查询操作: 单表查询:简单查询 多表查询:连续查询 联合查询: 选择和投影: 投影:挑选要显示的字段 选择:挑选符合条件的行 投影:SELECT 字段1, 字段2, ... FROM tb_name;  SELECT * FROM tb_name; 选择:SELECT 字段1, ... FROM tb_name WHERE 子句; 布尔条件表达式 mysql> CREATE TABLE students (SID INT UNSIGNED AUTO_IN

MySQL学习9 - 单表查询

一.单表查询的语法 二.关键字的执行优先级(重点) 三.单表查询示例 1.where约束 2.group by分组查询 3.聚合函数 4.HAVING过滤 5.order by查询排序 6.limit 限制查询的记录数 一.单表查询的语法 SELECT 字段1,字段2... FROM 表名 WHERE 条件 GROUP BY field HAVING 筛选 ORDER BY field LIMIT 限制条数 二.关键字的执行优先级(重点) 重点中的重点:关键字的执行优先级 from where

MySQL 数据库之单表查询

一.查询语法 SELECT 字段1,字段2... FROM 表名 WHERE 条件 GROUP BY field HAVING 筛选 ORDER BY field LIMIT 限制条数 二.关键字执行优先级 from where group by having select distinct order by limit 1.找到表:from 2.拿着where指定的约束条件,去文件/表中取出一条条记录 3.将取出的一条条记录进行分组group by,如果没有group by,则整体作为一组 4

mysql四-2:多表查询

阅读目录 一 介绍 二 多表连接查询 三 符合条件连接查询 四 子查询 五 综合练习 一 介绍 本节主题 多表连接查询 复合条件连接查询 子查询 准备表 #建表 create table department( id int, name varchar(20) ); create table employee( id int primary key auto_increment, name varchar(20), sex enum('male','female') not null defau

Day2 MySql函数以及单表查询

SQL中的运算符 算术运算符 --算术运算符(子句) select 1+1; select 2-1; select 2*2; select 3/4; --0.75 select 3/0; --NULL select 3 div 4; --0 比较运算符> < >= <= != = --0表示false,1表示true select 1=1; --1 select 1!=1; --0 逻辑运算符  and or ! select 1=1 and 1!=1; 位运算符 | ^ &

mysql 数据操作 单表查询 通过四则运算查询

#通过四则运算查询 SELECT name, salary*12 FROM employee; SELECT name, salary*12 AS Annual_salary FROM employee; SELECT name, salary*12 Annual_salary FROM employee; 查看年薪salary*12 mysql> select name,salary*12 from employee; +------------+-------------+ | name |

mysql 数据操作 单表查询 简单查询 避免重复DISTINCT

创建数据库company create database company charset=utf8; use company; company.employee 员工id id int 姓名 emp_name varchar 性别 sex enum 年龄 age int 入职日期 hire_date date 岗位 post varchar 职位描述 post_comment varchar 薪水 salary double 办公室 office int 部门编号 depart_id int #

mysql 数据操作 单表查询 group by 练习

1. 查询岗位名以及岗位包含的所有员工名字 mysql> select post,group_concat(name) from employee group by post; +-----------+-------------------------------------------------+ | post | group_concat(name) | +-----------+-------------------------------------------------+ | o