• MySQL数据库 | 数据表的增删改查


    MySQL数据的增删改查(crud) 

    本文结构

    一、增加 create

    二、修改 update

    三、查询 retrieve(简单查询,下篇详细展开)

    四、删除 delete

    首先,创建简单的classes数据表和略微复杂的students数据表(id name age gender cls_id birthday),以便接下来的操作。

    create table classes
    (
        id int primary key auto_increment,
        name varchar(20)
    );
    create table students
    (
        id int unsigned not null auto_increment primary key,
        name varchar(20),
        age tinyint unsigned default 0,
        gender enum("男","女","保密") default "保密",
        cls_id int unsigned,
        birthday date default "2000-09-09"
    );

    一、增加

    1.1 全列插入(插入的数据个数和类型与字段一一对应)

    --insert [into] 表名 values(...)
    --主键字段 可以用 0 null default 来占位
    --向classes表中插入“刺客班”的三种方式
    
    insert into classes values(0, "刺客班");
    insert into classes values(null , "刺客班");
    insert into classes values(default, "刺客班");

     1.2 部分插入

    --insert into 表名(列1,...) values(值1,...)
    insert into students (name, gender) values("阿狸", 1);

     1.3 多行插入,一次插入多个,逗号隔开

    insert into students (name, gender) values("赏金", 2),("泰隆", 1);
    insert into students values(null, "盲僧", 20, 1, null, default),
        (null, "牛头", 20, 1, null, default);

    二、修改

    --update 表名 set 列1=值1, 列2=值2... where 条件;
    update students set gender=2; --更改所有的gender值
    update students set gender=1 where name="盲僧"; --更改所有name=”盲僧“的项,不能唯一确认

    --update students set gender=1 where id=1, 3, 5, 6, 7, 9; --这样写不行,会报错 update students set gender=1 where id=1; --可以唯一确认 update students set age=30,gender=1 where id=8; --一次修改同个id的多个信息

    三、查询(简单查询,下篇详细展开)

    3.1 查询所有列

    --select * from 表名;  * 代表全部
    select * from students; --一般数据少的时候可以用,对大量数据不适用

    3.2 根据一定条件查询

    select * from students where name="盲僧";  --查询所有name=盲僧的信息
    select * from students where id<3;

    3.3 查询指定列

    --select 列1,列2,...from 表名; (如只想查同学的性别)
    select name, gender from students; --由此可以理解*代表 所有的列
    
    --可以使用as为列或者表指定别名
    --select 字段 as 别名, 字段 as 别名 from 数据表 where ...;
    select name as "姓名", gender as "性别" from students;
    
    --字段的顺序 由命令中的先后顺序决定
    select gender as "性别", name as "姓名", id as "序号" from students;

    四、删除

    4.1 物理删除(真删,数据来之不易,慎用!)

    --delete from 表名 where 条件
    delete from students -- 清空数据表,整个students中的数据全部删除
    delete from students where name="盲僧";
    --此时如果再增加一个信息,id会等于此时的auto_increment值,而不是去补充已删除的值,除非指定
    --切记好马不吃回头草,删了就不要再用,否则增长到相同id的时候会崩

    4.2 逻辑删除(推荐!)

    --思路为:用一个字段表示 这条信息是否已经不能再使用了
    --给students添加一个is_delete字段 bit类型
    alter table students add is_delete bit default 0;
    --比如6号盲僧想在某网站注销信息,这时候网站悄悄假删信息,操作是...
    update students set is_delete=1 where id=6;
    --查看假装删除的内容(注销的用户)...在is_delete字段会有一个特殊符号
    select * from students where is_delete=1;
    --此时,以下命令的表格中不会再显示6号盲僧,(假装)删除成功!
    select * from students where is_delete=0;
  • 相关阅读:
    数据库隔离级别
    Mysql 命令详解
    Mysql 索引
    强化学习(四):蒙特卡洛方法
    强化学习(三):动态编程
    强化学习(二):马尔可夫决策过程
    强化学习(一): 引入
    自然语言处理(五)时下流行的生成模型
    论文选读三 QANet
    皮质学习 HTM 知多少
  • 原文地址:https://www.cnblogs.com/ykit/p/10237436.html
Copyright © 2020-2023  润新知