• MYSQL之DML(数据库操作语言)


    DML(数据库操作语言):

    数据操作语言DML(Data Manipulation Language),用户通过它可以实现对数据库的基本操作。例如,对表中数据的查询、插入、删除和修改。 在DML中,应用程序可以对数据库作插,删,改,排,检等五种操作

    数据库意义,存储,管理。

    创建一个表

     create table if not exists test(
          -- id 列名  int 数据类型  primary key 主键 not null 不为空 auto_increment 自增   comment "" 别名
      	id  int  primary key  not null auto_increment comment '主键',
          -- default '' 默认的
          name varchar(10) not null default '匿名' comment '姓名'
      )Engine=innodb default charset=utf8;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    添加(insert):

        -- 一般写插入语句,我们一定要数据和字段一一对应 一个子段对应一个值
        -- 插入数据
        insert into 表名 (【字段1,自段2,字段三】) value ('值1')('值2'),('值3')insert into test(name) value("张三")-- 或者
         -- 已知列  id name 
         insert into test value ('12','name')-- 由于主键自增,那么我们不插入id
         insert into test value( ,'name')-- 一次插入多个数据
         insert into test(name) value ('张三'),'李四';
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    注意:

    1. 字段使用英文逗号隔开
    2. 不写具体的列进行插入,那么我们插入的时候就需要整个数据库列的值全部插入
    3. 字段可以省略,但是后面的值必须要一一对应,不能少
    4. 可以同时插入多条数据,value后边的值,需要使用 英文逗号隔开。(),()

    更新(update):

    一般是更新数据库中的数据,而不是更新表的子段。。。。

    -- 修改学员的名字
    update test set name = '张三' where id = 1 ;
    -- 在不指定具体的条件的情况下更改会更改表中所有name的数据
    update test set name = '李四';  -- 更新整个表中列为name的所有数据是name都等于'李四';  切记不要傻乎乎的使用。。。后果就是删库跑路
    
    -- 修改多个属性,逗号隔开
    update test set name =  '张三'  , tel = '123321', email = '2569758@qq.com' where id = 1;
    
    
    
    -- 语法 
    update 表名 set 【列名1 =1,列2 =2 。。。。】 where 【条件】; 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    操作符含义范围结果
    =等于5=6false
    <> 或 !=不等于5<> 6true
    ‘’>“”大于5>6false
    <小于5<6true
    <=小于等于
    ‘’>= ”大于等于
    between… and …介于…之间[2,5]
    and5>1 and 1>2false
    or5>1 or 1>2true

    update 表名 set 【列名1 = 值1,列2 = 值2 。。。。】 where 【条件】;

    注意:

    1. 更新某个类需要指定列名,顺带加上条件,没有加条件则会更新所有的列
    2. 不同列名之间需要加,隔开。

    删除(delete)

    删除表中的数据,和drop不一样,drop是删除整个表,delete是删除表中的数据

    -- 删除数据 尽量避免不添加条件删除
    delete from 表名 ; -- 这样会删除整个数据库
    
    -- 删除指定数据,也就是根据条件删除
    delete from 表名 where  列名1 =1 and 列名2 =2 ...
    • 1
    • 2
    • 3
    • 4
    • 5

    TRUNCATE命令(推荐)

    清空某一张表。。。

      -- 清空student表 truncate
        TRUNCATE 表名;
    
    • 1
    • 2

    delete 和 truncate区别:

    1. 相同点:都能删除表数据,且不会删除表结构
    2. 不同:
    1. truncate 重新设置自增列 记数器会归零
    2. truncate不会影响事务

    delete删除问题,重启数据库,现象

    InnoDB 自增会重1开始(存在内存中的,断电就失去);

    MyISAM 继续从上一个自增量开始(存在文件中,不会丢失)

  • 相关阅读:
    如何在多线程异步的情况下保证事务?
    为知笔记一个日记模板
    第二证券|券商12月金股出炉!多只地产股成热门,科创仍是中长期主线
    linux文件目录管理
    图片转文字免费的软件,新手小白也能用
    【算法可视化】图论专题
    OpenHarmony AI 业务子系统
    HTTP和HTTPS的区别是什么
    SpringBoot + Maven 多环境打包实现
    激活Windows时出现错误代码0xC004C003怎么办?
  • 原文地址:https://blog.csdn.net/qq_45922256/article/details/127454829