3、mysql表的操作

目录

表连接:

笛卡尔积:

视图:

创建视图:create view tmp as select * from student_info where age = 25;

查看视图结构:desc tmp;

删除视图:drop view tmp;

事务和锁:


表连接:

union:

结果合并,同一张表union的结果通常可以使用or完成,可以多张表的查询结果合并,查询结果的列名以第一次sql语句的结果列为准。

要求:

两次查询的列数量一致即可。

建议:

查询的列类型也一样:

注意1:此种方式取出的结果集中有完全相同的列和值,直接合并成一行(去重复)。

解决方法:使用union all

注意2:如果子句中有order by 及 limit这些必须要用括号括起来,并且必须要和limit连用,不然结果可能出现问题。

笛卡尔积:

假设集合A={a, b},集合B={0, 1, 2},则两个集合的笛卡尔积为{(a, 0), (a, 1), (a, 2), (b, 0), (b, 1), (b, 2)}。

所以,两张表连接相当于两张表相乘。 select * from a,b 结果为两张表的元素的乘机。

表连接:join

左连接(left join):左表为准,到右表中找匹配的数据,如果找到就拿出来,找不到就用null补齐。

右连接(right join):右表为准,到左表中找匹配的数据,如果找到就拿出来,找不到用null补齐,左右连接可以相互转化。

内连接(inner join):内连接是左右连接的交集。

视图:

视图是由查询结果形成的一张虚拟表。

视图是对若干张基本表的引用,一张虚拟表,查询语句的执行的结果,不存储具体的数据(基本表数据发生了改变,视图也会跟着改变);

可以跟基本表一样,进行增删改查,但是增删改操作有条件限制;

创建视图:create view tmp as select * from student_info where age = 25;

查看视图结构:desc tmp;

show create table tmp;

删除视图:drop view tmp;

对视图的修改必须满足:

1、视图的数据和表一一对应时可以修改

2、视图必须包含表中所没有默认值的列

SQL执行顺序,执行计划

其中select和from是必须的,其他关键词是可选的,这六个关键词的执行顺序

与sql语句的书写顺序并不是一样的,而是按照下面的顺序来执行:

from--where--group by--having--select--order by

from:需要从哪个数据表检索数据

where:过滤表中数据的条件

group by:如何将上面过滤出的数据分组

having:对上面已经分组的数据进行过滤的条件

select:查看结果集中的哪个列,或列的计算结果

order by:按照什么样的顺序来查看返回的数据

执行计划:expain select * .....

事务和锁:

在 MySQL 中只有使用了 Innodb 数据库引擎的数据库或表才支持事务。 事务处理可以用来维护数据库的完整性,保证成 批的 SQL 语句要么全部执行,要么全部不执行。 事务用来管理 insert,update,delete 语句

锁是计算机协调多个进程或线程并发访问某一资源的机制。

mysql中如果数据量大,并发访问多或者读写冲突,会出现死锁。表被锁住,不允许操作。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值