mysql高效编程阅读摘要--基础篇_MySQL

php中文网
发布: 2016-06-01 13:29:25
原创
992人浏览过

bitsCN.com

mysql高效编程阅读摘要--基础篇

 

一,多个表的连接

1,内连接--表间的主键与外键进行相连,只取出键值一致的数据。

select user.name,order_basic.oid from order_basic inner join user on order_basic.uid = user.uid;

添加表的别名:select u.name,o.oid form order_basic as o inner join user as u on o.uid = u.uid;

//当域名太多时,以及外表的名称本身比较长时可以可以使用别名。

 

 

2,外连接--使用外连接可以取出只在一方表中存在的数据。分为左外连接和右外连接。

select u.name,o.oid from user as u left outer join order_basic as o on u.uid = o.uid;

//没有任何订单信息的用户也会被检索出来。--左外连接

 

 

select u.name, o.oid from user as u right outer join order_basic as o on u.uid p o.uid;

//没用用户的订单信息也会被取出来--右外连接

 

 

连接向哪边,哪边的信息更全!!内连接时抽取两表间键值一致的记录,而外连接时以其中一个表的全部记录为基准进行检索!!

 

 

3,多个表之间的连接

select ob.oid,ob.odate,p.pname,p.price,od.quantity,u.name from 

(

(order_basic as ob inner join order_detail as od  on ob.oid = od.oid)

 inner join product as p on od.pid=p.pid

)inner join user as u on ob.uid = u.uid;

 

 

二,在其他查询的基础上进行数据检索

1,基本子查询

select * from product where price > (select avg(price) from product);

 

 

2,多个返回值的子查询

Supermeme
Supermeme

Supermeme是一个AI驱动的Meme生成器,可以快速生成有趣的Meme梗图

Supermeme 114
查看详情 Supermeme

select name,address from user where uid not in (select uid from order_basic where odate='2010-07-24');

//返回在这一天没有下单的用户数据

 

 

3,子查询与exists运算符

select name,address from user where exists (select * from order_basic where user.uid = order_basic.uid)

//相关子查询户对基础表的每一条记录进行子查询的动作,如果基础表的数据量太大时会给数据库服务器带来很大的负荷,使用时要特别小心

 

 

 

 

三,表的维护和改造

1,alter table 命令

alter table ...modify 修改列的定义

alter table ...add 添加列

alter table ...change 修改列的名称和定义

alter table ...drop  删除列

 

 

alter table visitor modify name varchar(20)---修改列的类型,但通常情况下如果已经存在列数据是不宜修改类型的

alter table visitor add age int;添加了一个新的age列

alter table visitor add age int after name 在任意位置添加列

alter table visitor add age int first 在表开头处加新列

alter table visitor modify age int after name 改变列的位置

alter table visitor change birth birthday DATE 修改列名称和类型

alter table visitor drop age 删除列

 

 

2,复制表和删除表

create table customH select * from custom;这样的复制将表结构和数据同时复制过来了

create table customG like custom 只复制表的列构造

insert into customG select * from custom; 将数据复制到新建的表中【可以添加where和limit限制来获取数据】

drop table customG  / drop table if exists customG

bitsCN.com
相关标签:
最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号