第15周所学MySQL笔记——连接查询、子查询、(插入,修改,删除)数据、字符,数字函数

第15周所学MySQL笔记——连接查询、子查询、(插入,修改,删除)数据

一.连接查询:

(一).内连接查询 inner join

关键字:inner join on
语 句:select * from one_table a inner join two_table on onw.o_id = t.t_id;
说明: 组合两个表中的记录,返回关联字段的记录,也就是返回两个表的的交集部分。

(二).左连接查询 left join

关键字:left join on /left outer join on
语句: select * from one_table a left join two_table on onw.o_id = t.t_id;
说明:left join 是left outer join 的简称,它的全称是左外连接,是外连接中的一种。左(外)连接,左表(one_table)的记录将会全部表示出来,而右表(two_table)只会显示符合搜索条件的记录。右表记录不足的地方均为NULL.

(三). 右连接 reght join

关键字:right join on /right outer join on
语句: select * from one_table a right join two_table on onw.o_id = t.t_id;
说明:right join 是right outer join 的简称,它的全称是右外连接,是外连接中的一种。与左(外)连接相反,右(外)连接,右表(one_table)的记录将会全部表示出来,而左表(two_table)只会显示符合搜索条件的记录。左表记录不足的地方均为NULL.

(四).全连接 union

关键字: union /union all
语句:(select colum1,coulum2…colum N from tableA) union / union all (select colum1,coulum2…colum N from tableB)
注意:1.通过union 连接的sql它们分别单独取出的列数必须相同;
2.不要求合并的表名称相同时,以第一个sql表列名为准;
3. 使用union 时,完全相等的行,将会被合并,由于合并比较耗时,一般不直接使用union 进行合并,而是通常采用union all 进行合并;
4. 被union 连接的sql 子句,单个子句中不用写order by ,因为不会右排序的效果,但可以对最终的结果集进行排序;

二. 子查询

1.什么是子查询?
子查询就是在查询中有两个查询语句,一个为主查询还有一个子查询。并且先执行子查询再执行主查询。
2.子查询需要注意有哪十大问题?
(1、子查询语句中的小括号
(2、子查询的书写风格
(3、可以使用的子查询位置(where,select,having,from)
(4、不可以使用的子查询位置(group by)
(5、重点:from后面的子查询
(6、主查询和子查询可以不是同一张表
(7、一般再子查询中不使用排序,只有在top-N分析问题中,必须对子查询排序
(8、一般先执行子查询,再执行主查询;但相关子查询例外
(9、单行子查询只能使用单行操作符;多行子查询只能使用多行操作符
(10.注意:子查询中是null值问题

三. 插入、更新与删除数据

(一).插入数据:

语法:
insert into 表名(列名,......) values (值1,...);
注意:
1.插入的类型与列的类型一致或兼容;
2.不可以为NULL的列必须插入值,可以为NULL的列如何插入值?
 答:方一:列名的值写null,方二:列名和值都不写。
3.列的顺序可以不唯一,但是值要和列名对齐。
4.列数和值的个数必须一致。
5.可以省略列名,默认所有列,而且列的顺序和表中列的顺序一致。

(二). 修改数据:

        语法:
        update 表名
        set 列=新值,列=新值,...
        where 筛选条件 ;
1.分单表修改和多表修改。

(三). 删除数据:

方法一:delete
语法:
1.单表的删除 :
delets from 表名 where 筛选条件
2.多表的删除 【补充】

方法二:truncate
语法: truncate table 表名 ;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值