wtf

昨日回顾:

1.表的操作:
增:
create table 表名(
字段名 字段类型 [字段的约束],
字段名 字段类型 [字段的约束]
)charset utf8;

字段类型:
数字:
整数
tinyint
smallint
int
mediumint
bigint

区别:取值的范围不一样,加上unsigned,代表取无符号值,只适用于整型。
浮点数:
float
double
decimal(m,d) 非常精确,m代表总的数字位数,不包含小数点,d是小数点后的数字位数。
字符串类型:
char()
varchar()
区别:char() 有固定的字节数,不论存了多少字节
varchar() 总字节数是已经存了的字节数加上一位用来放字节个数的字节
时间日期类型:datetime 年月日 时分秒
枚举 :enum()会列出所有可能的值,添加不是括号里的值会报错。
列的约束(可选参数)
not null 不能为null
auto_increment 自增
primary key 主键索引 加快查询速度
default 默认值

删除:drop table 表名;
修改:
alter table 表名 add 字段名 字段类型 [字段的约束];
alter table 表名 add 字段名 字段类型 [字段的约束] first;
alter table 表名 add 字段名 字段类型 [字段的约束] after 字段名;
删除字段:alter table 表名 drop 字段名;
修改字段:alter table 表名 modify 字段名 数据类型 [字段的约束];
修改字段内容:alter table 表名 change 旧字段名 新字段名 新数据类型 [完整性约束];
查表:show tables;
2.操作数据行
增:insert into 表名(列1,列2) values (值1,值2);
删:delete from 表名;
delete from 表名 where 条件;
truncate 表名;
改:update 表名 set 字段名=值 where 条件;
查:selete * from 表名 [where 条件];
避免重复:selet distinct 字段名 from 表名;
条件:where 字段名 between ... and .../字段名 in(一些值);

今日内容:

0.null 和 not null

使用null的时候
mysql> create table t1(
    -> id int auto_increment primary key,
    -> name varchar(32),
    -> email varchar(32)
    -> )charset utf8;
Query OK, 0 rows affected (0.02 sec)

mysql> insert into t1 (email) values ('sjjjs');
Query OK, 1 row affected (0.00 sec)

mysql> select * from t1;
+----+------+-------+
| id | name | email |
+----+------+-------+
|  1 | NULL | sjjjs |
+----+------+-------+
1 row in set (0.00 sec)
mysql> select * from t1 where name='';
Empty set (0.00 sec)

mysql> select * from t1 where name is null;
+----+------+-------+
| id | name | email |
+----+------+-------+
|  1 | NULL | sjjjs |
+----+------+-------+
1 row in set (0.00 sec)
使用 not null 的时候
mysql> create table t2(
    -> id int auto_increment primary key,
    -> name varchar(32) not null default '',
    -> email varchar(32) not null default ''
    -> )charset utf8;
Query OK, 0 rows affected (0.02 sec)

mysql> insert into t2 (email) values ('sjjhd');
Query OK, 1 row affected (0.00 sec)

mysql> select * from t2;
+----+------+-------+
| id | name | email |
+----+------+-------+
|  1 |      | sjjhd |
+----+------+-------+
1 row in set (0.00 sec)
mysql> select * from t2 where name='';
+----+------+-------+
| id | name | email |
+----+------+-------+
|  1 |      | sjjhd |
+----+------+-------+
1 row in set (0.00 sec)

1.单表操作:

分组:
-group by
a.分组指的是:将所有记录按照某个相同字段进行归类,比如针对员工
信息表的职位分组,或者按照性别进行分组等
用法:
select 聚合函数,选取的字段 from 表名 group by 分组的字段;
group by :是分组的关键词
group by 必须和聚合函数 (count)一起出现
where 条件语句和group by 分组语句的先后顺序:
where>group by>having

例子:
创建公司员工employee表:

mysql>create table employee(
    ->id int unsigned auto_increment primary key,
    ->name varchar(32) not null default '',
    ->gender enum('male','female') not null default 'male',
    ->age int not null default 0,
    ->hire date,
    ->post char(30) not null default '',
    ->post_comment varchar(20),
    ->salary decimal(7,2),
    ->office int,
    ->depart_id int
    ->)charset utf8;
Query OK, 0 rows affected (0.02 sec)

插入记录:
三个部门:教学,销售,运营

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

1.以性别为例,进行分组,统计一下男生和女生的人数是多少个:

