精华内容
下载资源
问答
  • 除法在SQL中的应用讲解 题目 找到通过所有住在New York的代理商下订单的顾客的cid 上面是说,SQL语句中没有除法操作。 除法查询的意思是: 对于结果集中的顾客,对于每个住在NewYork的代理商,我们可以在orders表中...

     

     

     

    除法在SQL中的应用讲解 

    题目

    找到通过所有住在New York的代理商下订单的顾客的cid

    上面是说,SQL语句中没有除法操作。

    除法查询的意思是:

    对于结果集中的顾客,对于每个住在NewYork的代理商,我们可以在orders表中找到一行数据o满足这个顾客c通过代理商a下订单(o.cid=c.cid and o.aid=a.aid)。

     我们可以理解这个查询条件:

    如果结果集中存在一个顾客c,那么

              在agents表中不存在代理商a,

              1.a居住在纽约,并且

             2.在orders表中不存订单o满足

                   o.cid=c.cid and o.aid=a.aid(顾客c的订单是通过代理商a订购的)

    所以我们先构建第一个条件

     

     接着我们构建第二个条件,和第一个条件组合起来。

    构建完毕。

     使用离散数学怎么构建SQL除法语句

     练习例题

    3

     4.

     

     5.

     6.

     除法和自然连接组合使用

     自身相除

    展开全文
  • 1、有两个关系S(A,B,C,D)和T(C,D,E,F),写出与下列查询等价的SQL表达式: (1)σA=10(S)\sigma_{A=10}(S)σA=10​(S) select * from S where A=10; (2)ΠA,B(S)\Pi_{A, B}(S)ΠA,B​(S) select A,B from S; ...

    1、有两个关系S(A,B,C,D)和T(C,D,E,F),写出与下列查询等价的SQL表达式:
    (1) σ A = 10 ( S ) \sigma_{A=10}(S) σA=10(S)

    //选择
    select *
    from S
    where A=10;

    (2) Π A , B ( S ) \Pi_{A, B}(S) ΠA,B(S)

    //投影
    select A,B
    from S;

    (3) S ⋈ T S \bowtie T ST

    //自然连接
    select S.*,T.*
    from S,T;

    (4) S ⋈ S . C = T . C T S \underset{S . C=T . C}{\bowtie} T SS.C=T.CT

    //等值连接
    select S.*,T.*
    from S,T
    where S.C=T.C;

    (5) S ⋈ A < E T S \underset{A<E}{\bowtie} T SA<ET

    //非等值连接
    select S.*,T.*
    from S,T
    where A<E;
    

    (6) Π C , D ( S ) × T \Pi_{C, D}(S) \times T ΠC,D(S)×T

    //S在cd上的投影与T的笛卡尔积
    //方法一:
    select C,D
    from S
    union 
    select *
    from T;
    //方法二:
    select S.C,S.D,T.*
    from S,T

    2、用SQL语句建立以下的4个表;针对建立的4个表用SQL完成第二章习题6中的查询。在这里插入图片描述
    S表:

    create table S(sno char(10),
        sname char(10),
        status smallint,
        city char(10)
        );
    insert into S 
    values('s1','精益',20,'天津');
    insert into S 
    values('s2','盛锡',10,'北京');
    insert into S 
    values('s3','东方红',30,'北京');
    insert into S 
    values('s4','丰泰盛',20,'天津');
    insert into S 
    values('s5','为民',30,'上海');

    P表:

    create table P(pno char(10),
        pname char(10),
        color char(10),
        weight smallint
        );
    insert into P
    values('P1','螺母','红',12);
    insert into P
    values('P2','螺栓','绿',17);
    insert into P 
    values('P3','螺丝刀','蓝',14);
    insert into P 
    values('P4','螺丝刀','红',14);
    insert into P 
    values('P5','凸轮','蓝',40);
    insert into P
    values('P6','齿轮','红',30);

    J表:

    create table J(jno char(10),
        jname char(10),
        city char(10)
        );
    insert into J
    values('J1','三建','北京');
    insert into J
    values('J2','一汽','长春');
    insert into J 
    values('J3','弹簧厂','天津');
    insert into J 
    values('J4','造船厂','天津');
    insert into J 
    values('J5','机车厂','唐山');
    insert into J
    values('J6','无线电厂','常州');
    insert into J
    values('J7','半导体厂','南京');

    SPJ:

    
    CREATE TABLE SPJ(SNO CHAR(4),
                  PNO CHAR(4),
                  JNO CHAR(4),
                  QTY SMALLINT
                  );
    INSERT INTO SPJ(SNO,PNO,JNO,QTY) VALUES('S1','P1','J1',200);
    INSERT INTO SPJ(SNO,PNO,JNO,QTY) VALUES('S1','P1','J3',100);
    INSERT INTO SPJ(SNO,PNO,JNO,QTY) VALUES('S1','P1','J4',700);
    INSERT INTO SPJ(SNO,PNO,JNO,QTY) VALUES('S1','P2','J2',100);
    INSERT INTO SPJ(SNO,PNO,JNO,QTY) VALUES('S2','P3','J1',400);
    INSERT INTO SPJ(SNO,PNO,JNO,QTY) VALUES('S2','P3','J2',200);
    INSERT INTO SPJ(SNO,PNO,JNO,QTY) VALUES('S2','P3','J4',500);
    INSERT INTO SPJ(SNO,PNO,JNO,QTY) VALUES('S2','P3','J5',400);
    INSERT INTO SPJ(SNO,PNO,JNO,QTY) VALUES('S2','P5','J1',400);
    INSERT INTO SPJ(SNO,PNO,JNO,QTY) VALUES('S2','P5','J2',100);
    INSERT INTO SPJ(SNO,PNO,JNO,QTY) VALUES('S3','P1','J1',200);
    INSERT INTO SPJ(SNO,PNO,JNO,QTY) VALUES('S3','P3','J1',200);
    INSERT INTO SPJ(SNO,PNO,JNO,QTY) VALUES('S4','P5','J1',100);
    INSERT INTO SPJ(SNO,PNO,JNO,QTY) VALUES('S4','P6','J3',300);
    INSERT INTO SPJ(SNO,PNO,JNO,QTY) VALUES('S4','P6','J4',200);
    INSERT INTO SPJ(SNO,PNO,JNO,QTY) VALUES('S5','P2','J4',100);
    INSERT INTO SPJ(SNO,PNO,JNO,QTY) VALUES('S5','P3','J1',200);
    INSERT INTO SPJ(SNO,PNO,JNO,QTY) VALUES('S5','P6','J2',200);
    INSERT INTO SPJ(SNO,PNO,JNO,QTY) VALUES('S5','P6','J4',500);
    

    最终结果:
    在这里插入图片描述

    (1)求供应工程J1零件的供应商号码SNO;

    select sno
    from spj
    where jno='j1'

    在这里插入图片描述

    (2)求供应工程J1零件P1的供应商号码SNO;

    select sno
    from spj
    where jno='j1' and pno='p1';

    在这里插入图片描述
    (3)求供应工程J1零件为红色的供应商号码SNO;

    select sno
    from spj,p
    where jno='j1' and p.pno=spj.pno and color='红';

    在这里插入图片描述

    (4)求没有使用天津供应商生产的红色零件的工程号JNO;

    select jno
    from j
    where not exists(
    select * 
    from spj,s,p
    where s.city='天津' and p.color='红' 
    and spj.jno=j.jno and spj.pno=p.pno);

    在这里插入图片描述

    (5)求至少用了供应商S1所供应的全部零件的工程号JNO。

    select distinct jno
    from spj x
    where not exists(
      select *
      from spj y
      where y.sno='s1'
      and not exists(
      select *
      from spj z
      where z.pno=y.pno 
      and z.jno= x.jno)
    );

    在这里插入图片描述
    3、针对习题4中的4个表使用SQL完成以下各项操作:
    (1)找出所有供应商的姓名和所在城市;

    select jname,city
    from j;

    在这里插入图片描述

    (2)找出所有零件的名称、颜色、重量;

    select pname,color,weight
    from p;

    在这里插入图片描述

    (3)找出使用供应商S1所供应零件的工程号码;

    select jno
    from spj
    where sno='s1';

    在这里插入图片描述

    (4)找出工程项目J2使用的各种零件的名称及其数量;

    select pname,qty
    from spj,p
    where jno='j2' and spj.pno=p.pno;

    在这里插入图片描述

    (5)找出上海厂商供应的所有零件号码;

    select distinct pno
    from spj,s
    where city='上海' and spj.sno=s.sno;

    在这里插入图片描述
    (6)找出使用上海产的零件的工程项目;

    select distinct jname
    from spj,s,j
    where s.sno=spj.sno 
    and s.city='上海'
    and j.jno=spj.jno;

    在这里插入图片描述
    (7)找出没有使用天津产的零件的工程号码;

    select jno
    from j
    where not exists(
       select *
       from spj,s
       where spj.jno=j.jno
       and spj.sno=s.sno
       and s.city='天津');

    在这里插入图片描述
    (8)把全部红色零件的颜色改成蓝色;

    update p
    set color='蓝'
    where color='红';

    (9)由S5供给J4的零件P6改为由S3供应,请作必要的修改;

    update spj
    set sno='s3'
    where sno='s5'
    and jno='j4'
    and pno='p6';

    (10)从供应商关系中删除S2的记录,并从供应情况关系中删除相应的记录;

    delete 
    from spj
    where sno='s2'
    delete 
    from s
    where sno='s2';

    (11)请将(S2,J6,P4,200)插入供应情况关系;

    insert into spj
    values('s2','p4','j6',200);

    4、请为三建工程项目建立一个供应情况的视图,包括供应商代码(SNO)、零件代码(PNO)、供应商数量(QTY)。针对该视图完成下列查询:

    create view view_s
    as
    select sno,pno,qty
    from spj
    where jno=(select jno
       from j
       where jname='三建');

    (1)找出三建工程项目使用的各种零件代码及其数量;

    select pno,qty
    from view_s

    在这里插入图片描述
    (2)找出供应商S1的供应情况;

    select *
    from view_s
    where sno='s1'

    在这里插入图片描述

    展开全文
  • 关系代数sql语句

    万次阅读 多人点赞 2019-04-25 06:54:57
    关系代数定义: 关系代数是以关系为运算对象的一组高级运算的集合。关系代数的运算有集合运算(集合<表>与集合<表>之间的运算)和关系运算(集合<表>内部的运算) 集合运算: 并运算: R U S...

    关系代数定义:

              关系代数是以关系为运算对象的一组高级运算的集合。关系代数的运算有集合运算(集合<表>与集合<表>之间的运算)和关系运算(集合<表>内部的运算)

    集合运算:

           并运算:  R U S              差运算:  R - S                 交运算:   R  ∩ B            笛卡儿积: R  x  S  (组合运算)

           并,交,差(是对各集合元组的重新组合;要求:参加集合操作的各结果表的列数必须相同,对应项的数据类型也必须相同)

     

    关系运算:

              选择  {\color{Blue} \sigma },       σF(R)={t|t∈R∧F(t)=True}σF(R)={t|t∈R∧F(t)=True}                ------水平分割表

              投影  {\color{Blue} \pi },       πA(R)={t[A]|t∈R}πA(R)={t[A]|t∈R}                                         -------垂直分割表

              连接 【/* {\color{Blue} \theta }这里是比较运算符 */,{\color{Blue} \theta }为大于,小于的连接叫比较连接,{\color{Blue} \theta }为等于的连接叫等值连接,自然连接 /*它是等值连接的特殊情况,结果集中公共的属性只保留一个------去除重复列。两表关联,外键主建出现在同一集合里(外键和主键就是重复的列,要去除一列),2*/自然theta链接   =   σ XθY(R×S),扩展的还有外连接 】

             等值连接和自然连接的区别

    sql语句的*使用的是等值连接:

    sql语句要使用自然连接,需要自己手动指定列(去除重复列):自然连接的例子:

     

          自然连接和外连接的区别:(d:左外连接,f:全连接)

        除运算 ÷

    下面以电力抢修工程数据库为例:

    抢修工程计划表Salvaging,配电物资库存记录表Stock,配电抢修物资领料出库表Out_stock

    查询说明: 

    结果:

    关系代数总结:(先选择运算,再笛卡尔积,最后投影,选择)

     

    sql语句连接查询:

            1.连接查询主要包括

                   等值连接查询(比较运算符为“ = ”),自然连接查询,非等值连接查询(比较运算符为其他的连接查询),自身连接查  询,外连接查询和复合条件连接查询 (多个连接条件)

            2.连接查询执行过程:

                从概念上讲,DBMS,执行连接操作的过程是:首先在表1中找到第一个元组,然后从头开始扫描表2,逐一查找满足连接条件的元组,找到后将表一中的第一个=元组与该元祖拼接起来,形成结果表中的一个元组,表2全部查找完后再找表1中的第2个元组,然后重头开始扫描表2,逐一查找满足连接条件的元组,找到后将表1中的第2个元组与该元组拼接起来,形成结果表中的一个元组,重复上述操作,直到表1中的全部元组都处理完毕为止

             3.外连接查询:

                 左外连接:为右边的表(副表)增加一个万能的行,该行全部由空值组成,它可以和左边的表(主表)中不满足连接条件的元组进行连接,由于这个万能行的各列全部是空值,因此在本例中的连接结果中有一行来自副表的属性值全部是空值【left join.. on是left outer join...on的缩写】

                 

          4.自身连接查询:

              为要自身查询的表取两个别名就OK了

             查询领取了部门1的物资又领取了部门2的物资的员工姓名

            

         5.集合查询:(mysql,支持UNION  关键字,不支持INTERSECT----用 INNER JOIN ...ON() 和 EXCEPT关键字-----用where..not in(),where exists(select *.....)查的是内层查询是否有返回值,列明用*,给出具体的列明无意义)

             SELECT Emp_name FROM employee WHERE supplies_id='D02'
             UNION  |  INTERSECT  |  EXCEPT
             SELECT Emp_name FROM employee WHERE supplies_id='D01'

     

                        

             

    展开全文
  • 关系代数sql语句对应关系

    千次阅读 2019-03-20 20:48:00
    对应sql语句 聚合操作 ∪(UNION)并 ∩(INTERSECTION)交 - (DIFFERENCE)差 × (Cartesian PRODUCT)笛卡尔积  from 纯关系操作 π (PROJECT)投影 ...

     

    关系代数运算符          对应sql语句
    聚合操作 
     (UNION) 
     (INTERSECTION) 
    -  (DIFFERENCE)差 
    × (Cartesian PRODUCT)笛卡尔积    from
    纯关系操作 
    π (PROJECT)投影          select
    σ (SELECT)选择           where
    ⋈ (JOIN)链接  JOIN(mysql> SELECT a.age, b.author FROM books a INNER JOIN books2 b ON a.age>25;)
    ÷ (DIVISION)除 exists 和not exists(select * from books A where not exists(select age from books8 B WHERE A.age=B.age);)
      
    > 大于 
    >=大于等于 
    < 小于 
    <=小于等于 
    等于 
    !=不等于 
    ∧ 与 
    ∨ 或 
    ¬ 非 
    between          在两个值范围内查找 
    like                按通配符查找 
    regexp            按正则表达式查找 
    组合条件 and, or
     select * from table_name where coll = xxx and col2 = xx or col3 > x;

    转载于:https://www.cnblogs.com/jiangfeilong/p/10567567.html

    展开全文
  • 关系代数运算与SQL语句

    千次阅读 2016-11-14 22:50:39
    一、传统的集合运算与S Q L 语句实现 传统的集合运算包括四种运算:并(∪)、交(∩)、差(—)、广义笛卡尔积(X)。 &lt;!--[if !supportLists]--&gt;(一) &lt;!--[endif]--&gt;并运算...
  • 关系代数表达式优化步骤 本篇主要讲解怎么画查询语法树并对其优化,因为我在学关系代数的语法树的时候,在网上找不到比较详细的教法或者技巧,最后通过答案反推原理,所以想写一篇技巧来描述一下这类题的解题方法。 ...
  • 数据库关系代数表达式学习

    千次阅读 2016-09-18 21:48:41
    本文自:...很有必要学习一下,有些是用代数表达式很方便的东西,用SQL写出来还是挺麻烦的,并不是想象当中那么直接。   一、关系代数的9种操作:
  • 怎样用关系代数表达式表示查询要求? 用一个例子来讲述一下 题目:查询至少选修了全部课程的学生学号和姓名? 题目:查询至少选修了全部课程的学生学号和姓名? ① 找出题目中暗含属性、以及它们所在的表 ...
  • 对初学这深入理解sql语法和有帮助,里面有一些sql的基本语法题目
  • 数据库关系代数简单查询部分例题
  • 目录前言关系代数选择语句投影语句连接语句除法(重要⚠)关系代数例题SQL视图模式匹配聚合,分组与HAVING子查询SQL 例题 前言 关系代数通过符号化的语言,来描述数据库的行为关系,相当于简化版的 SQL。比如并,交...
  • 本数据库系列专栏,文章的重心将会是总结SQL语句的使用,而不会涉及到太多数据库本身或大数据的内容。除此以外,使用的SQL语句会因为MySQL或Oracle的不同,导致一些使用上的差异,这部分具体的区别将不作区分。在...
  • 关系代数SQL练习(二)

    千次阅读 2017-01-04 13:11:49
    数据库关系代数表达式学习 关系代数是关系数据库系统查询语言的理论基础 一、关系代数的9种操作:  关系代数中包括了:并、交、差、乘、选择、投影、联接、除、自然联接等操作。 五个基本操作:  并(∪)、...
  • 其实象集很简单,就跟我们学过的函数对应关系差不多,只不过函数是“一对一”或者“多对一”,而象集恰好相反,是== “一对多”==。 我们引入一个例子看看。假设我们有一张学生选课表SC(sno, cno, grade),其中sno的...
  • 1. 关系代数 选择 投影 并:R ∪ S 差:R - S 交:R ∩ S = R - (R - S) 重命名:将E重命名为S 连接操作: Theta join – θ 连接 等值连接:Theta连接中,谓词使用等号时,就是等值连接 ...
  • 行的选择 列的选择
  • 数据库关系代数中除运算讲解和SQL语句的实现

    万次阅读 多人点赞 2016-12-21 18:35:14
    【数据库原理】关系代数篇——除法讲解  
  • (1)试写出该查询的关系代数表达式;(2)试写出查询优化的关系代数表达式。 (1)πCNAME,TEACHER(σSEX=女(SSCC)) (2)优化为:πCNAME,TEACHER(CπC#(πS#,C#(SC)πS#(σSEX=女(S)))) (基本思路:尽量提前做选择操作;...
  • 关系代数SQL练习(一)

    千次阅读 2017-01-04 13:05:31
    对下列关系模式分别用关系代数、和SQL实现下列查询 理解下面几句话: 1. SQL语言是具有很坚实数学基础的语言 2. SQL语言是介于关系代数关系演算之间的结构化查询语言 3. 一个查询只要能用关系代数关系演算...
  • 自https://blog.csdn.net/qq_22627687/article/details/53789362?utm_source=copy,感谢作者的无私分享。  【数据库原理】关系代数篇——除法讲解  ...
  • 关系代数 运算符 含义 集合运算符 ∪ 并 - 差 ∩ 交 × 笛卡尔积 专门的关系运算符 σ 选择 ...
  • 数据库关系代数表达式

    千次阅读 2021-04-21 16:09:58
    很有必要学习一下,有些是用代数表达式很方便的东西,用SQL写出来还是挺麻烦的,并不是想象当中那么直接。 一、关系代数的9种操作: 关系代数中包括了:并、交、差、乘、选择、投影、联接、除、自然联接等操作。 五...
  • SQL关系代数

    千次阅读 2019-03-22 17:37:00
    Table of Contents ...SQL 是基于关系代数的查询语言,假如学习过 SQL关系代数,你就会发现,在 SQL 的查询语句中你会发现很多关系代数的影子。 然而,虽然知道 SQL关系代数密切相关,但...
  • 数据库SQL语句 聚合函数 GROUP BY和HAVING 所有xxx NOT EXISTS(NOT EXISTS) 把EXISTS理解为 在自查询中找得到的 NOT EXISTS就是在自查询中找不到的 最大最小 MAX MIN ANY ALL 修改某个地方的值 不 没有… ...
  • 这是老师给的标准数据库关系代数作业题和答案,给同学们一个参考。
  • sql server关系代数练习

    千次阅读 2020-04-02 20:41:18
    本题使用的关系如下: course(cno,cname,credit) 对应课程代码,课程名称,学分,其中课程代码前2位代表不同类型的课程,如 BT 代表 专业必修课,XZ 代表专业限选课。 select left(cno, 2), count(cno) from course ...
  • 前段时间用MySQL实现过的,但是由于种种原因得使用sql server, 有关用MySQL实现的方法...有关两者的安装大家也可以参照我之前的博文,下面来看看实现关系代数: 显示所有数据库: select * from sys.databases; -...
  • 关系代数SQL实现

    千次阅读 2015-04-30 13:05:43
    一、传统的集合运算与SQL语句实现  传统的集合运算包括四种运算:并(∪)、交(∩)、差(—)、广义笛卡尔(X)。 并运算(Union) 对应的SQL语句: Select * from R Union Select * from S; 交...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,016
精华内容 2,406
关键字:

关系代数表达式转sql语句