SQL常用语句汇

来源:互联网 发布:snap 教程 linux 编辑:程序博客网 时间:2024/05/01 01:05

1:数据库插入记录:
insert  [into]  表名(列名,列名,...)  values (值,值....)
2:数据库更新记录:
update 表名 set 列名=值,列名=值.... [where 列名=值]
3:数据库删除记录:
delete 表名 [where 列名=值]
4:数据库查询语句:
select 列名,列名 from 表名 [where 列名=值]
5:数据库连接查询数据:
5.1:交叉连接(cross join):交叉连接(cross join):有两种,显式的和隐式的,
    不带on子句,返回的是两表的乘积,也叫笛卡尔积。
    5.1.1:隐式的交叉连接,没有cross join! 
    select o.id, o.order_number,c.id,c.name from orders o , customers c 
    where o.id=1;
    5.1.2显式的交叉连接,使用cross join
select o.id,o.order_number,c.id,c.name from orders o cross join customers 
c where o.id=1;
5.2:内连接(inner join):有两种,显式的和隐式的,
          返回连接表中符合连接条件和查询条件的数据行。(所谓的链接 表就是数据库在做查询形成的中间表)。
5.2.1:隐式的内连接,没有inner join,
     形成的中间表为两个表的笛卡尔积
     select o.id,o.order_number,c.id,c.name
     from customers c, orders owhere c.id=o.customer_id;
5.2.2:显示的内连接,一般称为内连接,有inner join,
            形成的中间表为两个表经过on条件过滤后的笛卡尔积。
            select o.id,o.order_number,c.id,c.namefrom customers c 
                  inner join orders o on c.id=o.customer_id;
5.3:外连接(outer join):外连不但返回符合连接和查询条件的数据行,
    还返回不符合条件的一些行。外连接分三类:左外连接(left outer join)
    右外连接(right outer join)和全外连接(full outer join)。
    5.3.1:共同点:
   5.3.1.1:三者的共同点是都返回符合连接条件和查询条件(即:内连接)的数据行
    5.3.2:不同点:
   5.3.2.1:左外连接还返回左表中不符合连接条件单符合查询条件的数据行。
   5.3.2.2:右外连接还返回右表中不符合连接条件单符合查询条件的数据行。
   5.3.2.3:全外连接还返回左表中不符合连接条件单符合查询条件的数据行,
    并且还返回右表中不符合连接条件单符合查询条件的数据行。
全外连接实际是上左外连接和右外连接的数学合集(去掉重复),即“全外=左外 union 右外”。
   5.3.3:左外连接(left outer join):
select o.id,o.order_number,o.customer_id,c.id,c.name
from orders o left outer join customers c on c.id=o.customer_id;
   5.3.4:右外连接(right outer join)
select o.id,o.order_number,o.customer_id,c.id,c.name
from orders o right outer join customers c on c.id=o.customer_id;
5.4:where条件放在on后面查询的结果是不一样的。
5.4.1:where条件独立。
      select o.id,o.order_number,o.customer_id,c.id,c.name
      from orders o left outer join customers c on c.id=o.customer_id
      where o.order_number<>'mike_order001';
5.4.2:将语where条件放到on后面。
      select o.id,o.order_number,o.customer_id,c.id,c.name
      from orders o left outer join customers c on c.id=o.customer_id 
      and o.order_number<>'mike_order001';
5.5:全外连接(full outer join)。
select o.id,o.order_number,o.customer_id,c.id,c.name
from orders o full outer join customers c on c.id=o.customer_id;
***:mysql不支持全外的连接的

原创粉丝点击