MySQL表的增删改查(3)

    科技2022-07-29  123

    MySQL表的增删改查

    1、CRUD

    注释:在SQL中可以使用“–空格+描述”来表示注释说明CRUD:增加(create)、查询(Rereieve)、更新(Update)、删除(Delete)

    2、新增(create)

    2.0、语法

    insert [into] tablename[(column,...)] values();

    案例:

    drop table if exists student; create table if not exists student( id int, name varchar(20) comment '姓名', birthday timestamp, amout decimal(13,2) );

    2.1、单行数据 + 全列插入

    insert into student values(1,'张三','1998-02-02',12.45); insert student values(2,'李四','1998-03-03',120.45);

    2.2、多行数据 + 指定列插入

    insert into student(id,birthday,amout) values(3,'2020-09-08',234.45),(4,'2020-07-06',23456.7);

    3、查询(Retrieve)

    3.0、语法

    select [distinct] [from tablename] [where ...] [order by column] [limit ...]

    3.1、全列查询

    select * from tablename;

    3.2、指定列查询

    select id,name from tablename;

    3.3、查询字段为表达式

    select id,name,amout+1 from tablename;

    3.4、别名(as)

    select column [as] newname from tablename;

    3.5、去重(distinct)

    使用DISTINCT关键字对某列数据进行去重:

    select distinct column from tablename;

    3.6、排序(order by)

    ASC: 升序(从小到大)— 默认

    DESC:降序(从大到小)

    select ... from tablename [where ...] order by column [ASC/DESC],[...]

    注意:

    1、没有 order by子句的查询,返回的顺序是未定义的,永远不要依赖这个顺序

    2、NULL 数据排序,视为比任何值都小

    3、使用表达式及别名排序

    select name,amout+id from tablename order by (amout+id) desc; select name,amout+id as newamout from tablename order by newamout desc;

    4、可以对多个字段进行排序,排序优先级随书写顺序

    SELECT name, math, english, chinese FROM exam_result ORDER BY math DESC, english, chinese;

    3.7、条件查询(where)

    1、比较运算符
    运算符说明>,>=,<,<=大于,大于等于,小于,小于等于=等于,NULL 不安全,例如 NULL = NULL 的结果是 NULL<=>等于,NULL 安全,例如 NULL <=> NULL 的结果是 TRUE(1)!=, <>不等于BETWEEN a0 AND a1范围匹配,[a0, a1],如果 a0 <= value <= a1,返回 TRUE(1)IN (option, …)如果是 option 中的任意一个,返回 TRUE(1)IS NULL是 NULLIS NOT NULL不是 NULLLIKE模糊匹配。% 表示任意多个(包括 0 个)任意字符;_ 表示任意一个字符
    2、逻辑运算符
    运算符说明AND多个条件必须都为 TRUE(1),结果才是 TRUE(1)OR任意一个条件为 TRUE(1), 结果为 TRUE(1)NOT条件为 TRUE(1),结果为 FALSE(0)

    注意:

    1、where 条件可以使用表达式,但不能使用别名

    2、AND的优先级高于OR,在同时使用时,需要使用小括号()包裹优先执行的部分

    3.8、分页查询(limit)

    起始是从 0 开始的,不是 1

    -- 从 0 开始,筛选 n 条结果 select ... from tablename [where ...] [order by ...] limit n; -- 从 s 开始,筛选 n 条结果 select ... from tablename [where ...] [order by ...] limit s,n; -- 从 s 开始,筛选 n 条结果,比第二种用法更明确,建议使用 select ... from tablename [where ...] [order by ...] limit n offset s;

    4、修改(update)

    语法

    update tablename set column = expr [...] [where ...] [order by ...] [limit ...]

    5、删除(delete)

    语法

    delete from tablename [where ...] [order by ...] [limit ...]
    Processed: 0.009, SQL: 8