1 #外连接
2 /*
3 一个表中有 另一个表没有
4 外连接查询结果为主表中的所有记录
5 如果从表中有和他匹配的,则显示匹配的值
6 如果没有匹配的,则显示null
7 左外;主表是left join左边的
8 右外;主表是right join右边的
9
10 */
11 #查询没有男朋友的女生
12 SELECT
13 b.name,
14 bo.*
15 FROM
16 beauty AS b
17 LEFT JOIN boys AS bo
18 ON b.`boyfriend_id` = bo.id
19 WHERE bo.id IS NULL ;#用主键判断null
20
21 #查询哪个部门没有员工
22 SELECT d.*,e.`employee_id`
23 FROM `employees` AS e RIGHT JOIN `departments` AS d
24 ON e.`department_id`=d.`department_id`
25 WHERE e.`employee_id` IS NULL
26
27 #全外--暂不支持
28 #------------------------------------------------------#
29 #------------------------------------------------------#
30 #-----------------插入法一-----------------------------#
31 #dml数据操作语言--插入insert修改update删除delete
32 /*insert
33 表明 列名 新值
34 insert into 表名(列名...)
35 values(值1...);
36
37 SELECT * FROM beauty
38 */
39 INSERT INTO beauty (id,NAME,sex,borndate,phone,photo,boyfriend_id)
40 VALUES(14,'唐艺昕','女','1990-4-23','188888888',NULL, 2)
41 # int varchar char datetime varcher blob int
42 #插入的类型要保持一致
43 /*
44 有些字段是nullalbe,可以为null,那么再插入时可以省略,
45 或者直接填成null。
46 有些在省略后,如果在设置字段的时候有设置默认值,
47 那么将自动插入默认值。
48 */
49 INSERT INTO beauty (id,NAME,phone)
50 VALUES(15,'啦啦','188888888')
51
52 #可以省略列名,则默认所有列,且顺序不变
53 INSERT INTO beauty
54 VALUES(16,'关晓彤','女','1990-4-23','188888888',NULL, 2)
55 #--------------插入法二------------------------------------#
56 INSERT INTO beauty
57 SET id=19,NAME='刘涛',phone='110';
58 #方法一 支持一次插入多行
59 INSERT INTO beauty
60 VALUES(20,'唐艺昕','女','1990-4-23','188888888',NULL,2)
61 ,(17,'唐艺昕','女','1990-4-23','188888888',NULL,2)
62 ,(18,'唐艺昕','女','1990-4-23','188888888',NULL,2);
63 #方法一支持子查询
64
65 #----------------修改----------------------------------#
66 #----------------修改----------------------------------#
67 #----------------修改----------------------------------#
68 #----------------修改----------------------------------#
69 /*
70 修改单表
71 update 表名
72 set 列=新值,列=新值
73 where 筛选条件;//筛选出哪一行修改
74
75
76 修改多表sql92
77 update 表1 别名,表2 别名
78 set 列=值,...
79 where 连接条件
80 and 筛选条件
81
82 sql99
83 update 表1 别名
84 连接类型 表2 别名
85 on 连接条件
86 set 列=值,...
87 where 筛选条件
88
89 */
90 SELECT * FROM beauty
91
92 #把姓唐的人电话改成110
93 UPDATE beauty
94 SET phone='110'
95 WHERE NAME LIKE'唐%'
96
97 #修改多表 修改张无忌的女朋友手机号为120
98 UPDATE boys AS b
99 INNER JOIN beauty AS be
100 ON b.id=be.boyfriend_id
101 SET be.phone='114'
102 WHERE b.boyname='张无忌'
103
104 #修改没有男朋友的女生 的男朋友编号 为2号
105 UPDATE
106 boys
107 RIGHT JOIN beauty
108 ON boys.`id` = beauty.`boyfriend_id`
109 SET beauty.`boyfriend_id` = 2
110 WHERE boys.`id` IS NULL
111
112 #--------------删除1------------------------------#
113 单表的删除
114 DELETE FROM 表名
115 WHERE 筛选条件// 筛选出要删除的行
116
117 多表的删除
118
119 #----------删除2-----------------#
120 TRUNCATE TABLE 表名//删除整个表
121
122
123 #1、删除手机号9结尾的女生信息
124 DELETE FROM beauty WHERE phone LIKE '%9'
125 SELECT * FROM beauty
126
127 多表删除
128 删除张无忌的女朋友的信息
129
130 DELETE beauty
131 FROM boys INNER JOIN beauty
132 ON boys.`id`=beauty.`boyfriend_id`
133 WHERE boys.`boyName`='张无忌'
134
135 删除黄晓明及他女朋友信息
136 DELETE boys , beauty
137 FROM boys INNER JOIN beauty
138 ON boys.`id`=beauty.`boyfriend_id`
139 WHERE boys.`boyName`='黄晓明'
140