select count(id),gender from employee group by gender;
+-----------+--------+
| count(id) | gender |
+-----------+--------+
|        10 | male   |
|         8 | female |
+-----------+--------+
2 rows in set (0.00 sec)
mysql> select count(id) as total,gender from employee group by gender;
+-------+--------+
| total | gender |
+-------+--------+
|    10 | male   |
|     8 | female |
+-------+--------+
2 rows in set (0.00 sec)
2.对部门进行分组,求出每个部门年龄最大的那个人
mysql> select depart_id,max(age) from employee group by depart_id;
+-----------+----------+
| depart_id | max(age) |
+-----------+----------+
|         1 |       81 |
|         2 |       48 |
|         3 |       28 |
+-----------+----------+
3 rows in set (0.00 sec)
3.min 求最小的
4.sum:求和
5.count :计数 数量
6.avg:平均数
count sum的区别
mysql> select depart_id,count(age) from employee group by depart_id;
+-----------+------------+
| depart_id | count(age) |
+-----------+------------+
|         1 |          8 |
|         2 |          5 |
|         3 |          5 |
+-----------+------------+
3 rows in set (0.00 sec)

mysql> select depart_id,sum(age) from employee group by depart_id;
+-----------+----------+
| depart_id | sum(age) |
+-----------+----------+
|         1 |      362 |
|         2 |      150 |
|         3 |      100 |
+-----------+----------+
3 rows in set (0.00 sec)

having :表示对group by 之后的数据,进行二次筛选
mysql> select depart_id,avg(age) from employee group by depart_id;
+-----------+----------+
| depart_id | avg(age) |
+-----------+----------+
|         1 |  45.2500 |
|         2 |  30.0000 |
|         3 |  20.0000 |
+-----------+----------+
3 rows in set (0.00 sec)

mysql> select depart_id,avg(age) from employee group by depart_id having avg(age
)>35;
+-----------+----------+
| depart_id | avg(age) |
+-----------+----------+
|         1 |  45.2500 |
+-----------+----------+
1 row in set (0.00 sec)
mysql> select depart_id,avg(age) as pinjun from employee group by depart_id havi
ng avg(age)>35;
+-----------+---------+
| depart_id | pinjun  |
+-----------+---------+
|         1 | 45.2500 |
+-----------+---------+
1 row in set (0.00 sec)

升序 降序:order by
order by 字段名 asc(升序) desc(降序)
如果对多个字段进行排序,
比如:age desc,id asc 表示:先对age进行降序,如果age 有相同的行,则对id进行升序

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

mysql> select * from employee limit 9,10;
+----+--------+-----+------------+-----------+--------------+----------+------
+-----------+--------+
| id | name   | age | hire       | post      | post_comment | salary   | offic
| depart_id | gender |
+----+--------+-----+------------+-----------+--------------+----------+------
+-----------+--------+
| 10 | 丫丫   |  38 | 2010-11-01 | sale      | NULL         |  2000.35 |    40
|         2 | female |
| 11 | 丁丁   |  18 | 2011-03-12 | sale      | NULL         |  1000.37 |    40
|         2 | female |
| 12 | 星星   |  18 | 2016-05-13 | sale      | NULL         |  3000.29 |    40
|         2 | female |
| 13 | 格格   |  28 | 2017-01-27 | sale      | NULL         |  4000.33 |    40
|         2 | female |
| 14 | 张野   |  28 | 2016-03-11 | operation | NULL         | 10000.13 |    40
|         3 | male   |
| 15 | 程咬金 |  18 | 1997-03-12 | operation | NULL         | 20000.00 |    40
|         3 | male   |
| 16 | 程咬银 |  18 | 2013-03-11 | operation | NULL         | 19000.00 |    40
|         3 | female |
| 17 | 程咬铜 |  18 | 2015-04-11 | operation | NULL         | 18000.00 |    40
|         3 | male   |
| 18 | 程咬铁 |  18 | 2014-05-12 | operation | NULL         | 17000.00 |    40
|         3 | female |
+----+--------+-----+------------+-----------+--------------+----------+------
+-----------+--------+
9 rows in set (0.00 sec)
总结:使用的顺序:select * from 表名 where 条件 group by 条件 having 条件 order by 条件 limit 条件
where>group by>having>order by>limit

2.多表操作:

外键 使用的原因
a.减少占用空间
b.只需要修改约束表中一次,其余的表中的数据就会相应修改
一对多:
使用方法:
constraint 外键名 foreign key (被约束的字段) references 约束的表(约束的字段)

