sql语句(四)

一、笛卡尔积:

(毫无关系的两张表)行的总数=第一个表行数*第二行表行数:

表1:

a

b

c

d

表2:

1

2

3

4

通过笛卡尔积计算得到的表:(2*2)

a

b

1

2

a

b

3

4

c

d

1

2

c

d

3

4

select * from vendors,products; #将vendors表与products表作笛卡尔积计算

二、创建联结

1、等值联结

select vendors.vend_id,products.vend_id,vend_name,prod_name,prod_price

from vendors,products

where vendors.vend_id=products.vend_id

order by vend_name asc,prod_name asc;

关联表会消耗性能

2、内连接——等值联结

select vend_name,prod_price,prod_name

from vendors inner join products

on vendors.vend_id =products.vend_id;

#将数量少的表放在前面,数量多的表放在后面(表的顺序不同,但执行结果相同时)

给表起表名

select cust_name,cust_contact

from customers c,orders o,orderitems oi

where c.cust_id=o.cust_id and oi.order_num=o.order_num  and prod_id='TNT2';

#不能用customers等原表名——先执行from后面的语句

3、自联结

自联结执行效率高于子查询

select p2.prod_name

from products p1,products p2

where p1.vend_id=p2.vend_id

and p1.prod_id='DTNTR'; #等值联结

select prod_name from products

where vend_id=(select vend_id from products where prod_id='DTNTR'); #子联结

4、外联结

主表全显示,非主表只显示满足条件的项(没有则为null)

        a. 左联结-左表为主表

        b. 右联结-右表为主表

三、数据库的特点:

1.关系型数据库(将数据放在不同表中,而不是大仓库中——提高速度和灵活性)

(约束:主键和外键进行表的连接——不可随便删除)

2.SQL语言是访问数据库的最常用标准化语言

3.体积小,速度快,总体成本低,开放源代码——实用性强

MySQL——基于C/S的数据库管理软件

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值