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

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,多个返回值的子查询

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 customGbitsCN.com

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:php中文网

TAG标签:mysql

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值