create table department(
					id int auto_increment primary key,
					name varchar(32) not null default ''
				)charset utf8;

				insert into department (name) values ('研发部');
				insert into department (name) values ('运维部');
				insert into department (name) values ('前台部');
				insert into department (name) values ('小卖部');

				create table userinfo (
					id int auto_increment primary key,
					name varchar(32) not null default '',
					depart_id int not null default 1,

					constraint fk_user_depart foreign key (depart_id) references department(id)
				)charset utf8;

				insert into userinfo (name, depart_id) values ('zekai', 1);
				insert into userinfo (name, depart_id) values ('xxx', 2);
				insert into userinfo (name, depart_id) values ('zekai1', 3);
				insert into userinfo (name, depart_id) values ('zekai2', 4);
				insert into userinfo (name, depart_id) values ('zekai3', 1);
				insert into userinfo (name, depart_id) values ('zekai4', 2);
多对多:
create table boy (
					id int auto_increment primary key,
					bname varchar(32) not null default ''
				)charset utf8;

				insert into boy (bname) values ('jshsdh'),('shdjj'),('uwe');
mysql> select * from boy;
+----+--------+
| id | bname  |
+----+--------+
|  1 | jshsdh |
|  2 | shdjj  |
|  3 | uwe    |
+----+--------+
3 rows in set (0.00 sec)
				create table girl (
					id int auto_increment primary key,
					gname varchar(32) not null default ''
				)charset utf8;
				insert into girl (gname) values ('ejfdh'),('wuei'),('iwuye'),('iwywy'),('jdggd'),('kjhgd');
mysql> select * from girl;
+----+-------+
| id | gname |
+----+-------+
|  1 | ejfdh |
|  2 | wuei  |
|  3 | iwuye |
|  4 | iwywy |
|  5 | jdggd |
|  6 | kjhgd |
+----+-------+
6 rows in set (0.00 sec)
				create table boy2girl (
					id int auto_increment primary key,
					bid int not null default 1,
					gid int not null default 1,

					constraint fk_boy2girl_boy foreign key (bid) references boy(id),
					constraint fk_boy2girl_girl foreign key (gid) references girl(id)
				)charset utf8;

				insert into boy2girl (bid, gid) values (1,1),(1,2),(2,2),(3,3),(2,3);
mysql>  select * from boy2girl;
+----+-----+-----+
| id | bid | gid |
+----+-----+-----+
|  1 |   1 |   1 |
|  2 |   1 |   2 |
|  3 |   2 |   2 |
|  4 |   3 |   3 |
|  5 |   2 |   3 |
+----+-----+-----+
5 rows in set (0.00 sec)
mysql> select * from boy left join boy2girl on boy.id=boy2girl.bid left join gir
l on girl.id=boy2girl.gid;
+----+--------+------+------+------+------+-------+
| id | bname  | id   | bid  | gid  | id   | gname |
+----+--------+------+------+------+------+-------+
|  1 | jshsdh |    1 |    1 |    1 |    1 | ejfdh |
|  1 | jshsdh |    2 |    1 |    2 |    2 | wuei  |
|  2 | shdjj  |    3 |    2 |    2 |    2 | wuei  |
|  2 | shdjj  |    5 |    2 |    3 |    3 | iwuye |
|  3 | uwe    |    4 |    3 |    3 |    3 | iwuye |
+----+--------+------+------+------+------+-------+
5 rows in set (0.00 sec)
mysql> select bname,gname from boy left join boy2girl on boy.id=boy2girl.bid lef
t join girl on girl.id=boy2girl.gid;
+--------+-------+
| bname  | gname |
+--------+-------+
| jshsdh | ejfdh |
| jshsdh | wuei  |
| shdjj  | wuei  |
| shdjj  | iwuye |
| uwe    | iwuye |
+--------+-------+
5 rows in set (0.00 sec)
mysql> select bname,gname from boy left join boy2girl on boy.id=boy2girl.bid lef
t join girl on girl.id=boy2girl.gid where bname='jshsdh';
+--------+-------+
| bname  | gname |
+--------+-------+
| jshsdh | ejfdh |
| jshsdh | wuei  |
+--------+-------+
2 rows in set (0.00 sec)
一对一:
user :
					id   name  age
					1    zekai  18
					2    zhangsan 23
					3    xxxx   19

				由于salary是比较敏感的字段,因此我们需要将此字段单独拆出来, 变成一张独立的表

				private:

					id  salary   uid  (外键 + unique)
					1    5000     1
					2    6000     2
					3    3000     3


				create table user (
					id int auto_increment primary key,
					name varchar(32) not null default ''
				)charset=utf8;

				insert into user (name) values ('zhangsan'),('zekai'),('kkk');


				create table priv(
					id int auto_increment primary key,
					salary int not null default 0,
					uid int not null default 1,

					constraint fk_priv_user foreign key (uid) references user(id),
					unique(uid)
				)charset=utf8;

				insert into priv (salary, uid) values (2000, 1);
				insert into priv (salary, uid) values (2800, 2);
				insert into priv (salary, uid) values (3000, 3);
