SQL期末C卷

  1. 创建数据库db_exam_c
    create database db_exam_c;
  2. 使用数据库db_exam_c
    use db_exam_c;

  3. 根据描述创建表team

    team表:

    字段名

    字段说明

    数据类型

    主键

    外键

    非空

    唯一

    自增

    t_no

    队伍编号

    INT(11)

    t_name

    队伍名称

    VARCHAR(40)

     create table team(
        t_no INT(11) primary key,
        t_name VARCHAR(40) not null
        );
    
    //查看 team表
    desc team;

  4. 根据描述创建表player

    player表:

    字段名

    字段说明

    数据类型

    主键

    外键

    非空

    唯一

    自增

    p_no

    队员编号

    INT(11)

    p_name

    队员姓名

    VARCHAR(50)

    p_gender

    队员性别

    CHAR(4)

    team_no

    队伍编号

    INT(11)

    p_position

    擅长位置

    CHAR(30)

    p_salary

    薪水

    FLOAT

    join_date

    入队时间

    DATE

     create table player(
        p_no INT(11) primary key,
        p_name VARCHAR(50) not null,
        p_gender CHAR(4),
        team_no INT(11) not null,
        p_position CHAR(30),
        p_salary FLOAT not null,
        join_date DATE not null,
        foreign key(team_no) references team(t_no)
        );
    

  5. 在team表中新增字段t_location,数据类型为char(30)
    alter table team add t_location char(30);

  6. 删除player表的p_position字段
    //先查看原数据库
    desc player;
    
    
    //在删除
    alter table player drop p_position;
    
    /先查看数据库
    desc player;

    二、表数据的相关操作

  7. 将指定数据添加到team表中

    team表记录:

    t_no

    t_name

    t_location

    10

    黑马队

    ShangHai

    20

    飞鹰队

    BeiJing

    30

    火炬队

    GuangZhou

    40

    雪豹队

    ShenZhen

    insert intO team values
        -> (10,'黑马队','ShangHai'),
        -> (20,'飞鹰队','BeiJing'),
        -> (30,'火炬队','GuangZhou'),
        -> (40,'雪豹队','ShenZhen');
    
    //查看添加的记录
    
        select=*from team;

  8. 将指定数据添加到player表中

    player表记录:                                            

    p_no

    p_name

    p_gender

    team_no

    p_salary

    join_date

    1001

    刘一

    10

    8800

    2005-11-12

    1002

    陈二

    30

    7600

    2003-05-12

    1003

    张三

    20

    8000

    2003-09-18

    1004

    李四

    20

    5500

    1997-02-11

    1005

    王五

    30

    3000

    2002-03-22

    1006

    赵六

    10

    4500

    1997-02-15

    1007

    孙七

    10

    2200

    2002-09-12

    1008

    周八

    20

    7400

    2003-03-28

    1009

    吴九

    30

    5000

    1995-01-01

    1010

    郑十

    30

    6800

    1997-10-12

    1011

    小明

    20

    4500

    1999-11-05

    1012

    小红

    10

    9500

    2007-06-15

    考生学号

    考生姓名

    考生性别

    20

    5000

    考生生日

    insert intO player values
        -> (1001,'刘一','男','10','8800','2005-11-12'),
        -> (1002,'陈二','女','30','7600','2003-05-12');
    //后面数据原方法添加
    
    
    
    //查看
          select*from player;
    
  9. 飞鹰队’修改为考生所在班级名称

    //先查看原来的数据
     select*from team;
    
    //在修改
     update team set t_name='23安卓移动3班' where t_name='飞鹰队';
    
    //再查看修改后的数据
     select*from team;

  10. 将编号为30的队伍队员工资下调200

    update player set p_salary - 200 where team_no=30;
    
    //在查看
    select*from player;

  11. 删除工资在2000-3000之间的员工

    //先查看原来的数据
    select*from player;
    
    //在删除工资在2000-3000之间的员工
    delete from player where p_salary >=2000 and p_salary <=3000;
    
    //再查看删除后的数据
    select*from player;
    

     三.单表查询

  12. 查询队伍信息,按队伍名称降序输出

    //降序
    select distinct t_name from team order by t_name desc;

  13. 查询性别和男女队员的的平均工资

    select p_gender,avg(p_salary) from player group by p_gender;

  14. 使用limit 查询player表中第4至8条的队员信息

    select*from player limit 0,1;
    
    //limit 后面的字段按需所填
    

  15. 查询姓名以'小'开头和以'二'结尾的队员信息

    select*from player where p_name like '小%' or p_name like '%二';

    多表操作

  16. 查询当前考生姓名及所在队伍名称和队伍所在地

    select p.p_name,t.t_name,t.t_location from player p,team t where p.team_no=t.t_no and p.p_name='陈二';

  17. 使用子查询,查询工资5000的队员所属队伍信息

    select*from team where t_no in
        -> (select team_no from player where p_salary>5000);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值