美文网首页
mysql数据库(2)

mysql数据库(2)

作者: _98k | 来源:发表于2018-01-13 15:52 被阅读0次

    模糊查询

    先准备数据 接着用昨天的heroInfo表

    insert into heroInfo values(5, "麦迪文", '人族', 38, 29);

    insert into heroInfo values(6, "山丘之王", '矮人', 28, 39);

    insert into heroInfo values(7, "潜行者", '矮人', 22, 39);

    insert into heroInfo values(8, "伊瑟拉", '龙族', 00, 34);

    insert into heroInfo values(9, "死亡之翼", '龙族', 00, 44);

    insert into heroInfo values(10, "巫妖王", '兽族', 98, 49);

    insert into heroInfo values(11, "伊利丹", '兽族', 28, 49);

    insert into heroInfo values(12, "熊猫人", '不详', 33, 50);

    -- 查询姓名中带有王字数据

    select * from heroInfo where heroName like "%王%";

    --查询种族为龙的所有数据

    sleect * from heroInfo where heroRace like "龙族"

    -- 查询姓名是以王结尾,并且王字之前有且只能有两个字符

    -- _表示匹配一个字符

    select * from heroInfo where heroName like "__王";

    -- 删除数据表里面的所有数据行

    delete from heroInfo;

    -- 删除指定ID的数据行

    delete from heroInfo where heroId = 1;

    -- 获取最大值

    select max(stuLevel) as "最大等级" from heroInfo;

    -- 获取最小值

    select min(heroLevel) as "最低等级" from heroInfo;

    -- 平均值

    select avg(heroAge) as "平均年龄" from heroInfo;

    -- 获取总数

    select count(*) as "总数" from heroInfo;

    等级大于30的数量

    select count(*) as "总数" from heroInfo where heroLevel > 30;

    --修改英雄的等级

    update heroInfo set heroLevel = 10 where heroName = "古尔丹";

    -- 修改数据 heroId为2的数据

    update heroInfo set heroRace = '不详', heroAge = 28, heroLevel = 77

    where heroId = 2;

    二,联表

    首先新建两张表 

    create table hero(

            heroID int(4) not null primary key auto_increment,

             heroName char(30),

             herolevel tinyint,

             equipID int # 英雄装备的id

    );

    create table equip(

              equipID int(4) not null primary key auto_increment,         

              equipName char(30),

              equipMoney tinyint

    );

    往里面插入数据

    insert into hero(heroName, heroLevel, equipID) values("无极剑圣", 2, 1);

    insert into hero(heroName, heroLevel, equipID) values("无双剑姬",5, 2);

    insert into hero(heroName, heroLevel, equipID) values("暗裔剑魔",6, 3);

    insert into hero(heroName, heroLevel, equipID) values("疾风剑豪",11, 4);

    insert into equip(equipName, equipMoney) values('无尽', 90);

    insert into equip(equipName, equipMoney) values('黑切', 30);

    insert into equip(equipName, equipMoney) values('破败', 11);

    insert into equip(equipName, equipMoney) values('电刃', 88);

    -- 连表查询 用在英雄表中的英雄ID和武器表中的武器ID进行匹配,展示对应的数据

    select * from hero, equip where hero.equipID = equip.equipID;

    一对多

    create table father(

            fID int,

            fName char(30)

    );

    create table son(

            sID int,

            sName char(30),

    fID int

    );

    insert into father values(1, "何鸿燊");

    insert into father values(2, "李嘉诚");

    insert into son values(1, "何酋君", 1);

    insert into son values(2, "何酋亨", 1);

    insert into son values(3, "李泽楷", 2);

    insert into son values(4, "李泽钜", 2);

    -- 查询一下李嘉诚的儿子都是谁

    select * from father inner join son on son.fID = father.fID

    where fName = "李嘉诚";

    -- 查询一下何鸿燊的儿子都是谁,这里使用了别名来简化书写

    select * from father f inner join son s on s.fID = f.fID

    where fName = "何鸿燊";

    -- 一对多:父子关系,用户和订单关系,商铺和商品

    多对多

    create table student (

            stuID int,

            stuName char(30)

    );

    create table course(

            cID int,

            cName char(30)

    );

    create table stuToCourse(

            scID int, # 中间表的ID号

            stuID int, # 学生ID

            cID int  # 课程ID

    );

    插入数据

    insert into student values(1, "张三");

    insert into student values(2, "李四");

    insert into student values(3, "赵五");

    insert into student values(4, "王六");

    insert into course values(1, "Java从入门到放弃");

    insert into course values(2, "C语言从入门到出家");

    insert into course values(3, "MySQL从删库到跑路");

    insert into course values(4, "C++从入门到跳楼");

    insert into course values(5, "PHP是世界上最好的语言");

    insert into stuToCourse values(1, 1, 1);

    insert into stuToCourse values(2, 1, 3);

    insert into stuToCourse values(3, 1, 2);

    insert into stuToCourse values(4, 2, 3);

    insert into stuToCourse values(5, 2, 4);

    insert into stuToCourse values(6, 2, 5);

    insert into stuToCourse values(7, 3, 1);

    insert into stuToCourse values(8, 3, 3);

    insert into stuToCourse values(9, 3, 5);

    insert into stuToCourse values(10, 4, 2);

    insert into stuToCourse values(11, 4, 1);

    insert into stuToCourse values(12, 4, 3);

           ————————- 看一下王六学了什么—————————

    select * from student s

    inner join stuToCourse sc on s.stuID = sc.stuID

    inner join course c on sc.cID = c.cID

    where s.stuName = "王六";

       ————————- 看一下李四学了什么—————————

    select * from student s

    inner join stuToCourse sc on s.stuID = sc.stuID

    inner join course c on sc.cID = c.cID

    where s.stuName = "李四";

    —————————— 能否看一下C语言从入门到出家————————————

    select * from course c

    inner join stuToCourse sc on c.cId = sc.cID

    inner join student s on sc.stuId = s.stuID

    where c.cName = "C语言从入门到出家";

       select * from course c

    —————————— MySQL从删库到跑路————————————

    inner join stuToCourse sc on c.cId = sc.cID

    inner join student s on sc.stuId = s.stuID

    where c.cName = "MySQL从删库到跑路";

    update stuToCourse set cID = 4 where scID = 3;

    相关文章

      网友评论

          本文标题:mysql数据库(2)

          本文链接:https://www.haomeiwen.com/subject/dydtoxtx.html