多表联查:
mysql> select * from department;
+----+--------+
| id | name   |
+----+--------+
|  1 | 研发部 |
|  2 | 运维部 |
|  3 | 前台部 |
|  4 | 小卖部 |
+----+--------+
4 rows in set (0.00 sec)

mysql> select * from userinfo;
+----+--------+-----------+
| id | name   | depart_id |
+----+--------+-----------+
|  1 | zekai  |         1 |
|  2 | xxx    |         2 |
|  3 | zekai1 |         3 |
|  4 | zekai2 |         4 |
|  5 | zekai3 |         1 |
|  6 | zekai4 |         2 |
+----+--------+-----------+
6 rows in set (0.00 sec)
left join ...on...
mysql> select * from userinfo left join department on depart_id = department.id;

+----+--------+-----------+------+--------+
| id | name   | depart_id | id   | name   |
+----+--------+-----------+------+--------+
|  1 | zekai  |         1 |    1 | 研发部 |
|  5 | zekai3 |         1 |    1 | 研发部 |
|  2 | xxx    |         2 |    2 | 运维部 |
|  6 | zekai4 |         2 |    2 | 运维部 |
|  3 | zekai1 |         3 |    3 | 前台部 |
|  4 | zekai2 |         4 |    4 | 小卖部 |
+----+--------+-----------+------+--------+
6 rows in set (0.00 sec)

mysql> select userinfo.name as uname,department.name as dname from userinfo left
 join department on depart_id=department.id;
+--------+--------+
| uname  | dname  |
+--------+--------+
| zekai  | 研发部 |
| zekai3 | 研发部 |
| xxx    | 运维部 |
| zekai4 | 运维部 |
| zekai1 | 前台部 |
| zekai2 | 小卖部 |
+--------+--------+
6 rows in set (0.00 sec)
right join...on 
mysql> insert into department (name) values ('财务部');
Query OK, 1 row affected (0.00 sec)
mysql> select * from department;
+----+--------+
| id | name   |
+----+--------+
|  1 | 研发部 |
|  2 | 运维部 |
|  3 | 前台部 |
|  4 | 小卖部 |
|  5 | 财务部 |
+----+--------+
5 rows in set (0.00 sec)
mysql> select * from userinfo;
+----+--------+-----------+
| id | name   | depart_id |
+----+--------+-----------+
|  1 | zekai  |         1 |
|  2 | xxx    |         2 |
|  3 | zekai1 |         3 |
|  4 | zekai2 |         4 |
|  5 | zekai3 |         1 |
|  6 | zekai4 |         2 |
+----+--------+-----------+
6 rows in set (0.00 sec)
mysql> select userinfo.name as uname,department.name as dname from userinfo righ
t join department on depart_id=department.id;
+--------+--------+
| uname  | dname  |
+--------+--------+
| zekai  | 研发部 |
| zekai3 | 研发部 |
| xxx    | 运维部 |
| zekai4 | 运维部 |
| zekai1 | 前台部 |
| zekai2 | 小卖部 |
| NULL   | 财务部 |
+--------+--------+
7 rows in set (0.00 sec)
inner join
mysql> select * from department inner join userinfo on department.id=userinfo.de
part_id;
+----+--------+----+--------+-----------+
| id | name   | id | name   | depart_id |
+----+--------+----+--------+-----------+
|  1 | 研发部 |  1 | zekai  |         1 |
|  1 | 研发部 |  5 | zekai3 |         1 |
|  2 | 运维部 |  2 | xxx    |         2 |
|  2 | 运维部 |  6 | zekai4 |         2 |
|  3 | 前台部 |  3 | zekai1 |         3 |
|  4 | 小卖部 |  4 | zekai2 |         4 |
+----+--------+----+--------+-----------+
6 rows in set (0.00 sec)
posted on 2019-10-30 20:28  wtfss  阅读(132)  评论(0)    收藏  举报