数据库--day6

  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  

 

posted @ 2020-04-29 12:21  亚斯娜  阅读(105)  评论(0)    收藏  举报