zoukankan      html  css  js  c++  java
  • 数据库实验2

    create table USER_(UID int primary key,
    NAME char(14) not null,
    SEX char(2),
    BYEAR int,
    CITY char(20));

    create table LABEL_(LID int primary key,

    LNAME char(20) not null);

    create table MBLOG_(BID int primary key,
    TITLE char(40)not null,
    UID int ,
    PYEAR int,
    PMONTH int,
    PDAY int,
    CONT char(400),
    foreign key(UID) references USER_(UID)
    );


    create table B_L(BID int,
    LID int,
    primary key(BID,LID),
    foreign key(BID)references MBLOG_(BID),
    foreign key(LID)references LABEL_(LID) );

    create table FOLLOW(UID int ,
    UIDFLED int,
    primary key(UID,UIDFLED),
    foreign key(UID) references USER_(UID),
    foreign key(UIDFLED)references USER_(UID)
    );

    create table FRIENDS(UID int ,
    FUID int,
    primary key(UID,FUID),
    foreign key(UID) references USER_(UID),
    foreign key(FUID) references USER_(UID),

    );

    create table SUB(UID int ,
    LID int,
    primary key(UID,LID),
    foreign key(UID) references USER_(UID),
    foreign key(LID) references LABEL_(LID),
    );

    create table THUMB(UID int,
    BID int,
    primary key(UID,BID),
    foreign key(UID) references USER_(UID),
    foreign key(BID) references MBLOG_(BID),

    );

    create table TOPDAY(TYEAR int,
    TMONTH int,
    TDAY int,
    BID int,
    TNO int,
    primary key(TYEAR,TMONTH,TDAY,TNO),
    foreign key(BID) references MBLOG_(BID),
    );



     往表中插入数据

    use WeiBo_DataBase;
    go
    insert into MBLOG_(BID,TITLE,UID,PYEAR,PMONTH,PDAY,CONT)values(500,'',3,2019,5,5,'cxk');
    insert into MBLOG_ values(500,'CXK',42,2019,5,5,'鸡你太美');

    delete from MBLOG_ where BID=500;  //把刚刚插入的哪一行给删除了

    select * from MBLOG_ where BID=500; 

    update MBLOG_ set TITLE ='律师函'where BID=500;

     use WeiBo_DataBase;

    use WeiBo_DataBase;
    go
    CREATE TRIGGER tgr_THUMB_insteadOf3
    on THUMB
    instead of insert
    as
    declare @UID int,@BID int;
    select @UID = UID,@BID =BID FROM inserted X
    if(@UID IN (SELECT Y.UID FROM MBLOG_ Y ,THUMB X where Y.BID=X.BID AND Y.UID = X.UID))
    begin
        PRINT '博文作者不能点赞自己的博文!'
        PRINT '插入/更新 点赞关系失败!'
        ROLLBACK
    end

    //创建触发器

    //检验触发器

    insert into THUMB values(36,3);

     

        DROP TRIGGER tgr_THUMB_insteadOf ; //删除触发器
    Select * from sysobjects where xtype='TR' //显示触发器的具体信息
    //1,张三

      


    先插入一点数据

    insert into FOLLOW VALUES (1,2);
    insert into FOLLOW VALUES (1,3);
    insert into FOLLOW VALUES (1,4);
    insert into FOLLOW VALUES (1,17);

    insert into FOLLOW VALUES (1,21);
    insert into FOLLOW VALUES (1,23);
    insert into FOLLOW VALUES (1,44);

    update USER_
    SET BYEAR=2007
    where UID=17;
    update USER_
    SET BYEAR=2007
    where UID=23;

    USE WeiBo_DataBase;
    GO
    select BID,TITLE,NAME from USER_,MBLOG_ x where USER_.UID = x.UID and not exists /* 2 */
        (select * from thumb y where x.BID=y.BID) order by title; 

    USE WeiBo_DataBase;
    go
    select * from TOPDAY x where x.BID in(
                                        select z.BID from MBLOG_ z
                                        where z.UID in(
                                        select y.UID from USER_ y
                                        where     y.BYEAR>2000 AND y.CITY='武汉'
                                        ));

    USE WeiBo_DataBase;
    go
    select UID 
    from USER_ U
    where  NOT EXISTS
    (
    SELECT *
    FROM SUB X
    WHERE NOT EXISTS
    (
    SELECT * 
    FROM LABEL_ Y
    WHERE U.UID=X.UID AND Y.LID=Y.LID
    ));

     5.

    USE WeiBo_DataBase;
    go
    SELECT UID,BYEAR,CITY 
    FROM USER_ X
    WHERE  X.BYEAR<1970 OR X.BYEAR>2010;

    //一个判定条件

    USE WeiBo_DataBase;
    go
    SELECT UID,BYEAR,CITY
    FROM USER_ X
    WHERE X.BYEAR NOT BETWEEN 1970 AND 2010 ;

    6.

    USE WeiBo_DataBase; go
    select CITY,COUNT(*) from USER_ group by CITY;

     7.

    USE WeiBo_DataBase;
    go
    select CITY,BYEAR,COUNT(CITY) num 
    FROM USER_
    GROUP BY CITY,BYEAR
    order by CITY, num desc;

    8)查找被点赞数超过10的博文ID号;

    USE WeiBo_DataBase;
    go
    select BID ,COUNT(UID) TIMES
    FROM THUMB
    GROUP BY BID having COUNT(UID)>10;

     9.查找被2000年后出生的用户点赞数超过10的博文ID号;

    USE WeiBo_DataBase;
    GO
    select X.BID ,count(Y.BID)
    from MBLOG_ X,THUMB Y,USER_ Z

    group by X.BID having Z.BYEAR>2000 AND count(Y.BID)>10 AND Z.UID=X.UID;

    10

    11

    12)查找标题中包含了“最多地铁站”和“_华中科技大学”两个词的博文基本信息;

    USE WeiBo_DataBase;
    go
    select * from MBLOG_
    where TITLE like '最多地铁站%'
    union
    select * from MBLOG_
    where TITLE like '华中科技大学';

    13 查找所有相互关注的用户对的两个ID号,要求不能使用嵌套查询

    USE WeiBo_DataBase;
    go
    select X.UID,y.UID from FOLLOW X,FOLLOW Y
    where  X.UIDFLED = Y.UID and X.UID = Y.UIDFLED and X.UID<Y.UID;

    14 查找好友圈包含了5号用户好友圈的用户ID;

    use WEIBO;
    go
    select X.UID 
    from FRIENDS X
    where X.UID=5 and not exists (
    select *
    from FRIENDS Y
    where not exists (
    select * 
    from  FRIENDS Z
    where X.FUID = Z.FUID and Y.UID = Z.UID
    ));

    15)查找2019年4月20日每一篇头条博文的ID号、标题以及该博文的每一个分类ID,要求即使该博文没有任何分类ID也要输出其ID号、标题;

    USE WEIBO;
    GO
    SELECT X.BID,X.TITLE,Y.LID 
    FROM MBLOG_ X ,B_L Y
    WHERE PYEAR=2019 AND PMONTH = 4 AND PDAY =20 AND X.BID=Y.BID;

    16)查找至少有3名共同好友的所有用户对的两个ID号。

    USE WEIBO;
    GO
    select X.UID,Y.UID,count(*)'共同好友'
    FROM FRIENDS X, FRIENDS Y
    WHERE X.FUID=Y.FUID AND X.UID<Y.UID
    group by X.UID,Y.UID
    having count(*)>=3;

     

    17)创建视图:查阅DBMS内部函数,创建一个显示当日热度排名前十的微博信息的视图,其中的属性包括:博文ID、博文标题、发表者ID、发表者姓名、被点赞数。

    USE WEIBO;
    go
    create view IS_DBMS
    as 
        select  x.BID,x.TITLE,x.UID,z.NAME,count(a.BID) 被点赞数  from MBLOG_ x,TOPDAY y, USER_ z,THUMB a where x.BID=y.BID and x.uid = z.UID and a.BID = x.bid 
        and y.TDAY = datepart(day,getdate()) and y.TMONTH =datepart(MONTH,getdate()) and y.TYEAR = datepart(YEAR,getdate())  group by  x.BID,x.TITLE,x.UID,z.NAME ;

    use WEIBO;
    go
    select count(X.BID),count(Z.BID)
    from TOPDAY X,USER Y,THUMB Z,MBLOG_ A
    where Z.BID = X.BID and A.BID=X.BID and Y.

      

     

  • 相关阅读:
    C# 多线程 弹出模态MessageBox的一种方法
    CentOS 7安装Docker
    CentOS 6 安装Docker
    docker三要素
    openstack_dashboard无法获取nova
    cinder安装与配置
    Dashboard安装与配置
    openstack-neutron安装与配置
    openstack在controller节点使用openstack network agent list不显示计算节点
    nova安装与配置
  • 原文地址:https://www.cnblogs.com/xingzhuan/p/10798167.html
Copyright © 2011-2022 走看看