• 9_数据的增删改查(重点)


    引言-增删改查(curd)

    curd的解释: 代表创建(Create)、更新(Update)、读取(Retrieve)和删除(Delete)

    一、增加insert

    1.1 全列插入

    • 全列插入:值的顺序与表中字段的顺序对应

    • 说明:主键列是自动增长,但是在全列插入时需要占位,通常使用0或者 default 或者 null 来占位,插入成功后以实际数据为准

    • 如果一个表中只有两个字段,并没有指明给哪个字段插入,这个时候必须是全部插入(少一个字段都不行)

    -- insert into 表名 values(...);
    
    
    -- 向classes表中插入 一个班级
    insert into classes values(0, "菜鸟班");
    
    -- 向students表插入 一个学生信息
    insert into students values(0, "小李飞刀", 20, "女", 1, "1990-01-01");
    insert into students values(null, "小李飞刀", 20, "女", 1, "1990-01-01");
    insert into students values(default, "小李飞刀", 20, "女", 1, "1990-01-01");
    
    -- 枚举中 的 下标从1 开始 1---“男”, 2--->"女", 3--->"中性"....
    insert into students values(default, "小李飞刀", 20, 1, 1, "1990-02-01");
    
    -- 失败
    -- insert into students values(default, "小李飞刀", 20, "第4性别", 1, "1990-02-01");
    
    +--------+-------------------------------------+------+-----+------------+----------------+
    | Field  | Type                                | Null | Key | Default    | Extra          |
    +--------+-------------------------------------+------+-----+------------+----------------+
    | id     | int(10) unsigned                    | NO   | PRI | NULL       | auto_increment |
    | name   | varchar(30)                         | YES  |     | NULL       |                |
    | age    | tinyint(3) unsigned                 | YES  |     | 0          |                |
    | gender | enum('男','女','中性','保密')         | YES  |     | 保密        |                |
    | cls_id | int(10) unsigned                    | YES  |     | NULL       |                |
    | birth  | date                                | YES  |     | 2000-01-01 |                |
    +--------+-------------------------------------+------+-----+------------+----------------+
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27

    1.2 部分列插入

    • 部分列插入:值的顺序与给出的列顺序对应
    • 一次向表中插入一行数据
    -- insert into 表名 (列名1,...) values (值1,...);
    
    insert into students (name, gender) values ("小乔", 2);
    
    • 1
    • 2
    • 3

    1.3 多行插入

    • 多行插入:值的顺序与给出的列顺序对应
    • 一次性插入多行数据,这样可以减少与数据库的通信

    1.3.1 全列-多行插入

    -- insert into 表名 values(...),(...)...;
    
    insert into students values(default, "西施", 20, "女", 1, "1990-01-01"), (default, "王昭君", 20, "女", 1, "1990-01-01");
    
    • 1
    • 2
    • 3

    1.3.2 部分列-多行插入

    -- insert into 表名 (列名1,列名2...) values(值1,...),(值1,...)...;
    
    insert into students (name, gender) values ("大乔", 2),("貂蝉", 2);
    
    • 1
    • 2
    • 3

    二、删除delete

    2.1 物理删除

    -- delete from 表名 where 条件;
    
    delete from students; -- 整个数据表中的所有数据全部删除
    delete from students where id=5;
    
    • 1
    • 2
    • 3
    • 4

    2.2 逻辑删除

    • 逻辑删除,本质就是修改操作
    update students set isdelete=1 where id=1;
    
    -- 用一个字段来表示-这条信息已经不再使用了
    -- 给students表添加一个is_delete字段 bit 类型(0或1)
    alter table students add is_delete bit default 0;
    update students set is_delete=1 where id=6;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    三、修改update

    -- update 表名 set 列1=值1,列2=值2... where 条件;
    
    update students set gender=1; -- 全部都改为男性
    update students set gender=2 where name="小李飞刀"; -- 只要name是小李飞刀的,全部修改为‘女性’
    update students set gender=1 where id=3; -- 只要id为3的,进行修改
    update students set age=22, gender=1 where id=3; -- 只要id为3的,进行修改
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    四、查询select

    4.1 查询所有列

    • 数据量少使用
    -- select * from 表名;
    
    select * from students;
    
    • 1
    • 2
    • 3

    4.2 指定条件查询

    select * from students where name="小李飞刀"; -- 查询 name为小李飞刀的所有信息
    select * from students where id>3; -- 查询 id>3 的所有信息
    
    • 1
    • 2

    4.3 查询指定列

    -- select 列名1,列名2,... from 表名;
    
    select name,gender from students;
    
    • 1
    • 2
    • 3

    4.3.1 使用as为列或表指定别名

    -- select 字段 as 别名 ,字段 as 别名 from 表名 where ....;
    select name as 姓名, gender as 性别 from students;
    
    -- 字段的顺序
    select id as 序号, gender as 性别, name as 姓名 from students; -- 把 性别 放在 姓名 前
    
    • 1
    • 2
    • 3
    • 4
    • 5
  • 相关阅读:
    ElasticSearch(四):ES nested嵌套文档与父子文档处理
    ArcGIS Pro中的回归分析浅析(中)广义线性回归工具(GLR)使用
    一幅长文细学Vue(五)——组件高级(上)
    WebRTC研究:audio 丢包判断
    Session的基本使用 [JavaWeb][Servlet]
    C++11智能指针unique_ptr剖析
    Flink 提交到 yarn 时 修改 yarn 的job 名称
    【软件测试】别人家的才是最优秀的,一位“屌丝”的逆袭......
    java基础特别问题
    【SQL刷题】DAY17----SQL表与索引操作专项练习
  • 原文地址:https://blog.csdn.net/brawly/article/details/127561978