sql语句(四)

1、笛卡尔积:(毫无关系的两张表)

行的总数=第一个表行数*第二行表行数

        表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

#将vendors表与products表作笛卡尔积计算

select * from vendors,products;

2、创建联结

        a. 等值联结

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;

注:关联表会消耗性能

        b. 内连接——等值联结

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后面的语句

        c. 自联结

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

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'); #自联结

        d. 外联结

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

                        i. 左联结-左表为主表

                        ii. 右联结-右表为主表

3、数据库的特点:

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

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

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值