MySQL -- 表记录管理和运算符操作

MySQL -- 基本SQL命令(库的管理和表的管理)

MySQL -- 表记录管理和运算符操作

一、表记录管理(续)

    (1)、更新表记录

        1、update 表名 set 字段名=值,字段名=值,...where 条件;
        2、注意
            update语句后如果不加where字句,表中所有记录该字段的值都会改变

     (2)、删除表记录

        1、delete from 表名 where 条件;
        2、注意
            delete语句后如果不加where条件字句,将会把表中所有的记录全部删除

      (3)、练习

               第1步:创建库 SANGUO
                     create database SANGUO;

               第2步:切换库
                      use SANGUO;

               第3步:创建表sanguo
                  create table sanguo(
                   id int,
                   name char(15),
                   sex enum("男","女"),
                   country char(10)
                   )default charset=utf8;

               第4步:插入记录
               insert into sanguo values
               (1,"曹操","男","魏国"),
               (2,"小乔","女","吴国"),
               (3,"诸葛亮","男","蜀国"),
               (4,"貂蝉","女","东汉"),
               (5,"赵子龙","男","蜀国"),
               (6,"魏延","男","蜀国");

            1、查找所有蜀国人信息
                select * from sanguo where country="蜀国";


            2、查找女英雄信息,只显示姓名、性别和国家
                select name,sex,country from sanguo where sex="女";


            3、把魏延的性别改为女,国籍改为泰国
                update sanguo set sex="女",country="泰国" where name="魏延";


            4、把id为2的记录名字改为司马懿,性别男,国籍魏国
                update sanguo set name="司马懿",sex="男",country="泰国" where id=2;


            5、删除所有泰国人
                delete from sanguo where country="泰国";

 

二、运算符操作(配合查询、修改、删除操作)

    (1)、数值比较&字符比较

                1、数值比较运算符:=、!=、>、>=、<、<=
                2、字符比较运算符:= 、!=
                3、语法格式
                    查询:select * from 表名 where 字段名 运算符 数字/字符;
                    修改:update 表名 set 字段名=值,... where 字段名 运算符 数字/字符;
                    删除:delete from 表名 where 字段名 运算符 数字/字符;
                4、练习

                    1、创建库MoShou
                        create database MoShou;

                    2、切换库
                         use MoShou;

                    3、创建表sanguo        
                         create table sanguo(
                         id int,
                         name char(20),
                         gongji int,
                         fangyu tinyint unsigned,
                         sex enum("男","女"),
                         country varchar(20)
                         )default charset=utf8;

                    4、在表中插入记录
                          insert into sanguo values
                          (1,'诸葛亮',120,20,'男','蜀国'),
                          (2,'司马懿',119,25,'男','魏国'),
                          (3,'关羽',188,60,'男','蜀国'),
                          (4,'赵云',200,66,'男','魏国'),
                          (5,'孙权',110,20,'男','吴国'),
                          (6,'貂蝉',666,10,'女','魏国'),
                          (7,null,1000,99,'男','蜀国'),
                          (8,'',1005,88,'女','蜀国');

 

                    1、找出攻击值高于150的英雄的名字和攻击值
                         select name,gongji from sanguo where gongji>150;


                    2、将赵云的攻击值改为666,防御值改为88
                         update sanguo set gongji=666,fangyu=88 where name="赵云";

    (2)、逻辑比较

        1、运算符:and  or
        2、练习
            1、找出攻击值大于200的蜀国英雄的名字及攻击值
                select name,gongji from sanguo where gongji>200 and country="蜀国";


            2、将吴国英雄中攻击值为110的英雄的攻击值设为100,防御值设置为60
                update sanguo set gongji=100,fangyu=60 where country="吴国" and gongji=110;


            3、查找蜀国和魏国的英雄信息        
                select * from sanguo where country="蜀国" or country="魏国";

    (3)、范围内比较

        1、运算符:between and 、in 、not in
        2、语法格式
            字段名 between 值1 and 值2
            字段名 in (值1,值2,... ...)
            字段名 not in (值1,值2,... ...)
        3、练习
            1、找到攻击力在100-200之间的蜀国英雄的记录
                select * from sanguo where (gongji between 100 and 200) and (country="蜀国");


            2、找到id在1,3,5,7中的英雄的id和姓名
                select id,name from sanguo where id in(1,3,5,7);


            3、找到蜀国和吴国以外女英雄信息
                select * from sanguo where (country not in ("蜀国","吴国")) and (sex="女");


            4、找到id为1或者3或者5的蜀国英雄和貂蝉的id、姓名、国家
                select id,name,country from sanguo where ((id in (1,3,5)) and (country="蜀国")) or (name="貂蝉");

    (4)、匹配空、非空

        1、空 :is null
        2、非空 :is not null
        3、练习
            1、查找名字为 NULL 的蜀国英雄信息
                select * from sanguo where (name is null) and (country="蜀国");


            2、查找姓名为""的英雄的id、姓名和国家    
                select id,name,country from sanguo where name="";


        4、注意:
            1、null :null是空值,必须用is 或者 is not去匹配
            2、"": 是空字符串,用= 或者 != 去匹配 

    (5)、模糊比较

        1、语法格式
            字段名 like 表达式
        2、表达式
            1、_ : 匹配单个字符
            2、% : 匹配0到多个字符            
        3、练习
            1、select id,name from sanguo where name like "_%_"; # 名字至少有两个字符的


            2、select id,name from sanguo where name like "%"; # 匹配所有的记录


            3、select id,name from sanguo where name like "___"; # 匹配名字为三个字的记录


            4、select id,name from sanguo where name like "赵%"; # 匹配所有姓赵的记录    

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值